Open Source • MIT License

OPENCLOCK-C3

A feature-rich smart clock built on the ESP32-C3 Super Mini. Wi-Fi time sync, live weather, OLED display faces, and a built-in web configuration panel — all in a tiny package.

In Action

GALLERY

OpenClock-C3 showing the time and date display face on the OLED screen

Time & Date Display

OpenClock-C3 showing the weather display face with temperature and conditions

Weather Display

OpenClock-C3 hardware setup showing ESP32-C3 Super Mini, SH1106 OLED, buzzer and touch sensor

Hardware setup — ESP32-C3 Super Mini, SH1106 OLED, TTP223 touch sensor, and buzzer

What It Can Do

FEATURES

NTP Time Sync

Automatically fetches accurate time from NTP servers over Wi-Fi — no manual clock setting required.

Live Weather Display

Integrates with the OpenWeather API to show real-time outdoor temperature and conditions.

Web Configuration Panel

Built-in web server for easy setup — configure Wi-Fi, alarms, and time overrides from any browser.

Multiple Display Faces

Cycle through Time/Date, Weather, Alarm Config, and Diagnostics views with a single touch.

Alarm System

Configurable daily alarm with buzzer output — set and manage alarms through the web panel.

Battery Monitoring

Telemetry subsystem with voltage divider for tracking battery levels and power status.

Bill of Materials

COMPONENTS

Board

ESP32-C3 Super Mini

Display

SH1106 OLED (128×64, I2C)

Controls

TTP223 Touch Sensor

Audio

Active/Passive Buzzer

Power

Battery Voltage Divider (GPIO 3)

Pin Connections

WIRING

Component ESP32-C3 Pin Notes
SH1106 OLED (SDA) GPIO 8 Hardware I2C
SH1106 OLED (SCL) GPIO 9 Hardware I2C
TTP223 Touch Pad GPIO 7 Digital input for face navigation
Buzzer GPIO 6 Digital output for alarm
Battery Voltage Divider GPIO 3 Analog input
Technologies Used

TECH STACK

ESP32-C3

Arduino Framework

PlatformIO

U8g2

ArduinoJson

C++

Getting Started

1

Install PlatformIO

Install PlatformIO as a VS Code extension or use the CLI.

2

Clone & Configure

Clone the repository and add your OpenWeather API key in the source code.

git clone https://github.com/shraman-c/OpenClock-C3.git
3

Compile & Flash

Build the firmware and upload it to your ESP32-C3 Super Mini.

pio run -t upload
4

Configure via Web Panel

Connect to the clock's Wi-Fi AP and open 192.168.4.1 in your browser to set Wi-Fi credentials, alarms, and more.

Architecture

STRUCTURE

src/main.cpp

The core firmware containing hardware initialisation, network stack, web server, NTP client, weather API integration, and OLED display logic.

platformio.ini

PlatformIO configuration defining the ESP32-C3 environment and library dependencies — U8g2 for OLED graphics and ArduinoJson for API parsing.

Build Your Own Smart Clock

OpenClock-C3 is fully open-source. Fork it, customise the display faces, add your own sensors, and build a smart clock that does exactly what you need.