INTRODUCTION
Once upon a time, I had a lovely Pebble Time smartwatch. I loved it so much I actually slapped a dBrand skin on it. Red and black carbon fiber. My Pebble ate Rolexes for breakfast.Well, until Pebble announced out of the blue that they were bought by Fitbit and was shutting down its services. Knowing that my Pebble's days were numbered, I set out to create a watch that ate dBrand-skinned Pebbles for breakfast. After almost a year of research, learning, and design, I created the Time Machine Mark IV. It is a homemade "smart"watch with Bluetooth Low Energy. I don't want to bore you for long, so here's the spec sheet.
SPEC LIST
HARDWARE
On the hardware side of things, the watch houses a Nordic nRF52832 SoC. It is an ultra low-energy System-on-a-Chip that has built-in Bluetooth Low Energy features as well as a handful of other radios. Its excellent power management allows it to be powered for days on a 12mm CR1225 coin cell. Three clicky buttons serve as the input, capable of handling long presses as well as double/triple clicks. Dual 7-segment LEDs show the time, and five auxiliary LEDs serve either as indicator lights or bling. Yes, I know I could've slapped on an OLED screen for better graphics and battery life, but I think the cyberpunk vibe from the LEDs are completely worth it. There is a mini piezo buzzer capable of simple beeps and boops, but I haven't really implemented it in the firmware because its volume is too quiet. The CR1225 battery is too weak for the speaker.The nRF52832 chip sports a real time clock with an accuracy of +/-5 seconds a month. However, since the clock doesn't have a backup battery, the time is lost when the coin cell runs out of juice. But with a Bluetooth connection to a computer or an Android smartphone, the time can easily be restored.
While the LEDs maintain a gorgeous aesthetic, it cripples the battery life. If I had used an OLED, for example, I believe the battery could have increased to about a week or more. Also, the segmented display becomes pretty dim after a few hours of use and stay that way until the battery dies. This is probably because the battery's nominal voltage of 3 volts is the minimum voltage for the display. The battery voltage is measured between 2.8 and 2.5 volts for the majority of the battery life. I think if I had used a 3.7v Lipo cell and a 3.3v regulator, the LEDs would stay at maximum brightness for the majority of the battery life.
SOFTWARE
he nRF52832 is programmed with Espruino, a Javascript interpreter for ARM microcontrollers, written by Gordon Williams. I chose it because I was not yet familiar with ARM-GCC. While much slower than C and consumes more power, it still allows easy firmware updates and most importantly, instant feedback from the REPL through a bluetooth connection. This is pretty handy when adding new features to the firmware, since I don't need to upload the entire firmware every time I need to test something out.The watch firmware is still pretty early in development. It only displays the time and nothing else. The code also needs some optimization since when telling the time, the segmented display becomes significantly dimmer than usual. I don't know yet whether this is a software issue or a battery issue, but I'll need to look more into it. Once I learn ARM-GCC(I'm working on it) I will re-write the entire firmware in C for maximum efficiency and power management.