This project took long, much longer than expected.
Starting with Arduino, I learned how eInk displays works and how to speed up the refresh. That was to boring, get become ultimate power-saving I decided to use 8-bit PIC to control the Arduino Pro Mini. Now In stand buy - its just using "no power". Power saving is so difficult - so I decided to let my clock check for light, and for to sleep.... aahh and it does wake up with a touch-sensor... and much more..
This project is not recommended to "copy" - I just wanted to do it this "my way" and because....I could do it.
Actually I studied Electrotechnical Engineer, so used a some transistor circuit to better control the power of the eInk and ..and it go so many wires. So I decided to learn how to build my own PCB.
The PCB layout is part of the PCB Frizzing File on GitHub
It was just a great moment, once everything was soldered together .. AND.. it showed the time!
- 2.7 ePaper from EmbeddedArtist to display the text
- Arduino Pro Mini to manage the logic, controll the display and paint the text
- PIC16LF1824 (low power consumption) to control the LED Light (giving some light to the display at night), the capacitive switch to display the time in HH:MM format (not in text format)
- A very precise clock DS3232RTC to have the precise time (with separate battery)
Cool Features Implemented
Reading below, you will how -why it is the MCW. Try to beet it!
- Time is displayed as text in German, e.g. "Es ist Viertel vor Acht" and updates every 5min
- Pro Mini is set to deep sleep mode and wake up by DS3232RTC
- In addition using a PIC16(L)F1824 to control sleep mode, light-on / light-off and the Arduino (must be the MOST COMPLICATED WATCH)
- When touching the capacitive sensor, time is immediately displaying the time in HH:MM format
- Displaying the time in HH:MM is using writing in blocks to the eInk-Display and a tuned writing algorithm makes the display running faster
- When it is dark outside (so nobody can read the time anyway) the clock goes into very deep sleep mode, woken up by the PIC when light goes on (it wakes up quick- see the video below)
- Low memory of the Pro Mini requires a new self developed memory saving graphics library - that is not using a buffer, but checks for each pixel if black or write and then writes directly to the display.
- Character bitmaps are RLE encoded and stored in flash memory to save RAM
- Special circuit disconnects the e-Ink display from power during sleep mode - as the display is always consuming current, even when switched off - really!
- Time can be set-up by long-pressing the capacitive button and going into "time set mode" using the HH:MM minute quick display