Introduction: Multimodal Clock

About: Working in a IT services based organization handling people weekdays and handling electronics and code on weekends

I love clocks! I was looking for an instructable for a clock displaying roman numerals on screen. When i did not get any suitable ones on arduino base, i decided to build one myself. Coupled with a color TFT display, I was wondering what else can be displayed and viola! thoughts of various number systems studied in my bachelor of engineering college days (more than 2 decades back!) came rushing in:Binary, Digital, Octal & Hexadecimal etc etc

This though got me started and after much planning & coding, here is the implementation t!

Distinctive features of this clock:

  • Multi-modal display where you can have time shown in 5 various number systems in one screen or each number format shown in separate screens selected by a push button.
  • The clock face orientation can be on any 4 sides and the data on display can aligned to the orientation using a push button. Later i intend to use a gyro/acceleration sensor to orient the display based on the side it is turned on.

Modes available

  • Digital
  • Roman
  • Hexadecimal (Base 16)
  • Octal (Base 8)
  • Binary (Base 2)

For someone new to these numbering systems here are the links from the net
Binary format:

Octal format:

Hexadecimal format:

Roman format:

Step 1: Parts Required:

Items needed:

  • Arduino UNO/Nano or equivalent
  • TFT Display:1.44 inch 128*128 SPI display based on IL9163 (ordered long back via aliexpress) (RED PCB)
  • DS 3231 RTC module
  • Push button switches 2
  • Breadboard, PCB,connecting wires
  • Optional: Soldering iron,General purpose connecting wires and a suitable enclosure (I am yet to decide one for this clock)

Step 2: Assemble the Circuitry

Use these connections between the RTC & Arduino. Refer to the hand drafted schematic picture for reference.

  • DS3231----Arduino
    • SDA-->A4
    • SCL-->A5
    • Vcc--> 5V (from Arduino)
    • GND-->GND (from Arduino)
  • Arduino----TFT display
    • 9-->A0
    • 10-->CS
    • 11-->SDA
    • 13-->SCK
  • Arduino connections
    • Vcc-5v
    • GND-GND
    • 2-->GND via push button (Display mode change button-Bin/Hex/Dec/All)
    • 3-->GND via push button (Display orientation change button)
  • Display connections
    • VCC-->3.3V (from Arduino)
    • GND-GND
    • RESET-->3.3V
    • LED-->5V (from Arduino)

Step 3: Upload the Code!

Use the attached .ino file for the entire code with comments which are self explanatory!

Step 4: Enjoy Your Creation and Plan Future Improvements

You have a beautiful and geeky clock on your desk and there's lots of room for new ideas

  • Change display or refresh only specific parts of the screen to make display refresh faster (this current implementation sometimes misses displaying a second due to the refresh of the whole screen)
  • Add a gyro/accelerometer board and associated code to adjust the display rotation to match the enclosure orientation
  • Let your imagination run wild...

Last but not least,if you like my clock do vote for it in the Clocks Contest running currently

Clocks Contest

Participated in the
Clocks Contest