ESP32-C3 OLED/The board in your hand/01. What you are holding
The board in your hand · 01 of 17

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.

Two buttons, two LEDs, two of them yours
chip EN pin
Point at one
Connected to
chip EN pin
Your code can use it
no
RST restarts the chip. It pulls the EN pin down through a pull-up and a capacitor, which is a hardware reset — the same thing unplugging does, without the port being gone for as long. Nothing in your sketch can read it.

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

The charge LED looks half-lit with the battery switch off

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.

The blue LED will not turn off

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.

Pressing RST does nothing you can detect

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.

The board gets warm near the USB socket

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.

You have an ESP32-C3 board that looks similar but has no screen

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.

Where this goes next

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

Community

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.

Browse Modules and blocks on the forum →