Skip to content
My Account

Reference

ESP32-S3-DevKitC-1 Pinout (N8R2 and N16R8)

The real pin reference for the ESP32-S3-DevKitC-1 with 44 pins and two USB ports: what N8R2 and N16R8 mean, which pins you can't use, the strapping pins and how to program it.

  • ESP32
  • 7 min read
No ratings yet, be the first.

The ESP32-S3-DevKitC-1 is Espressif’s own development board for the ESP32-S3: two headers of 22 pins (44 pins in total), two USB ports, a BOOT and a RESET button and an addressable RGB LED. The boards sold as “ESP32-S3 DevKitC-1 N8R2 / N16R8, WiFi BT, 44 pin, Type-C” follow this layout. This guide covers the real pinout, the difference between the N8R2 and the N16R8, and the pins you should leave alone.

The pin data comes from Espressif’s own user guide for the DevKitC-1 v1.1. Cheap boards from other sellers can differ in small details, so check your own board’s silkscreen against the table.

System-on-chip and board

The ESP32-S3 is Espressif’s dual-core Xtensa LX7 chip (up to 240 MHz) with Wi-Fi 4 (802.11 b/g/n, 2.4 GHz only), Bluetooth 5 LE and a full-speed USB OTG interface. “BT” in the listings means Bluetooth Low Energy: the chip has no Classic Bluetooth.

The board carries an ESP32-S3-WROOM-1 module (flash, PSRAM, crystal and PCB antenna in one shielded package), a 5 V to 3.3 V regulator, a USB-to-UART bridge, the BOOT and RESET buttons, a power LED and the RGB LED. Versions with a “U” (WROOM-1U) have a connector for an external antenna instead of the PCB antenna.

Two USB ports

PortConnected toUse it for
UARTThe on-board USB-to-UART bridge, GPIO43 and GPIO44Power, flashing and the serial monitor. Use this one first
USBThe chip’s own USB, GPIO19 and GPIO20Power, native USB (keyboard, mass storage, serial) and JTAG debugging

Espressif lists three power options that are mutually exclusive: one or both USB ports, the 5V and G pins, or the 3V3 and G pins. Don’t connect more than one source at the same time.

Board overview

Overview of the ESP32-S3 development board: PCB antenna, RF shield can, two USB-C connectors and the two rows of pin headers

The module with its PCB antenna sits at the top, the two USB-C connectors at the bottom, and a row of pin headers runs down each long side. The ESP32-S3 chip is under the RF shield can.

N8R2 or N16R8: what the letters mean

N is the flash size in MB and R is the PSRAM size in MB. PSRAM is extra RAM you need for big buffers: camera frames, displays, audio or large JSON.

VersionFlashPSRAMGPIO35 to 37Notes
N8R28 MB2 MB, quadFree to useEspressif has marked the N8R2 as end of life, you still find it in shops
N8R88 MB8 MB, octalNot usableSold by Espressif itself
N16R816 MB8 MB, octalNot usableThe module exists, but I did not find this version in Espressif’s own board list, so these boards come from other sellers

The rule from Espressif: on boards with an octal flash or PSRAM module, GPIO35, GPIO36 and GPIO37 are used for the internal link to that memory and are not available for your own circuits. The quad PSRAM of the N8R2 doesn’t use them.

Which one to buy? If you don’t need much RAM, the N8R2 is plenty and keeps three more pins free. For cameras, screens, audio or a lot of data, take the N16R8: 16 MB of flash for the program and files and 8 MB of PSRAM.

Disclosure: this is the N16R8 board I use for my Pit Droid controller: ESP32-S3-DevKitC-1 N16R8*. It is an affiliate link, if you buy through it I may earn a small commission at no extra cost to you.

Pinout diagram

ESP32-S3-DevKitC-1 pinout with both 22-pin headers

Left is header J1 and right is header J3, with the USB end at the bottom. T is a touch-capable pin and the star marks the default pin of the Arduino core. Grey pins are not usable on boards with octal PSRAM.

GPIO reference

All 36 pins of the headers that carry a GPIO, in order of number. ADC1 and ADC2 are the two analog converters (see the gotchas for ADC2).

