A digital watch with a transparent OLED display driven by a ESP32C3 on my custom PCB
Hardware – Onboard Lithium battery charger – USB-C port for charging, Flashing and powering – Charging switching circuit to switch from battery to USB power when charging – 3.3V Regulator circuit – 12V Boost circuit – ESP32C3-Wroom-02 Module – Transparent 1.51 inch OLED display – 2 Buttons for control
Software – 9 Separate watch faces – Bluetooth connectivity with phone through Gadgetbridge – Deep Sleep, press to wake – Weather – Games – More
PCB This project has my first 4 layer, 2 sided PCB. I chose this stack to make it as compact as possible keeping my voltage bus, charger, microcontroller all in a small package.
Firmware Architecture The firmware is built on the platformIO plugin for VSCode, written in arduino C++. The Watch stays on 24/7 to keep counting time but Deep Sleeps after 90 seconds of inactivity to save battery power to hold out even for a few days.
Key Features – High Quality Audio – Headphone Out – Bluetooth Connectivity – Micro SD card reader – Rechargeable Battery
Programming The firmware is built on the PlatformIO and Arduino Framework. You can upload and edit the firmware using Arduino C++ and flashing the ESP via the USB-C port under the OLED.
Custom designed ESP32-S3-WROOM devboard designed for prototyping.
Hardware – Microcontroller: ESP32-S3-WROOM with 16MB Flash 8MB PSRAM – Display: Onboard 0.91 Inch OLED – Communication: Native USB CDC – Peripherals: GPIO, I2C, SPI, ADC, PWM
PCB I designed the PCB myself in KICAD. The board includes an onboard AMS1117 3.3 voltage regulator, filtered by 10uF and 0.1uF capacitors. There is a power indicator LED on the left side of the board. The BOOT and RESET buttons work perfectly along with the onboard addressable LED and OLED display.
Programming This project is built on the PlatformIO and Arduino Framework. You can upload standard Arduino C++ to the devboard via the USB-C port.