The pins at the edge
All thirty-six of the ESP32-S3's header GPIOs reach both edges of the shield, on a pin and a socket each. The small marks printed beside some numbers say which are analog inputs, which carry I²C and which carry SPI — and nine of them are already in use.
Nothing left out
The shield brings out every GPIO the ESP32-S3 has on its header: thirty-six of them, seventeen down the left edge and nineteen down the right. Each is there twice — a male pin on the outside, a female socket on the inside — with its LED beside the number.
Which pins you can use is decided by the ESP32-S3, not by the shield. The shield only adds an inverter input to each, and that changes nothing a sketch can notice.
The marks beside the numbers
Some numbers on the top of the board have a small mark beside them. The board does not say what they mean, but the pins that carry each mark do:
- ~ is beside GPIO 1 to 10, exactly the ESP32-S3's ADC1 pins. These are the analog inputs that keep working with Wi-Fi on.
- # is beside GPIO 8 and 9, the default I²C pins: SDA on 8, SCL on 9.
- ^ is beside GPIO 10 to 13, the default SPI pins: SS 10, MOSI 11, SCK 12, MISO 13.
The back of the board lists the same defaults, plus the serial and USB pins. It heads the I²C line "I2S", which is a different interface; read it as I²C.
These are defaults, not limits. The S3 can put I²C or SPI on almost any GPIO if you name the pins in your sketch. The marks are where the libraries look when you do not.
The nine that are spoken for
Pick Spoken for in the figure and nine pins light. They are the ones the previous page is about:
| GPIO | In use for | In your wiring |
|---|---|---|
| 43, 44 | serial port, left USB socket | leave alone |
| 19, 20 | native USB, right USB socket | leave alone |
| 35, 36, 37 | PSRAM inside the N16R8 module | never drive |
| 0 | BOOT button | usable, not LOW at reset |
| 48 | RGB LED on the board | usable, the RGB LED will react |
That leaves twenty-seven GPIOs with nothing on them at all, plus 0 and 48 when you need them.
Finding a hole on the real board
Two edges of twenty-two rows is a lot to count along. Open the shield in 3D, click any pin or socket, and it names the GPIO and says what the ESP32-S3 can do with it — read from this board's own net list.
When it does not work
The pin is on ADC2, which the ESP32-S3's radio borrows while Wi-Fi is running. Move the wire to a pin marked with a tilde — GPIO 1 to 10 are ADC1 and keep working with Wi-Fi on.
Those are the default pins, so Wire.begin() with no arguments uses them. Check SDA goes to row 8 and SCL to row 9, that the sensor has 3.3 V and ground from the shield, and that it has pull-up resistors — most breakout boards do. The back of the shield labels these pins I2S; it means I²C.
The two edges do not mirror each other, and neither is in numerical order: the left edge runs 4, 5, 6, 7, 15, 16 and the right edge 43, 44, 1, 2, 42. Read the number printed beside the row rather than counting from a corner, or click the hole in the 3D view.
Any GPIO that is not on the busy list — not 43, 44, 19, 20, 35, 36 or 37. GPIO 4 to 7 and 15 to 18 on the left edge are a good start — nothing on the board uses them and none is read at boot.
Where 3.3 and 5 volts come from, and how much the LEDs take.
Power from the shield →Edit this page — content/books/esp32s3-base/the-pins-at-the-edge.mdx
Questions about this product
See what other owners have asked, and read their solutions.
ESP32-S3 N16R8 PinPulse Shield, 36 GPIO LEDs
Loading 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.