ESP32 firmware (Arduino IDE / arduino-cli) for a 1.54" e-paper clock. Shows
a 24h digital clock (NTP, configured timezone).
Status: the panel is wired and driven by a hello-world sketch — a full-screen partial refresh on every 1 min wake, over deep sleep, with no flashing. The clock layout below isn't drawn yet.
| Normal | Fallback |
|---|---|
| Element | Content | Example | Fallback |
|---|---|---|---|
| Time | 24h HH:MM, the largest element |
14:37 |
--:-- |
| Temperature | current temp in °C, next to the weather icon | 18°C |
--°C |
| Date | weekday + dd/mm |
QUA 22/07 |
--- --/-- |
Each area degrades on its own: weather when OpenWeather fails, time and date only on a never-synced board (no NTP, no RTC), rather than showing a plausible wrong time. The mockup uses Bebas Neue; on-device that maps to a bitmap/GFX big font.
Waveshare 1.54" e-Paper (V2) — 200×200 monochrome SSD1681, partial refresh —
on a LOLIN C3 Pico (ESP32-C3), wired to the FSPI bus.
| E-paper | Function | LOLIN C3 Pico | Wire color |
|---|---|---|---|
| VCC | 3.3V power | 3V3 | |
| GND | Ground | GND | |
| DIN | MOSI (SPI data) | IO6 | |
| CLK | SCK (SPI clock) | IO4 | |
| CS | Chip Select | IO3 | |
| DC | Data / Command | IO2 | |
| RST | Reset | IO1 | |
| BUSY | Busy status | IO0 |
Board: LOLIN C3 Pico (esp32:esp32:lolin_c3_pico), pinned in
sketch.yaml.
arduino-cli compile --upload --profile lolin_c3_pico -p /dev/ttyACM0 .
arduino-cli monitor --profile lolin_c3_pico -p /dev/ttyACM0
./scripts/upload-littlefs.sh # flashes data/config.jsonPORT/CHIP/BAUD/PARTITION_OFFSET/PARTITION_SIZE are overridable env
vars on upload-littlefs.sh. No test suite — a clean compile/upload is the
definition of done.
- Migrate all code to ESP32.
- Move to the LOLIN C3 Pico (ESP32-C3): board, e-paper pinout, FSPI.
- Deep sleep with NTP/Wheater sync every 1h.
- Display: partial refresh only; full refresh every 24h.
- Run on the 600 mAh JST LiPo.
- Retry the OpenWeather request on failure.
- Cache the weather result (RTC memory) across deep sleep.
- Use HTTPS for the OpenWeather request.
- Turn the display into a weather station only, dropping the clock; rename the project to InkWeather or PaperClima.