ESP32 Smartwatch
2025-09-01

As for where this watch idea started — it began with wanting a regular digital watch that includes the functions I personally need and a battery that lasts around 3 to 4 weeks. Now, I'm starting to wonder if it might be a good idea to sell the PCB as an open-source project.
The main target users are people like us who are learning programming — so we can reprogram the watch however we like and use it the way we want. For now, since there’s no manufacturing cost yet, it’s still running on a breadboard.
The main processor used in this watch is the ESP32-C3. This processor supports both Wi-Fi and Bluetooth and is quite powerful. Since it can connect to the internet, if your programming skills are good, there are a lot of things you can do with it. (For example: using a weather API to display weather info on the watch or even controlling smart home devices from your house.) Also, since it includes an external RTC (Real-Time Clock), you can put the processor into deep sleep mode (which consumes very low power) when not using other functions and still use it as a regular watch.
It also includes an accelerometer, gyroscope, and heart rate sensor, so it can run algorithms for step counting, sleep tracking, and heart rate monitoring, among other features.
2026 Update

In 2026, I refined the smartwatch firmware to make the overall experience smoother and more practical for daily use. I focused on improving power behavior, cleaning up the UI flow, and making core watch functions more reliable.
I also started preparing the project structure so it is easier for other learners to modify the code and test their own ideas. The goal is still the same: keep this as a programmable watch platform that is simple, open, and fun to build on.
Features
- Local time with seconds display
- 12h / 24h time format
- Date and weekday header
- Menu-based navigation system
- Manual time and date setting
- 4 configurable daily alarms
- Hourly chime (SIG)
- Stopwatch
- Countdown timer
- World time with adjustable UTC offset (-12 to +14)
- World map timezone display
- DS3231 temperature display (°C / °F)
- Moon phase screen
- Waxing / waning visual
- Lunar day display
- Phase label
- Auto deep sleep mode
- Wake from buttons or RTC alarm
- Persistent settings storage
Settings
- 12h / 24h mode
- Hourly chime enable/disable
- Display invert preference
- Deep sleep enable/disable
- Sleep timeout configuration
Firmware Structure
The firmware is now organized into modular components to make the project easier to maintain, debug, and extend in the future.