ESP32-S3-DevKitC-1, 44 pin pinout
ESP32-S3 board. Pick ESP32S3 Dev Module in the Arduino IDE. 23 of its header GPIOs are free of boot, flash and USB duties.
S3
3V3
GND
3V3
TX
RST
RX
4
1
5
2
6
42
7
41
15
40
16
39
17
38
18
37
8
36
3
35
46
0
9
45
10
48
11
47
12
21
13
20
14
19
5V
GND
GND
GND
Pins tested on hardware
| Use | Pins |
|---|---|
| I2C | SDA 8 / SCL 9 |
| One-wire or DHT data | GPIO 4 |
| BOOT button | GPIO 0 |
Field notes
- The board has two USB ports: a UART bridge and the chip's native USB on GPIO 19 and 20.
- Opening the native USB port resets the board, so every new serial connection restarts your firmware.
- Firmware that should talk on either port has to listen on both. ProbeHarbor's probe ignored settings on the native port until it did.
- The RGB LED is on GPIO 38 on v1.1 boards and GPIO 48 on the first revision.
- ProbeHarbor builds for 4 MB flash so modules smaller than the DevKitC's default 8 MB still boot.
Analog and Wi-Fi
Wi-Fi also uses ADC2. The driver arbitrates, but a read can fail while Wi-Fi is busy, so prefer ADC1 pins (GPIO 1 to 10).
Every pin
Pads in order from the top, with the USB connector at the bottom. Numbers are GPIO numbers, which is what sketches use.
| Pad | Label | GPIO | Can do | Use it? |
|---|---|---|---|---|
| Left 1 | 3V3 | — | — | Power The 3.3 V supply. |
| Left 2 | 3V3 | — | — | Power The 3.3 V supply. |
| Left 3 | RST | — | — | Reset The reset pin. |
| Left 4 | 4 | 4 | ADC1_CH3, Touch TOUCH4, Deep-sleep wake | Safe A general-purpose pin with no boot, flash or USB duty. |
| Left 5 | 5 | 5 | ADC1_CH4, Touch TOUCH5, Deep-sleep wake | Safe A general-purpose pin with no boot, flash or USB duty. |
| Left 6 | 6 | 6 | ADC1_CH5, Touch TOUCH6, Deep-sleep wake | Safe A general-purpose pin with no boot, flash or USB duty. |
| Left 7 | 7 | 7 | ADC1_CH6, Touch TOUCH7, Deep-sleep wake | Safe A general-purpose pin with no boot, flash or USB duty. |
| Left 8 | 15 | 15 | ADC2_CH4, Deep-sleep wake | Safe A general-purpose pin with no boot, flash or USB duty. |
| Left 9 | 16 | 16 | ADC2_CH5, Deep-sleep wake | Safe A general-purpose pin with no boot, flash or USB duty. |
| Left 10 | 17 | 17 | ADC2_CH6, Deep-sleep wake | Safe A general-purpose pin with no boot, flash or USB duty. |
| Left 11 | 18 | 18 | ADC2_CH7, Deep-sleep wake | Safe A general-purpose pin with no boot, flash or USB duty. |
| Left 12 | 8 | 8 | ADC1_CH7, Touch TOUCH8, Deep-sleep wake | Safe A general-purpose pin with no boot, flash or USB duty. |
| Left 13 | 3 | 3 | ADC1_CH2, Touch TOUCH3, Deep-sleep wake | Boot pin A strapping pin that selects the JTAG source. |
| Left 14 | 46 | 46 | — | Boot pin A strapping pin. It must be low at reset to boot normally. |
| Left 15 | 9 | 9 | ADC1_CH8, Touch TOUCH9, Deep-sleep wake | Safe A general-purpose pin with no boot, flash or USB duty. |
| Left 16 | 10 | 10 | ADC1_CH9, Touch TOUCH10, Deep-sleep wake | Safe A general-purpose pin with no boot, flash or USB duty. |
| Left 17 | 11 | 11 | ADC2_CH0, Touch TOUCH11, Deep-sleep wake | Safe A general-purpose pin with no boot, flash or USB duty. |
| Left 18 | 12 | 12 | ADC2_CH1, Touch TOUCH12, Deep-sleep wake | Safe A general-purpose pin with no boot, flash or USB duty. |
| Left 19 | 13 | 13 | ADC2_CH2, Touch TOUCH13, Deep-sleep wake | Safe A general-purpose pin with no boot, flash or USB duty. |
| Left 20 | 14 | 14 | ADC2_CH3, Touch TOUCH14, Deep-sleep wake | Safe A general-purpose pin with no boot, flash or USB duty. |
| Left 21 | 5V | — | — | Power The 5 V supply from USB. |
| Left 22 | GND | — | — | Power Ground. |
| Right 1 | GND | — | — | Power Ground. |
| Right 2 | TX | 43 | UART0 TX | Serial Carries the serial console. Anything wired here fights with flashing and the bench. |
| Right 3 | RX | 44 | UART0 RX | Serial Carries the serial console. Anything wired here fights with flashing and the bench. |
| Right 4 | 1 | 1 | ADC1_CH0, Touch TOUCH1, Deep-sleep wake | Safe A general-purpose pin with no boot, flash or USB duty. |
| Right 5 | 2 | 2 | ADC1_CH1, Touch TOUCH2, Deep-sleep wake | Safe A general-purpose pin with no boot, flash or USB duty. |
| Right 6 | 42 | 42 | JTAG MTMS | Safe A general-purpose pin with no boot, flash or USB duty. |
| Right 7 | 41 | 41 | JTAG MTDI | Safe A general-purpose pin with no boot, flash or USB duty. |
| Right 8 | 40 | 40 | JTAG MTDO | Safe A general-purpose pin with no boot, flash or USB duty. |
| Right 9 | 39 | 39 | JTAG MTCK | Safe A general-purpose pin with no boot, flash or USB duty. |
| Right 10 | 38 | 38 | — | Care Drives the RGB LED on v1.1 boards. |
| Right 11 | 37 | 37 | — | Care Used for flash or PSRAM on modules with octal memory. |
| Right 12 | 36 | 36 | — | Care Used for flash or PSRAM on modules with octal memory. |
| Right 13 | 35 | 35 | — | Care Used for flash or PSRAM on modules with octal memory. |
| Right 14 | 0 | 0 | Deep-sleep wake | Boot pin A strapping pin and the BOOT button. |
| Right 15 | 45 | 45 | — | Boot pin A strapping pin that sets the flash voltage. |
| Right 16 | 48 | 48 | — | Care Drives the RGB LED on the first board revision. |
| Right 17 | 47 | 47 | — | Safe A general-purpose pin with no boot, flash or USB duty. |
| Right 18 | 21 | 21 | Deep-sleep wake | Safe A general-purpose pin with no boot, flash or USB duty. |
| Right 19 | 20 | 20 | ADC2_CH9, USB D+, Deep-sleep wake | Avoid The native USB D+ line. Using it breaks USB flashing and serial. |
| Right 20 | 19 | 19 | ADC2_CH8, USB D-, Deep-sleep wake | Avoid The native USB D- line. Using it breaks USB flashing and serial. |
| Right 21 | GND | — | — | Power Ground. |
| Right 22 | GND | — | — | Power Ground. |
The ESP32-S3 chip
| Feature | Value |
|---|---|
| CPU | Dual-core Xtensa LX7, up to 240 MHz, with vector instructions |
| Radio | Wi-Fi 4 (2.4 GHz) and Bluetooth LE 5 |
| GPIOs | 45 |
| Analog in | 20 channels on two 12-bit ADCs |
| Touch | 14 channels |
| Analog out | None |
| USB | Native USB 1.1 OTG and a USB serial/JTAG port on GPIO 19 and 20 |
| SRAM | 512 KB |
Projects for this board
- ProbeHarbor probe Prebuilt sensor firmware from the ProbeHarbor project. Flash it from this page, then it finds a temperature sensor by itself and posts a reading every minute.
- Wi-Fi scanner List nearby networks with signal strength and channel every ten seconds. A quick radio health check.
- I2C bus scanner Probe every address on the I2C bus and report what answers. Run it before trusting any sensor wiring.
- DHT22 climate logger Read temperature and humidity every two seconds and print them as a log line.
- SSD1306 OLED status Drive a 128 by 64 I2C OLED and show an uptime counter. The base for any small status display.
- Touch piano Turn four bare wires into touch keys. Each touch prints a note, and an optional buzzer plays it.
- ESP-NOW pair Two boards talk directly over the Wi-Fi radio, with no router. Each sends a counter and prints what the other sends.
- NeoPixel effects Drive a strip or stick of WS2812 LEDs through a color wipe, a rainbow and a theater chase.
- Home Assistant temperature Publish a DS18B20 reading over MQTT every 30 seconds. Home Assistant finds the sensor by itself through MQTT discovery.
- Bluetooth LE scanner List nearby Bluetooth LE devices with their signal strength every ten seconds: phones, watches, beacons and sensors.
- Over-the-air updates Upload new firmware over Wi-Fi with ArduinoOTA, so a board in a box on the shelf never needs a USB cable again.
- Battery deep-sleep sensor Wake every five minutes, read a DS18B20 and the battery voltage, then go back to deep sleep. A boot counter survives in RTC memory.
- Relay and servo control Move a hobby servo to any angle and switch a relay module on and off by typing commands on the bench.
- E-paper temperature card Show a DS18B20 reading on a 2.9 inch e-paper panel that keeps its image with the power off, refreshing only when the value changes.
- BME280 web dashboard The board serves its own web page with live temperature, humidity and pressure and a chart that grows every two seconds.
- Wi-Fi setup portal No passwords in the sketch: the board opens its own setup network with a page to pick your Wi-Fi, saves it, and joins it from then on.
- DS18B20 to ProbeHarbor Read a waterproof DS18B20 probe and post the temperature to ProbeHarbor once a minute.
- DS18B20 with Wi-Fi portal The same DS18B20 probe, but Wi-Fi is set from a phone through a captive portal instead of being compiled in.
Amazon buy links may include an Associates tag, and this site may earn a commission from qualifying Amazon purchases at no extra cost to you. Adafruit links are direct.