I originally came up with the idea because I had an OLED display lying around, but no way to use it. So I turned it into a watch! I have been working on it for around a year now, and I have documented progress on my website: http://jared.geek.nz/2014/jul/oshw-oled-watch
The watch uses a PIC24F microcontroller and a 128x128 RGB OLED display, and features an accelerometer and magnetometer. The goal is to have both USB-HID (driverless) and Bluetooth 4.0 LE connectivity, so I can sync the calendar quickly and easily.
I have entered this into the hackaday competition, so I will be detailing further progress on this page! In particular, I still have to do the following:
- Implement & Test Bluetooth 4.0 LE (Fingers crossed my PCB layout works!)
- Design a Revision 3 PCB which fixes all the hardware bugs
- Write a driver for the magnetometer
- Implement an alarm clock with the peizo
- Implement "tap to wake" with the accelerometer
- Write a desktop app for updating the watch time and calendar (possibly syncing from google calendar or .icals)
And here is what is currently working:
- RTC - It can tell the time!
- Hard-coded university timetable
- Simple pre-emptive RTOS with low-power sleep
- Basic accelerometer logging
- Button interface
- USB-HID comms and bootloader (no PC drivers required!)
- Battery charging & monitoring
I am going to try and finish this project before moving onto my next one, which will be completely re-designing the watch with an eInk display, an EFM32 Gecko, and very low power use in mind! I'll probably also use PCB software that is a bit more free than Altium Designer. But this is probably too much work to do for the competition's deadlines.
- Watch sometimes resets when waking up
- USB comms task sometimes doesn't go to sleep (drains battery more)
- OLED display has some weird ghosting artifacts (have managed to reduce them somewhat)
- In the schematic I got the connector around the wrong way, so the OLED is on the opposite side of the PCB than I wanted.
- I didn't assign the OLED data lines to the PIC24's TFT driver, so I can't make use of it and drawing performance is less than it could be.