Lonely Binary ESP32-C3 OLED
A thumb-sized RISC-V board with a 0.42” monochrome OLED, one onboard WS2812, and a LiPo shield stack — the cheapest way to give a prop a readable status line.
| Chip | ESP32-C3 (RISC-V) |
|---|---|
| Flash | 4 MB |
| PSRAM | None |
| Max LEDs | 256 |
| Audio | — |
| Display | 0.42" 72x40 SSD1306 monochrome OLED (I2C) |
| Touch | — |
| Storage | On-chip FAT (web UI only; no USB drive) |
| Network | ✔ |
| Update modes | Standalone (WiFi/OTA) |
What it’s good for
Section titled “What it’s good for”Things that report: a battery and state readout inside a pack, a bench rig that shows which show is loaded, a badge that displays a name and blinks a pixel. The 72x40 screen holds a couple of short lines or a number the size of the panel, and the onboard pixel gives you a status light with no wiring at all.
It is not the board for a big show. One RISC-V core, 4 MB of flash, no PSRAM and — the one that actually bites — no hardware floating point.
Wiring
Section titled “Wiring”| GPIO | Can do | Notes |
|---|---|---|
0 | in / out / PWM / ADC | ADC1_CH0 (strapping) |
1 | in / out / PWM / ADC | ADC1_CH1 |
2 | in / out / PWM / ADC | ADC1_CH2 (strapping) |
3 | in / out / PWM / ADC | ADC1_CH3 |
4 | in / out / PWM / ADC | ADC1_CH4 |
7 | in / out / PWM | |
8 | out / PWM | onboard WS2812, strapping |
9 | in / out / PWM | BOOT button, strapping |
10 | in / out / PWM | |
20 | in / out / PWM | U0RXD |
21 | in / out / PWM | U0TXD |
The OLED sits on I2C at 0x3C (SDA GPIO5, SCL GPIO6) and the onboard WS2812 is
on GPIO8, which is the default LED output: a fresh board lights that pixel
with no wiring. Strips, buttons and sensors go on the remaining pads.
Three things this board does differently
Section titled “Three things this board does differently”No USB drive. The C3’s USB is a serial/JTAG console, not USB-OTG, so it
cannot present its filesystem as a thumb drive. Files go on and off through the
Files tab in the dashboard — the same path the classic ESP32 and the M5Stack
Core2 use. Everything else about show.json is unchanged.
Soft-float. Every expression the engine evaluates per frame costs more here
than on an S3. The screen is tiny so drawing is cheap; the arithmetic is what to
watch. Prefer a pattern over a per-pixel paint with heavy maths in it, and
be sparing with expressions that run every frame on every pixel.
No hold-to-sleep. The power-button gesture is refused on this board, and says so in the log at boot rather than pretending. Its BOOT button is GPIO9, and the C3 can only wake from GPIO0–5 — arming the gesture anyway would sleep the prop with no way back short of a power cycle.