ESP32 DevKit V1 (30-pin)
| Chip | ESP32-WROOM-32 |
| Dimmers, servos & motors | 16 PWM channels (a motor takes 2) |
| LED strips (WS2812) | up to 8 |
| Battery | no built-in sense; power it from USB or a 5 V supply, or add a two-resistor divider to read a battery (Battery props) |
| Firmware | esp32-devkit-v1, install it from your browser |
Pinout
Section titled “Pinout”Green pins are good for anything they can do. Amber pins work but have a quirk, so read the note below before putting a relay or motor on one. Red pins are taken by the board itself. Gray pins are power and control (GND, 3V3, EN and so on).
The seller-style pinout with photos: randomnerdtutorials.com.
Which pin for what
Section titled “Which pin for what”The console marks these with ★ when you assign pins. They are advice. Any pin that can do a job is allowed.
| To connect… | Use | Why |
|---|---|---|
| Servo | D25 D26 D27 D13 D4 |
Quiet at power-up, so nothing twitches while the board boots. |
| DC motor (H-bridge IN1/IN2) | D19 D18 |
A quiet pair side by side for IN1 / IN2 — a motor never lurches at boot. |
| Relay / on-off output | D23 D22 D21 |
Quiet at power-up, so a relay never clicks on during boot. |
| LED strip (WS2812) | TX2 RX2 |
Any output can drive a strip; these keep strips together. Use a 74AHCT-type level shifter for 5 V strips. |
| LED dimmer (PWM) | D14 D12 D5 D2 D15 |
The boot-quirk pins — a flicker at power-up doesn’t matter for a light, and it keeps the quiet pins free. D2 is the onboard blue LED. |
| Sensor / button input | VP VN D34 D35 D32 D33 |
Input-only pins don’t use up outputs. VP / VN / D34 / D35 have no pull resistor — fine for PIR and beam sensors, which drive their own output. Buttons go on D32 / D33, which have internal pull-ups. |
Every pin
Section titled “Every pin”| Pin | GPIO | Can be | Note | |
|---|---|---|---|---|
VP |
36 | ✅ good | input, analog, wakes from sleep | input only, no internal pull — a button here needs an external resistor |
VN |
39 | ✅ good | input, analog, wakes from sleep | input only, no internal pull — a button here needs an external resistor |
D34 |
34 | ✅ good | input, analog, wakes from sleep | input only, no internal pull — a button here needs an external resistor |
D35 |
35 | ✅ good | input, analog, wakes from sleep | input only, no internal pull — a button here needs an external resistor |
D32 |
32 | ✅ good | input, output, pull-up, pull-down, analog, wakes from sleep | |
D33 |
33 | ✅ good | input, output, pull-up, pull-down, analog, wakes from sleep | |
D25 |
25 | ✅ good | input, output, pull-up, pull-down, wakes from sleep | |
D26 |
26 | ✅ good | input, output, pull-up, pull-down, wakes from sleep | |
D27 |
27 | ✅ good | input, output, pull-up, pull-down, wakes from sleep | |
D14 |
14 | ⚠️ caution | input, output, pull-up, pull-down, wakes from sleep | pulses briefly at power-up — a relay or motor here may twitch on boot |
D12 |
12 | ⚠️ caution | output | STRAPPING: must be LOW at power-up or the board will not boot. Outputs only, and nothing that pulls it high (many relay modules do) |
D13 |
13 | ✅ good | input, output, pull-up, pull-down, wakes from sleep | |
D23 |
23 | ✅ good | input, output, pull-up, pull-down | |
D22 |
22 | ✅ good | input, output, pull-up, pull-down | |
TX0 |
1 | ⛔ reserved | USB serial — the console and the flasher live here | |
RX0 |
3 | ⛔ reserved | USB serial — the console and the flasher live here | |
D21 |
21 | ✅ good | input, output, pull-up, pull-down | |
D19 |
19 | ✅ good | input, output, pull-up, pull-down | |
D18 |
18 | ✅ good | input, output, pull-up, pull-down | |
D5 |
5 | ⚠️ caution | output | STRAPPING: pulled high and pulses at power-up — fine for an LED or strip, not for a relay or motor |
TX2 |
17 | ✅ good | input, output, pull-up, pull-down | |
RX2 |
16 | ✅ good | input, output, pull-up, pull-down | |
D4 |
4 | ✅ good | input, output, pull-up, pull-down, wakes from sleep | |
D2 |
2 | ⚠️ caution | output | STRAPPING + the onboard blue LED. Outputs only; anything holding it high blocks flashing |
D15 |
15 | ⚠️ caution | output | STRAPPING: pulled high and pulses at power-up — fine for an LED or strip, not for a relay or motor |