OLED ARM Smart Watch



What is this?

This is the start of a very ambitious project - Making a smart watch from scratch. After being inspired by this, I decided making a smart watch would be a fun project. Work began on this project in November 2017. I've been learning about every aspect of making a smart watch, and am coming close to being able to actually build one.


Progress

Software
Arm board

I have successfully compiled and executed bare bone code on the arm development board. Most of my work here has been figuring out how to upload code using a JTAG programmer, and learning about arm assembly. My knowledge of 68k assembly has been very useful here, as both architectures are RISC. I have also been working on porting an Arduino library used to drive the oled display to code that can run on a bare bone arm processor.


nRF24L01 and Bluetooth Low Energy (BLE)

Originally I was planning on using an IC specifically created for bluetooth, then i found a really cool hack using the very cheap nRF24L01 and BLE. I have successfully created an app that can send and receive BLE packets small enough for the nRF24L01 to read. My next goal here is to write a communication protocol for communication between my phone and the nRF24L01 chip. The work on this has been done using an Arduino, so the code will have to be ported after completion.


UI

No work has been done on creating a UI, but I have been coming up with ideas. The ARM cpu will be powerful enough to output a vga video signal, meaning I could potentially create games to run over vga on other displays. The watch will vibrate when a notification has been received on my phone, and will display the notification on its screen. This will be done through an android app to work with the phone, and BLE.



Hardware
Schematic

The original plan was to use an ATSAM Arm processor instead of an STM one, but then I realized how much more expensive they were, in terms of development boards and programmers.

So far the OLED screen subsystem has been created, and the battery charging subsystem has been created. Next I will create the nRF24L01 subsystem, make a component to represent the processor, then wire everything.


PCB

The final step will be to route the pcb and have it created. This will be a two step process. First I will make a large prototype PCB with test points on every subsystem, such as the OLED display, the charger, and the BLE module. Once it is working fully, I will route the PCB again but this time use a small form factor, one that can fit directly under the OLED display. Once this is done I will 3d print a casing and continue writing software to improve the UI and battery life.