WiFi-connected NTP clock using an ESP32-S3 and WS2818 addressable-LED 7-segment display. Connects to WiFi, syncs time via NTP, and shows hours:minutes with a slowly cycling rainbow colour effect.
- WiFi Connection: Connects to a configured WiFi network (static or DHCP)
- NTP Time Sync: Automatic time synchronisation from
pool.ntp.org - WS2818 7-Segment Display: 4-digit HH:MM clock on addressable RGB LEDs (GPIO 1)
- Rainbow Colour Cycling: Hue rotates through the full spectrum
- Blinking Colon: Colon blinks every second to indicate time is running
- Microcontroller: ESP32-S3
- LED Display: WS2818 addressable-LED 7-segment module on GPIO 1
| Pin | Component | Signal |
|---|---|---|
| GPIO 1 | WS2818 LED strip | Data In |
Edit WiFi credentials in main/User_Settings.c:
const char USER_WIFI_SSID[] = "Your_SSID";
const char USER_WIFI_PASS[] = "Your_Password";Timezone is set in main/main.c (CLOCK_TZ_POSIX), default: ICT-7 (Bangkok, UTC+7).
- ESP-IDF v5.5.1
- Python 3.11+
- xtensa-esp-elf toolchain
idf.py buildidf.py flash -p <PORT>Replace <PORT> with your serial port, e.g. COM4 on Windows or /dev/ttyUSB0 on Linux/macOS.
idf.py monitor -p <PORT>- main/main.c - WiFi + NTP init, LED clock loop
- main/wifi_helper.c - WiFi STA connection
- main/User_Settings.c - WiFi credentials and IP config
- components/ws2818_7seg/ - WS2818 7-segment LED driver
Check SSID/password in main/User_Settings.c, then verify WiFi init/connection flow in main/wifi_helper.c.
