Close

Progress Update

A project log for Custom Smartwatch

An ESP32 Based Open-Source Smartwatch

matthew-james-bellafaireMatthew James Bellafaire 03/08/2020 at 23:300 Comments

In my free time I've been working with the smartwatch board and software to try and get things into a useable state before I move onto writing some more "permenet" code. At the moment a good deal of progress has been made but much of it isn't worth talking about just yet. 

I've also gone through a few iterations of the smartwatch body to try and get something more appealing than what I showed in the last log, so far I'm very happy with the results.

The case itself fits over top my wrist. The entire body is 3D printed in 2 pieces. In terms of size its roughly where I want to be with this project, however the screen could still be bigger (ideally it takes up the entire top face). 

I've been looking into the sleep modes used on the ESP32 and I'm still working on making the main loop as efficent as possible, at the moment the watch itself has a 300mAh battery giving it a lot of potential. However, since I'm not currently utilizing any of the sleep modes in the software that's currently running the battery life is less than Ideal. Currently the watch can run for about 6 hours without being charged with the ESP32 running without any sleep functionality. I'm hoping that it's possible to manage 24 hour battery life by managing the deep sleep mode of the uC but it requires me to rewrite a significant segment of code. 

On the subject of circuitry I've made some minor bodges. Previously a P-channel mosfet was used to control the LED backlight, this was unncessary and it has since been removed from the board and replaced with a jumper. There also seems to be an issue related to the reset button, it appears that pressing the reset button results in FT231XS UART Bridge also resetting or otherwise loosing power. The reset issue is new, when the board was originally assembled it did not have this problem and I can only assume that there's a bad component on the board or a short that is hidding somewhere. For the time being I've simply removed the auto program functionality and resorted to programming by holding the BOOT button until the issue is resolved. 

For the moment this project is in a kind of weird place, the progress is good but there are a lot of things that need to be implemented and I'm kind of scrambling to decide what the most important features are and what order I want to tackle them in. 

The end goal of this project is basically to have a micro-controller based smartwatch that can be easily reprogrammed and expanded with extra software additions. I chose the ESP32 specifically for its community support to achieve this goal. The expected downside of the ESP32 was the power consumption and that's going to be the biggest hurdle to overcome. From what I have read in the documentation the goals of this project should be attainable, if the power consumption becomes too big of an issue I'll most likely switch to a different uC and essentially start over from the beginning. 

Once the watch is working well I plan to use this watch as a kind of WiFi remote for multiple other projects that are in the planning stages. The end goal is to have something that resembles a tool more than a smartwatch while still having the functionality of a typical smart watch.

Discussions