Close
0%
0%

CIS-4

Cistercian digital clock with minimalist display

Similar projects worth following
The Cistercians, a Monk order from the 13th century, created a number cypher that was able to map from 0 to 9999 using a single digit.

This project implements a clock that uses a 4x4 display to show the time using a minimalist representation of the Cistercian numbers. (note: in a previous project I have used a 5x7 matrix display )

The clock can also present the time using

Additional features provided are:
- Ability to show the time using decimal digits.
- Ability to change the display colors
- Auto brightness control
- Buzzer to beep every integer hour (can be turned off).

From Wikipedia article:  The Cypher of the Monks

The Cistercian numeral system, a numeral system that was used by the Cistercian order of monks in the 13th to 15th centuries of the Middle Ages, and has been used sporadically since then. It allowed writing numbers from 1 to 9999 as single compound character (glyph)

The Cistercian numbers can be represented minimalistically in a 4x4 dot matrix display, thus providing 4 digits to represent the time on a digital clock.

The Decimal numbers can also be presented on the 4x4 display and the decimal time can be displayed scrolling the digits row by row. 

To perform the scroll, every digit is placed on an array of 16 bit numbers and the slices are taken sequentially to form the display, using the following expression.

Neopixels
The display is based on WS2812 addressable LEDs. There are 4x4 led matrices available (but the prototype used a 5x5 that was already in my parts bin).

 All that was necessary was a table to translate every bit of the display word into the position of the nth addressable LED. 

The translation would be necessary anyway because the arrangement of the 4x4 matrix do not follow order the pixels were mapped.

There is another array with the color of the every pixel of the display variable. The firmware allows to choose 1 out of 7 basic colors and a "random" color which is a random color for every quadrant  of the display (4 pixels).


Auto Brightness level
The circuit provides an LDR to sense the ambient light at every second and adjust the LED brightness automatically.

RTC

The clock timebase is a DS3231 module (aka PI RTC). The communication is with such module is performed using I2C.

State Machine
The whole clock firmware was implemented around the a state machine that was designed to provide full operation and configuration using only one push button.

The first prototype was developed using an Arduino Nano and later the code was optimized to fit on a Attiny85 Digispark.

  • 1 × 4x4 neopixel matrix board
  • 1 × DS3231 RTC module
  • 1 × Digispark board
  • 1 × Push Button
  • 1 × LDR Resistor Networks / Thick Film Networks

View all 7 components

  • Going low

    danjovic4 days ago 0 comments

    I have ported the code to ATTiny85.  To make a long story short, the first version 

    hat could fit the Digispark used 99% of flash 

    The second version calling functions that dealt with PROGMEM and using tiny versions for RTC, neopixel and I2C (wire) libraris still took me 95% of the flash.

    I have then replaced the Wire and RTC libraries with my own code and now the sketch takes 87% of the flash. 

    There's still some room for improvements, but that's good enough! for the moment.

    Sources available at project's Github repository


  • Flip mode test

    danjovic5 days ago 0 comments

    This video shows the flip mode.

    When in Cistercian mode, a short press on the button will display the time in decimal mode (flip)


View all 2 project logs

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates