This is a full 4,096 color 8×8 LED matrix based wristwatch with software-driven 4-bit PWM for each channel at 60 full PWM sweeps per second.
I wanted to see how much performance I could squeeze out of the then-newly released PIC16F1 series of MCUs.
What it does
- Displays time in a totally tubular way.
What it’s made of
- PIC16F1947 microcontroller
- 8×8 pixel RGB module (link is not actual part I used but similar)
- Custom PCB designed in EAGLE and fabricated at PCBExpress
- Firmware written in C using MPLABX, compiled by XC8 and loaded using an ICD3
- LiPo battery charger
- Boost convertor
- A bunch of support components
Theory of operation
Press a button and the time shows up for three full seconds before putting the MCU to sleep. With the PWM blazing away at 60 full refreshes per second, there remains 50% CPU time available to do work. Pretty amazing for a ~$0.75 part. How time is represented:
- Current second: fading yellow pixel, going from upper-left to lower right.
- Current minutes (units): two-pixel wide blue column on far right. 0-8 are shown as pixels emanating from top as zero and bottom as 8. 9 is shown as a red pixel at the bottom.
- Current minutes (tens): two-pixel wide blue column on middle right.
- Current hours (units): two-pixel wide blue column on middle left.
- Current hours (tens): two-pixel wide blue column on far left.