Opens in a new tab

Waveshare ESP32-S3-Zero Pinout

ESP32-S3-Zero from Waveshare is a thumb-sized board (23.5 × 18 mm) with the ESP32-S3 chip: two cores, Wi-Fi, Bluetooth LE, 4 MB flash and 2 MB PSRAM. It has USB-C, an addressable RGB LED and castellated pads around the edge, so it can be soldered directly onto another board.

It matches the RP2040-Zero in size, but the pin layout is different. Besides the 18 pins along the sides, it also breaks out GPIO to three pads on the top and eight on the bottom.

Specifications

  • ESP32-S3FH4R2: 2× Xtensa LX7 up to 240 MHz, 512 kB SRAM
  • 4 MB flash and 2 MB PSRAM inside the chip package
  • Wi-Fi 4 (2.4 GHz) and Bluetooth 5 (LE), ceramic antenna
  • 15 GPIO along the sides (GPIO1–13, TX and RX), 3 pads on top (GPIO14–16) and 8 on the bottom
  • USB-C with native USB, WS2812 RGB LED on GPIO21, BOOT (GPIO0) and RESET buttons
  • 3.3 V regulator up to 800 mA, 3.7–6 V power via the 5V pin
  • 23.5 × 18 mm, castellated pads on the edge; the ESP32-S3-Zero-M version has headers soldered on

In the Arduino IDE, the board is listed as Waveshare ESP32-S3-Zero, but its profile does not have default I2C and SPI pins on broken-out pins. Specify the pins in code, e.g. Wire.begin(8, 9) or SPI.begin(12, 13, 11, 10) (SCK, MISO, MOSI, SS). With the generic ESP32S3 Dev Module profile, the default I2C is on GPIO8/9 and SPI on GPIO10–13. In both cases, enable USB CDC On Boot, otherwise you won’t see the Serial output.

The GPIO14–16 pads on the top side are intended for soldering a wire or for spring-loaded pogo pins.

Pinout and pin table

Hover over a pin in the diagram or a table row; use the filter to highlight a bus. You can download the pinout as PNG or SVG.

Pin names:
Waveshare ESP32-S3-Zero – pinoutWaveshare ESP32-S3-Zero – pinoutchiptron.eu · CC BY 4.0ESP32-S3USB-CBOOTRESETGPIO16GPIO15GPIO14LED: GPIO21 (RGB WS2812) 18 5V ↔ 5 V from USB (no diode), or 3.7–6 V power input 17 GND 16 3V3 ← 3.3 V output from the regulator (max. 800 mA) 15 GPIO1 ADC1_CH0 T1 14 GPIO2 ADC1_CH1 T2 13 GPIO3 ADC1_CH2 T3 12 GPIO4 ADC1_CH3 T4 11 GPIO5 ADC1_CH4 T5 10 GPIO6 ADC1_CH5 T6 1 GPIO43 TX 2 GPIO44 RX 3 GPIO13 ADC2_CH2 T13 4 GPIO12 ADC2_CH1 T12 5 GPIO11 ADC2_CH0 T11 6 GPIO10 ADC1_CH9 T10 7 GPIO9 ADC1_CH8 T9 8 GPIO8 ADC1_CH7 T8 9 GPIO7 ADC1_CH6 T7 GPIO UART ADC (analog) Touch Power Ground (GND) Strapping pin

Bottom side

Waveshare ESP32-S3-Zero – pinout (bottom side)Waveshare ESP32-S3-Zero – pinout (bottom side)chiptron.eu · CC BY 4.0181172163154145136127118109 GPIO45 GPIO42 GPIO41 GPIO40 GPIO39 GPIO38 GPIO18 ADC2_CH7 GPIO17 ADC2_CH6 GPIO ADC (analog) Strapping pin
Download:PNGSVG
Download – Bottom side:PNGSVG
Pin table – Waveshare ESP32-S3-Zero
PinNameDirectionUARTI2CSPIADCTouchNote
1GPIO43input/outputTXUART0 TX – default serial port and bootloader output. Routed to the pad through a 499 Ω series resistor.
2GPIO44input/outputRXUART0 RX
3GPIO13input/outputADC2_CH2T13
4GPIO12input/outputADC2_CH1T12
5GPIO11input/outputADC2_CH0T11
6GPIO10input/outputADC1_CH9T10
7GPIO9input/outputADC1_CH8T9
8GPIO8input/outputADC1_CH7T8
9GPIO7input/outputADC1_CH6T7
10GPIO6input/outputADC1_CH5T6
11GPIO5input/outputADC1_CH4T5
12GPIO4input/outputADC1_CH3T4
13GPIO3input/outputADC1_CH2T3Strapping pin (JTAG source selection) – has no effect unless set in eFuse
14GPIO2input/outputADC1_CH1T2
15GPIO1input/outputADC1_CH0T1
163V3output3.3 V output from the ME6217 regulator (max. 800 mA including the board's own consumption).
17GND–
185Vinput/output5 V directly from the USB connector (VBUS, no diode). The board can also be powered through this pin (3.7–6 V, at least 500 mA), but do not connect a supply at the same time as USB – voltage would flow into the computer.
padGPIO16input/outputADC2_CH5
padGPIO15input/outputADC2_CH4
padGPIO14input/outputADC2_CH3T14
Bottom sideGPIO45input/outputStrapping pin (VDD_SPI voltage) – logic 0 at boot
Bottom sideGPIO42input/outputJTAG MTMS
Bottom sideGPIO41input/outputJTAG MTDI
Bottom sideGPIO40input/outputJTAG MTDO
Bottom sideGPIO39input/outputJTAG MTCK
Bottom sideGPIO38input/output
Bottom sideGPIO18input/outputADC2_CH7
Bottom sideGPIO17input/outputADC2_CH6

Pins used on the board

These chip pins are used by parts on the board and are not broken out:

PinFunction on the board
GPIO0BOOT button
GPIO19USB D− (native USB)
GPIO20USB D+
GPIO21RGB LED WS2812

What to watch out for

  • The GPIO are not 5V tolerant. Use a level shifter for 5V signals.
  • The 5V pin is the USB voltage directly, with no diode – do not connect a power supply at the same time as USB.
  • The RGB LED is addressable (WS2812, RGB color order) – digitalWrite(21, HIGH) won’t light it up. Use rgbLedWrite() with the Waveshare ESP32-S3-Zero profile, or the NeoPixel library with NEO_RGB (otherwise red and green are swapped).
  • Strapping pins: GPIO3 selects the JTAG source, GPIO45 (bottom pad) must be at logic 0 at boot. The BOOT button is GPIO0.
  • ADC2 (GPIO11–18) is limited while Wi-Fi is on – prefer ADC1 (GPIO1–10) for analog.
  • Do not cover the ceramic antenna with another board, metal or plastic.
  • If uploading fails, hold BOOT, connect USB and release the button – the board will start in download mode.

ESP32-S3 on chiptron.eu/

Projects and guides on chiptron.eu/:

  • ESP32 Web Flasher – flash firmware to an ESP32-S3 from the browser with the correct offsets, plus a serial monitor
  • ESP32 chip comparison – which ESP32 to choose based on peripherals and project needs

More pinouts

See all pinouts on the Pinouts page.

Related Articles