GPIOFunctionADCTouchNotes
0BOOT button, strappingNoNoLow at reset starts download mode. Safe as an input after boot
1, 2GPIOADC1T1, T2
3Strapping (JTAG source)ADC1T3Leave it alone unless you need to
4 to 7GPIOADC1T4 to T7Good general-purpose analog pins
8I²C SDA (Arduino default)ADC1T8Remappable with Wire.begin(SDA, SCL)
9I²C SCL (Arduino default)ADC1T9Remappable
10 to 13SPI CS, MOSI, SCK, MISO (Arduino default)ADC1 (10), ADC2 (11 to 13)T10 to T13Default FSPI pins
14GPIOADC2T14
15, 16GPIO, 32 kHz crystal pinsADC2NoFree if you don’t add a 32 kHz crystal
17, 18UART1 TX, RX (default)ADC2No
19, 20USB D- (19) and USB D+ (20)ADC2NoNative USB. Don’t use as plain GPIO if you use USB
21GPIONoNo
35, 36, 37Octal PSRAM linkNoNoNot usable on N8R8 and N16R8, free on N8R2
38GPIO, RGB LED on v1.1NoNoThe RGB LED moved here from GPIO48 on v1.1
39 to 42JTAG (MTCK, MTDO, MTDI, MTMS)NoNoFree if you don’t use an external JTAG debugger
43, 44UART0 TX, RXNoNoTo the USB-to-UART bridge. Used by the serial monitor
45Strapping (flash voltage)NoNoAvoid loading this pin at boot
46Strapping (boot mode and boot messages)NoNoAvoid loading this pin at boot
47GPIONoNo
48GPIO, RGB LED on v1.0NoNoThe WS2812 RGB LED on the first board version

Real gotchas

  • GPIO35, 36 and 37 are not available on N8R8 and N16R8 boards. They are printed on the header but are wired to the octal PSRAM. Using them can interfere with the memory.
  • Which pin is the RGB LED? Espressif’s v1.1 board uses GPIO38, the first version used GPIO48. Cheap boards can have either. If the LED stays dark, try the other pin.
  • PSRAM is not automatic. You must switch it on in your build settings and choose the type that matches your board (see Programming). The wrong choice means no PSRAM or a boot loop.
  • ADC2 and Wi-Fi don’t mix. ADC2 (GPIO11 to GPIO20) shares resources with the Wi-Fi radio, so readings are unreliable while Wi-Fi is on. Use ADC1 (GPIO1 to GPIO10) for analog reads.
  • Strapping pins. GPIO0, GPIO3, GPIO45 and GPIO46 are read at power-up to set the boot mode. A pull-up, a pull-down or a connected circuit on these pins can stop the board from booting. Check Espressif’s datasheet before using them.
  • 3.3 V logic. The pins are not 5 V tolerant. The 5V pin is a power pin, not a signal pin.
  • Wi-Fi is 2.4 GHz only. There is no 5 GHz band and no Classic Bluetooth, only Bluetooth LE.
  • Check your board. Boards from different sellers can use another USB-to-UART chip, so you may need a driver on your computer. Compare the silkscreen with the diagram.

Programming

Arduino IDE, PlatformIO and ESP-IDF all work. In the Arduino IDE choose the board ESP32S3 Dev Module and flash through the UART port.

SettingN8R2N16R8
Flash size8MB16MB
PSRAMQSPI PSRAMOPI PSRAM
USB CDC On BootEnabled only if you want Serial on the native USB portSame
Partition schemeOne that fits 8 MBOne that fits 16 MB

If the upload doesn’t start: hold BOOT, press and release RESET, then let go of BOOT. That is Espressif’s way to enter download mode.

FunctionPinDescription
TXD0GPIO43Serial output to the PC
RXD0GPIO44Serial input from the PC
BOOTGPIO0Hold low at reset for download mode
ENRST pinResets the chip

Example: servo controller for the Pit Droid

I use this board as the controller of my animatronic Pit Droid, together with a PCA9685 servo driver (see Part 2 of the Pit Droid series). Four wires go from the ESP32-S3 to the driver:

PCA9685ESP32-S3-DevKitC-1Note
VCC3V3Logic power only
GNDGCommon ground
SDAGPIO8Arduino default I²C pin
SCLGPIO9Arduino default I²C pin

The servos get their own 5 to 6 V supply on the PCA9685’s screw terminal, not from the ESP32-S3. Connect the ground of that supply to the ground of the board, otherwise the servos get no usable signal.

Conclusion

The ESP32-S3-DevKitC-1 is a good first S3 board: two USB ports, a built-in programmer and every useful pin on the headers. Pick the N8R2 if you want more free pins and the N16R8 if you need memory, and remember that GPIO35 to GPIO37 are gone on the octal versions. Looking for something smaller or with two USB-C ports? See the ESP32-S3 Zero, the XIAO ESP32S3 or the AI-S3, and read the ESP32 family explained to compare the chips.

Advertisement
All guides

More guides

Keep building.

From ESP32 HomeKit accessories to Arduino and ATtiny reference guides, there’s more where this came from.

All guides