Skip to content

Pinout Reference

This page provides a detailed pinout reference for the ESP32 boards supported by ESP-Claw. Understanding which pins to use — and which to avoid — is essential for connecting sensors, actuators, and peripherals.

The ESP32-C3 SuperMini is the most popular board for MimiClaw. It exposes 13 GPIO pins on a compact form factor.

GPIODefault FunctionADCPWMI2CSPINotes
GPIO 0ADC1_CH0YesStrapping pin (boot mode). Avoid pulling low at boot.
GPIO 1ADC1_CH1YesSafe for general use
GPIO 2Boot LEDADC1_CH2YesConnected to onboard LED. Strapping pin.
GPIO 3ADC1_CH3YesSafe for general use
GPIO 4ADC1_CH4YesSDADefault I2C data pin
GPIO 5YesSCLDefault I2C clock pin
GPIO 6YesSCLKDefault SPI clock
GPIO 7YesMOSIDefault SPI data out
GPIO 8YesStrapping pin. Use with caution at boot.
GPIO 9Boot buttonYesConnected to BOOT button. Strapping pin.
GPIO 10YesMISODefault SPI data in
GPIO 20USB D+USB bus. Do not use for GPIO if USB is needed.
GPIO 21USB D-USB bus. Do not use for GPIO if USB is needed.

GPIOs 0, 2, 8, and 9 are strapping pins. Their state during power-on or reset determines the boot mode:

  • GPIO 9: Must be high (floating or pulled up) for normal boot. If held low during reset, the chip enters download mode. This is the BOOT button pin.
  • GPIO 8: Must be high for normal boot. Pulling low enables UART download mode.
  • GPIO 2: Affects boot log output.

Recommendation: Avoid using strapping pins for outputs that might be pulled to unexpected levels during boot. They work fine for inputs (sensors) or outputs that start in a safe state.

FunctionPinConfigurable
Built-in LEDGPIO 2No
BOOT buttonGPIO 9No
I2C SDAGPIO 4Yes
I2C SCLGPIO 5Yes
DHT22 sensorGPIO 3Yes
UART TX (debug)GPIO 21No
UART RX (debug)GPIO 20No

The ESP32-S3 offers significantly more GPIO pins — 45 in total — with additional peripherals including USB OTG, camera interface, and capacitive touch.

GPIODefault FunctionADCPWMTouchNotes
GPIO 1-10General purposeADC1YesTouch 1-10All safe for general use
GPIO 11-14ADC2YesTouch 11-14ADC2 cannot be used while Wi-Fi is active
GPIO 15-16YesPSRAM pins on some boards. Check your board schematic.
GPIO 17-18YesSafe for general use
GPIO 19-20USB D-/D+USB OTG pins. Do not use for GPIO if USB is needed.
GPIO 21YesSafe for general use
GPIO 35-42Octal SPIConnected to PSRAM/Flash on most boards. Do not use.
GPIO 43-44UART0 TX/RXYesDebug UART. Available for GPIO if debug not needed.
GPIO 45-46YesStrapping pins
GPIO 47-48YesSafe for general use. GPIO 48 = onboard RGB LED on some boards.
FunctionPinConfigurable
I2C SDAGPIO 1Yes
I2C SCLGPIO 2Yes
I2S Mic (BCK)GPIO 4Yes
I2S Mic (WS)GPIO 5Yes
I2S Mic (DATA)GPIO 6Yes
I2S Speaker (BCK)GPIO 7Yes
I2S Speaker (WS)GPIO 8Yes
I2S Speaker (DATA)GPIO 9Yes
DHT22 sensorGPIO 10Yes
Servo motorGPIO 11Yes
IR LEDGPIO 12Yes
IR ReceiverGPIO 13Yes
NeoPixel LEDGPIO 48Yes
OLED Display SDAGPIO 1 (shared I2C)Yes
OLED Display SCLGPIO 2 (shared I2C)Yes

Both the C3 and S3 dev boards provide:

PinVoltageMax CurrentUse For
3.3V3.3V regulated500mA (from USB)Sensors, LEDs, logic ICs
5V5V from USB500mA (USB limit)Servo motors, 5V sensors
GNDGroundCommon ground for all peripherals

Important: Never connect 5V directly to a GPIO pin. ESP32 GPIO pins are 3.3V tolerant. Use a level shifter or voltage divider for 5V signals.

  1. Avoid strapping pins for outputs that could interfere with boot
  2. ADC2 is unavailable when Wi-Fi is active — use ADC1 pins for analog readings
  3. I2C devices share a bus — you can connect multiple I2C sensors to the same SDA/SCL pins (each device has a unique address)
  4. PWM is available on any GPIO — the ESP32 has a flexible LED Control (LEDC) peripheral
  5. Use pull-up resistors for I2C (4.7K ohm) and DHT22 (10K ohm) connections