You basically fill an SD card with a text file that contains the quotes you are interested in and then every second it will randomly display the quote as a QR code. Using a cheap 128x64 OLED screen, the version 10 QR code is easily readable while providing space for a 395 character message as well as a human-readable time/date. The underlying code is running on an Arduino Mega (simply because I couldn't squeeze the code to fit onto something smaller and also because I had a spare one lying around).
If there is interest, I can provide more details about the hardware and software but essentially the clock is made from:
- Arduino Mega 2560 - I needed the extra on-board SRAM to fit the code. Writing software is not my day job so I'm sure some smart people out there could shrink it down to fit on an Uno.
- 1.3 inch 128x64 pixel white OLED module (this one uses an SH1106 / SSD1306 driver)
- MicroSD module using the SPI bus.
- MicroSD card (I had a 16gb one lying around, but this is way overkill)
- KY-040 rotary encoder (to control the functions like time setting, file selection)
- 10K pull-up resistor (for the pushbutton feature on the KY-040)
- DS3231 high accuracy TCXO RTC module for timing
Apart from the standard built-in libraries, the sketch uses the following additional libraries:
I also use a heavily modified version of the code I found here to actually convert the text to a bitmap of a QR code.
This concept can be expanded to use a larger screen and the nice thing about it is that compared to having actual text scrolling past every second, this clock just sits on the desk quite inconspicuously until you want a bit of inspiration. I have created versions that use all sorts of different texts as the base. Some particularly interesting ones are a Unix Fortune File, books from Project Gutenberg such as The Art of War, Walden, the Shakespearean Sonnets, the Analects of Confucius and Dante's Inferno. Of course your favourite translation of the bible or other religious text also works particularly well. Basically anything that neatly breaks down into < 400 character segments.