What you are holding
A 20 by 25 millimetre board with a screen, a radio and sixteen holes. Here is what the buttons and LEDs do, which ones your code can reach, and which three bases it seats on.
One chip, one screen, no bridge
The part in the middle is an ESP32-C3FH4: a single RISC-V core at up to
160 MHz, Wi-Fi 4 and Bluetooth LE, with 4 MB of flash and 400 kB of SRAM. There
is no PSRAM and no second core. One core matters more than it sounds: the radio
is serviced from the same core your loop() runs on, so a long delay() is a
stretch of time during which nothing is answering the access point.
Two things are on the board that are not on a bare C3 module. A 0.42 inch OLED is soldered to it and permanently wired to two of the GPIOs. And the USB-C socket goes straight to the chip — there is no CH340 or CP2102 between them, because the C3 has a USB peripheral of its own. That is why there is no driver to install on any operating system, and also why the port vanishes every time the chip resets.
Four parts that look like two
Two black buttons sit at the top edge, a millimetre apart, and two LEDs sit either side of the USB socket. In each pair, one is yours and one is not — and the silkscreen naming them is about half a millimetre tall.
The pair that costs people an evening is the buttons. RST restarts the chip
and is invisible to your code. BOO is GPIO 9, which the chip reads once at
reset to decide whether to run your sketch or wait for an upload, and which is
an ordinary input with a pull-up on it for the rest of the time. Holding the
wrong one during an upload is the difference between a board that flashes and
one that says "Failed to connect".
The size, if you are building it into something
The board is 20.5 mm wide and 25 mm tall, and the two rows of holes are 17.78 mm apart — 700 mil, which is a whole number of tenths, so it drops onto stripboard and across the centre channel of a breadboard without any adaptor. Eight holes down each side at the usual 2.54 mm.
The antenna is a ceramic chip a few millimetres long at the top edge. It is small, and it is the reason a later article in this book is about turning the transmit power down: at full power the radio puts out more than the matching around that antenna can carry, and the board fails to join networks it is sitting next to.
What it sits on
The board seats in one of three bases, which add a battery connector, a charger and a power switch, and bring the sixteen holes out to pins, push-in terminals or screw terminals. Which base is the choice, and which way round the board goes into it is its own article, worth reading before the first time rather than after. The battery, charger and switch are the same on all three.
When it does not work
A base's charge LED is separate from the C3 board's power and IO8 LEDs. With SW2 OFF, the battery is disconnected from the charger, and the charge LED can flicker so fast that it looks half-lit; the battery is not charging. With a battery connected, move SW2 to ON and supply USB power to charge it. A steady charge LED means charging; it goes out when charging finishes.
You are probably looking at the red one. The red LED is wired across the 3.3 V rail through a resistor and has no pin at all, so nothing in any sketch can change it — it is lit whenever the board has power. The blue one, marked IO8, is the one on GPIO 8.
It does exactly one thing — it restarts the chip — and if your sketch prints nothing on startup there is nothing to see. Add a Serial.println in setup and press it again. If the serial port disappears from the IDE for a second when you press it, that is the reset working and the USB peripheral going down with it.
Slightly warm at the regulator is normal, especially with the radio transmitting. Hot enough to be uncomfortable to hold is not — unplug it and check that nothing is bridging V5 or V3 to GD before you plug it in again.
This book is written for the board with the 0.42 inch display soldered to it, and two of its GPIOs are spent on that display. A SuperMini or a bare C3 module is the same chip with different pins free; the ESP32 book covers the chip, and that is the better place to start with one of those.
What is printed beside each hole, what your code has to call it instead, and which ones were taken before you arrived.
The sixteen pins, and the six already spoken for →Edit this page — content/books/c3oled/what-you-are-holding.mdx
Questions about this product
See what other owners have asked, and read their solutions.
This page covers several products. Choose yours to see the right discussions.
Discuss this article
Ask about this page. The answer stays here, on the page it belongs to, for whoever hits the same wall next.