ESP32
The original, and still the only one that speaks classic Bluetooth serial.
The pins that matter
Not all forty-odd of them. The five rows that decide whether your wiring works.
Every pin, on our own boardESP32 Gold Edition in 3D38 holes and 26 GPIOs, measured off the real PCB. Click a pin and it lights up on the board, with what it does and what it costs to use.
Open in 3D →Board settings, all three toolchains
Get one of these wrong and nothing else on the site will work.
Also set Upload Speed to 115200 if uploads fail on a long cable.
Hold BOOT while the flash starts, or esptool will not find the chip.
The most widely tested target in PlatformIO. Nothing special needed.
What catches people out on this chip
These are the support emails. They exist nowhere else on the site because they are true of nothing else.
The second ADC block is shared with the radio. A read on an ADC2 pin fails while Wi-Fi is using it — ESP-IDF returns a timeout error and no valid result. The S2 and S3 share ADC2 the same way. Move the sensor to an ADC1 pin — this is the single most common “my sensor broke when I added Wi-Fi” report.
They are the flash bus. Headers on some clone boards expose them anyway, which is a trap, not a feature.
GPIO 34 to 39 accept INPUT_PULLUP in code and silently do nothing with it. A button on those pins needs an external resistor.
Wi-Fi transmit bursts reach about 380 mA on an ESP32-WROOM-32E module (its datasheet's peak figure). A thin cable or an unpowered hub causes reboots that look exactly like a code crash.
News about this chip
Guides for this chip
78 of 81 applyWritten once for the whole family. Opening one from here fixes the pins to this chip and the code to your language.
All 47 documented modules work with it. It is the only chip here that can also do classic Bluetooth serial, so the Bluetooth audio and SPP examples are written against this one.
Browse the module index →