Lights that move on their own
Nine of the thirty-six GPIOs are already busy on the ESP32-S3 before your sketch touches them — the serial port, the native USB socket, the memory inside the module, the BOOT button and the RGB LED — and every one has an LED on the shield. Here is what each does, and which to leave alone.
Before your sketch runs
Plug the board in with nothing uploaded and look at the shield. Most LEDs shimmer or sit half-lit — those are floating, the subject of the previous page. A few are steady from the first instant, and they are the interesting ones.
setup() gets to them.The ESP32-S3's datasheet lists which pins it pulls up or down itself at reset. GPIO 0, 43 and 44 are pulled up, so their LEDs light. GPIO 45 and 46 are pulled down, so theirs stay dark. GPIO 20 has the USB pull-up, and lights too. The shield's inverter inputs do not disturb any of that: the datasheet says these defaults hold with nothing attached or with "an external high-impedance circuit", which is what an inverter input is.
The serial port: 43 and 44
The left-hand USB socket on the ESP32-S3 goes to a USB-serial chip, which talks to the S3 over two wires: GPIO 43 out and GPIO 44 in. A serial line rests HIGH, so both LEDs are normally lit.
Print something and LED 43 flickers dark. Upload a sketch through that socket and LED 44 flickers while the new program arrives. It is the most useful activity light on the board, and both pins are hands off in your own wiring.
The native USB socket: 19 and 20
The right-hand USB socket is wired straight to the S3 on GPIO 19 and GPIO 20. With a cable in that socket, both LEDs flicker while the computer and the board talk. Use either pin for something else and that socket stops working.
The memory: 35, 36 and 37
The kit's ESP32-S3 is an N16R8: 16 MB of flash and 8 MB of PSRAM, the extra memory that large programs and screens need. That PSRAM uses a fast bus inside the module, and GPIO 35, 36 and 37 are three of its lines. They still come out to the header, so the shield still gives them LEDs, which may flicker or glow while a sketch uses memory.
Never drive them. The program is running in that memory.
The two you can use with care: 0 and 48
GPIO 0 is the BOOT button, held HIGH by a resistor on the ESP32-S3. Its LED is lit and goes out while you hold BOOT, which is a quick way to see the shield working without uploading anything. After the board has started, GPIO 0 is an ordinary pin — but anything that holds it LOW at the moment of reset stops your sketch starting.
GPIO 48 is the data line of the RGB LED on the ESP32-S3. Its LED blinks briefly whenever that RGB LED is set. You can use the pin, and the RGB LED will show a colour you did not ask for.
When it does not work
GPIO 43 is the transmit line of the serial port behind the left-hand USB socket. It rests HIGH, so the LED is lit, and each character pulls it LOW in quick bursts. That is the serial port working, and a free activity light.
Those two pins are the serial link to your computer. Setting either as an output or using it for something else takes the Serial Monitor down, and on the left-hand socket it takes uploads down too. Move that wire to a pin that is not spoken for.
On the N16R8 module in this kit those three pins carry the 8 MB of PSRAM inside the module. Driving one corrupts the memory the program is running in. Use any other GPIO; the shield's LEDs on 35 to 37 are only for watching.
GPIO 0 is the BOOT button, held HIGH by a 10 kΩ resistor on the ESP32-S3. The LED goes out while the button is pressed. If it stays out, something wired to row 0 is pulling it LOW, which also stops the board booting your sketch at the next reset.
Those are that socket's two data wires. Using them as ordinary pins disconnects the socket. Re-upload through the left-hand socket, which uses GPIO 43 and 44 instead, and pick different pins in your sketch.
All thirty-six, the small marks beside them, and which ones to reach for.
The pins at the edge →Edit this page — content/books/esp32s3-base/lights-that-move-on-their-own.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.