Multimodal Clock

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

Be the First to Share


    • Fix It Speed Challenge

      Fix It Speed Challenge
    • Raspberry Pi Contest

      Raspberry Pi Contest
    • Jewelry Challenge

      Jewelry Challenge