July 17, 2026
Description
A retro-inspired desk clock. The clock combines a 3.7" e-paper display, addressable RGB LED strip, WiFi-synced time, live weather forecast, and a fully functional alarm system, all driven by an ESP32 microcontroller.
| Component | Notes |
|---|---|
| ESP32-WROOM-32 dev board (38-pin) (Mine: https://www.aliexpress.com/item/1005006490116433.html) | Get one with a screw terminal breakout board; makes wiring much easier |
| WeAct Studio 3.7" e-paper B&W (GDEY037T03) (https://www.aliexpress.com/item/1005009712001279.html) | Specifically the black/white version |
| WS2812B LED strip, 10 LEDs | Any density works |
| 2x 12x12mm tactile buttons (https://www.aliexpress.com/item/1005003727192340.html) | |
| Passive piezo buzzer (12mm) (https://www.aliexpress.com/item/1005010400627387.html) | Must be passive, not active |
| Standard 5mm LED + 220Ω resistor | For alarm indicator |
| B20K potentiometer (https://www.aliexpress.com/item/1005005723920782.html) | For alarm dial |
| USB-C 5V power supply | |
| Jumper wires |
Feel free to use any other components; those are just the ones I used.
| Display Pin | ESP32 Pin |
|---|---|
| VCC | 3V3 |
| GND | GND |
| DIN | D23 |
| CLK | D18 |
| CS | D5 |
| DC | D26 |
| RST (RES) | D27 |
| BUSY | D4 |
| Pin | ESP32 |
|---|---|
| VCC | VIN (5V) |
| GND | GND |
| DIN | D13 |
| Component | ESP32 Pin | Notes |
|---|---|---|
| Light button | D14 + GND | Diagonal pins |
| Snooze button | D33 + GND | Diagonal pins |
| Buzzer + | D25 | Long leg |
| Buzzer − | GND | Short leg |
| Alarm LED + | D32 | Via 220Ω resistor |
| Alarm LED − | GND | |
| Pot left pin | GND | |
| Pot middle pin | D34 | Analog input |
| Pot right pin | 3V3 |
Code: https://github.com/TaminoDesign/clock01
Edit the top of index.ino:
cpp
const char* ssid = "YOUR_WIFI_NAME"; const char* password = "YOUR_WIFI_PASSWORD";
Update coordinates in weatherURL for your location:
cpp
“?latitude=-36.4&longitude=174.7”
Let me know if you have any questions
Boost MeLicense:
Standard Digital File License