ESP32 Bench
Boards: ESP32, S2, S3, C3, C6
Flash and monitor: Web Serial
← All boards

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.

ESP32-S3Pins tested on hardware18 projects
ESP32-S3-DevKitC-1, 44 pin. USB connector at the bottom.

Pins tested on hardware

UsePins
I2CSDA 8 / SCL 9
One-wire or DHT dataGPIO 4
BOOT buttonGPIO 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.

PadLabelGPIOCan doUse it?
Left 13V3——Power The 3.3 V supply.
Left 23V3——Power The 3.3 V supply.
Left 3RST——Reset The reset pin.
Left 444ADC1_CH3, Touch TOUCH4, Deep-sleep wakeSafe A general-purpose pin with no boot, flash or USB duty.
Left 555ADC1_CH4, Touch TOUCH5, Deep-sleep wakeSafe A general-purpose pin with no boot, flash or USB duty.
Left 666ADC1_CH5, Touch TOUCH6, Deep-sleep wakeSafe A general-purpose pin with no boot, flash or USB duty.
Left 777ADC1_CH6, Touch TOUCH7, Deep-sleep wakeSafe A general-purpose pin with no boot, flash or USB duty.
Left 81515ADC2_CH4, Deep-sleep wakeSafe A general-purpose pin with no boot, flash or USB duty.
Left 91616ADC2_CH5, Deep-sleep wakeSafe A general-purpose pin with no boot, flash or USB duty.
Left 101717ADC2_CH6, Deep-sleep wakeSafe A general-purpose pin with no boot, flash or USB duty.
Left 111818ADC2_CH7, Deep-sleep wakeSafe A general-purpose pin with no boot, flash or USB duty.
Left 1288ADC1_CH7, Touch TOUCH8, Deep-sleep wakeSafe A general-purpose pin with no boot, flash or USB duty.
Left 1333ADC1_CH2, Touch TOUCH3, Deep-sleep wakeBoot pin A strapping pin that selects the JTAG source.
Left 144646—Boot pin A strapping pin. It must be low at reset to boot normally.
Left 1599ADC1_CH8, Touch TOUCH9, Deep-sleep wakeSafe A general-purpose pin with no boot, flash or USB duty.
Left 161010ADC1_CH9, Touch TOUCH10, Deep-sleep wakeSafe A general-purpose pin with no boot, flash or USB duty.
Left 171111ADC2_CH0, Touch TOUCH11, Deep-sleep wakeSafe A general-purpose pin with no boot, flash or USB duty.
Left 181212ADC2_CH1, Touch TOUCH12, Deep-sleep wakeSafe A general-purpose pin with no boot, flash or USB duty.
Left 191313ADC2_CH2, Touch TOUCH13, Deep-sleep wakeSafe A general-purpose pin with no boot, flash or USB duty.
Left 201414ADC2_CH3, Touch TOUCH14, Deep-sleep wakeSafe A general-purpose pin with no boot, flash or USB duty.
Left 215V——Power The 5 V supply from USB.
Left 22GND——Power Ground.
Right 1GND——Power Ground.
Right 2TX43UART0 TXSerial Carries the serial console. Anything wired here fights with flashing and the bench.
Right 3RX44UART0 RXSerial Carries the serial console. Anything wired here fights with flashing and the bench.
Right 411ADC1_CH0, Touch TOUCH1, Deep-sleep wakeSafe A general-purpose pin with no boot, flash or USB duty.
Right 522ADC1_CH1, Touch TOUCH2, Deep-sleep wakeSafe A general-purpose pin with no boot, flash or USB duty.
Right 64242JTAG MTMSSafe A general-purpose pin with no boot, flash or USB duty.
Right 74141JTAG MTDISafe A general-purpose pin with no boot, flash or USB duty.
Right 84040JTAG MTDOSafe A general-purpose pin with no boot, flash or USB duty.
Right 93939JTAG MTCKSafe A general-purpose pin with no boot, flash or USB duty.
Right 103838—Care Drives the RGB LED on v1.1 boards.
Right 113737—Care Used for flash or PSRAM on modules with octal memory.
Right 123636—Care Used for flash or PSRAM on modules with octal memory.
Right 133535—Care Used for flash or PSRAM on modules with octal memory.
Right 1400Deep-sleep wakeBoot pin A strapping pin and the BOOT button.
Right 154545—Boot pin A strapping pin that sets the flash voltage.
Right 164848—Care Drives the RGB LED on the first board revision.
Right 174747—Safe A general-purpose pin with no boot, flash or USB duty.
Right 182121Deep-sleep wakeSafe A general-purpose pin with no boot, flash or USB duty.
Right 192020ADC2_CH9, USB D+, Deep-sleep wakeAvoid The native USB D+ line. Using it breaks USB flashing and serial.
Right 201919ADC2_CH8, USB D-, Deep-sleep wakeAvoid The native USB D- line. Using it breaks USB flashing and serial.
Right 21GND——Power Ground.
Right 22GND——Power Ground.

The ESP32-S3 chip

FeatureValue
CPUDual-core Xtensa LX7, up to 240 MHz, with vector instructions
RadioWi-Fi 4 (2.4 GHz) and Bluetooth LE 5
GPIOs45
Analog in20 channels on two 12-bit ADCs
Touch14 channels
Analog outNone
USBNative USB 1.1 OTG and a USB serial/JTAG port on GPIO 19 and 20
SRAM512 KB

Compare every ESP32 chip · ESP32-S3 datasheet

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.