Skip to content
My Account

Reference

AI-S3 Pinout

The complete pin reference for the AI-S3: an ESP32-S3-WROOM-1 board with two USB-C ports, an RGB LED, 16 MB flash, 8 MB PSRAM and 36 GPIOs.

  • Dual-core Xtensa LX7
  • Wi-Fi + Bluetooth LE
  • 36 GPIOs
  • Two USB-C
No ratings yet, be the first.

Overview

The AI-S3 is an ESP32-S3 development board on a purple PCB with two USB-C ports, an addressable RGB LED, BOOT and RST buttons and a full breakout of the ESP32-S3-WROOM-1 module: 36 GPIOs on two rows of 22 pins. The module is the N16R8 version with 16 MB of flash and 8 MB of octal PSRAM. It is the Xtensa LX7 sibling of the AI-C3, with the extra power and the AI instructions that the S3 adds.

No 802.15.4 radio on this chip, so Thread and Zigbee are not possible here: that needs an ESP32-C6 or H2 instead. Matter works over Wi-Fi. No Classic Bluetooth, only Bluetooth LE. Only badges for what this exact chip supports are shown.

Two USB-C portsCOM goes to a USB-to-UART chip for flashing and the serial monitor, USB goes straight to the chip’s own USB OTG.
14 touch pads and AI instructionsGPIO1 to GPIO14 double as touch inputs, and the vector instructions of the S3 speed up face, voice and other small AI models.
16 MB flash and 8 MB PSRAMRoom for large firmware, camera frames and audio buffers. Three header pins (GPIO35 to GPIO37) are used for the PSRAM.

System-on-chip and module

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. The board is built on the ESP32-S3-WROOM-1 module: chip, flash, PSRAM, crystal and PCB antenna in one shielded package of 18.0 x 25.5 mm.

PartWhat it does
ESP32-S3-WROOM-1 (N16R8)Module with 16 MB flash and 8 MB octal PSRAM
USB-to-UART chipBehind the COM port, connected to UART0 (GPIO43 and GPIO44)
USB-C, COMPower, flashing and the serial monitor
USB-C, USBPower, and the chip’s own USB OTG on GPIO19 (D-) and GPIO20 (D+)
WS2812 RGB LEDAddressable LED on GPIO48, printed RGB, with IN-OUT pads on the board
BOOT and RST buttonsBOOT pulls GPIO0 low for download mode, RST pulls the EN pin low and resets the chip
Two pin rows22 pins per row at 2.54 mm pitch: 36 GPIOs, EN, two 3V3, one 5V and four GND

Getting started

Use the COM port first. It goes through a USB-to-UART chip that works with any serial monitor. Some systems need a driver for that chip: if the board does not show up as a serial port, check the chip on your board and install its driver.

1. What you needA USB-C cable that carries data and a computer. No extra power supply needed, USB power is enough.
2. Install the softwareInstall the free Arduino IDE, then add ESP32 support via Boards Manager (search “esp32”, by Espressif Systems). Choose ESP32S3 Dev Module as the board.
3. Upload your first sketchSet Flash size to 16MB and PSRAM to OPI PSRAM, pick the port and click Upload. If it hangs on “Connecting…”, hold BOOT, tap RST, then release BOOT.

Specifications

Specifications for the AI-S3 board and its ESP32-S3-WROOM-1 module.

Compute

ChipESP32-S3
CPUDual-core Xtensa LX7, up to 240 MHz
Memory512 KB SRAM, 384 KB ROM, 8 MB octal PSRAM
Flash16 MB

Radio

Wi-Fi802.11 b/g/n, 2.4 GHz
Bluetooth5 LE (no Classic Bluetooth)
USBFull-speed USB OTG (device and host)
SecuritySecure boot, flash encryption

Physical

Operating voltage3.3 V
Module size18.0 x 25.5 x 3.1 mm
Board sizeabout 27.1 x 56.7 mm (read from the drawing)
GPIOs36 on the header
ADCTwo 12-bit ADCs, 20 channels (GPIO1 to GPIO20)
Touch pins14 (GPIO1 to GPIO14)

Dimensions

The two pin rows are 24.6 mm apart and each has 22 pins on a 2.54 mm pitch, 53.34 mm from the first to the last pin. The board itself is about 27.1 x 56.7 mm and the module overhangs the top edge of the board.

AI-S3 dimensions: about 27.1 by 56.7 mm, two rows of 22 pins 24.6 mm apart, module overhanging the top edge

These sizes are read from the drawing of the board, using the 2.54 mm pin pitch as the scale, and not measured on a board. Check them with a caliper before you design an enclosure.

Pinout diagram

The component side with every header pin, its GPIO number and its functions: touch pad, ADC channel, JTAG, the default I2C, SPI and UART pins of the Arduino core, and the USB pins. The pin rows are the same as on the ESP32-S3-DevKitC-1.

AI-S3 pinout diagram, component side, with the GPIO, touch, ADC, JTAG, bus and USB functions of every header pin

Underside

The underside is the same board seen from the other side. The left and right rows are mirrored compared with the component side.

Underside of the AI-S3 with the function of every pin

The default pins (SDA 8, SCL 9, SS 10, MOSI 11, SCK 12, MISO 13, TX 43, RX 44) come from the ESP32S3 Dev Module variant in the Arduino ESP32 core. The ADC, touch, JTAG, strapping and USB functions come from the ESP32-S3 data sheet.

GPIO map at a glance

The same pins grouped by what they can do. GPIO1 to GPIO14 are the most flexible: touch and analog input on one pin.

AI-S3 GPIO map grouped by touch and ADC, strapping, PSRAM, JTAG, UART and USB, and free pins

Power

The board runs from either USB-C port. The header has one 5V pin, two 3V3 pins and four GND pins.

PinUse
5VThe 5 V rail of the board. Use it as a 5 V output from USB for small things, or as a 5 V input when no USB cable is connected
3V3The 3.3 V rail for the chip and for sensors. Do not feed it while the board is also powered from USB
GNDFour ground pins on the two rows
RST (EN)The reset input of the chip, also wired to the RST button

Use only one power source at a time: a USB-C port, the 5V pin or the 3V3 pins. Motors, servos and LED strips should have their own supply with a shared ground, because Wi-Fi bursts and a camera or display already load the board’s regulator.

USB-C, flashing and reset

The AI-S3 has two USB-C ports, printed COM and USB next to the connectors.

PortConnected toUse it for
COMA USB-to-UART chip, UART0 (GPIO43 TX, GPIO44 RX)Power, flashing and the serial monitor. Start with this one
USBThe chip’s own USB OTG (GPIO19 D-, GPIO20 D+)Power, native USB devices such as a keyboard, mouse or mass storage, a serial port (CDC) and JTAG debugging

In the Arduino IDE Serial uses the COM port. To print over the USB port instead, set USB CDC On Boot to Enabled.

If the upload does not start: hold BOOT (GPIO0), tap RST, then release BOOT. That puts the chip in download mode on either port.

FunctionPinDescription
BOOT buttonGPIO0Hold low at reset to enter download mode
RST buttonENReset the chip
USB D- / D+GPIO19 / GPIO20Native USB OTG, the USB port
UART0 TX / RXGPIO43 / GPIO44Serial, the COM port

ADC, touch and the missing DAC

GPIO1 to GPIO14 are the most flexible pins of the board: every one of them is a touch pad, and the first ten are also on the first analog converter.

FeaturePinsNotes
ADC1GPIO1 to GPIO10Works at any time, also while Wi-Fi is on. Use these for analog sensors
ADC2GPIO11 to GPIO20Shares hardware with Wi-Fi: readings are unreliable while Wi-Fi is active. Fine for digital use
TouchGPIO1 to GPIO1414 capacitive touch pads, TOUCH1 to TOUCH14
DACnoneThe ESP32-S3 has no DAC. Use PWM and a filter, or I2S for audio

The ADC input range is small with the default attenuation. Use a voltage divider for signals above the range and never put more than 3.3 V on any pin.

Pins with a second job

  • GPIO0, GPIO3, GPIO45 and GPIO46 are strapping pins that the chip reads at power-up. GPIO0 is the BOOT button. Do not hold the others high or low with an external circuit while the board starts.
  • GPIO35, GPIO36 and GPIO37 are wired to the octal PSRAM of the N16R8 module. They are printed on the header, but you cannot use them.
  • GPIO48 is the WS2812 RGB LED. GPIO8 and GPIO9 are the default I²C pins (SDA and SCL), GPIO10 to GPIO13 the default SPI pins (SS, MOSI, SCK, MISO).
  • GPIO39 to GPIO42 are the JTAG pins (MTCK, MTDO, MTDI, MTMS). They work as normal pins, but you lose them when you debug with an external JTAG probe.
  • GPIO15 and GPIO16 are the pins for an optional 32 kHz crystal (XTAL_32K_P and XTAL_32K_N). They are free if you do not add one.
  • GPIO17 and GPIO18 are the default UART1 pins (TX and RX).
  • GPIO19 and GPIO20 are USB D- and D+ of the USB port. Do not use them as plain GPIO if you use the native USB.
  • GPIO43 and GPIO44 are UART0 TX and RX, used by the COM port and the serial monitor.

GPIO quick reference

All 36 pins of the headers that carry a GPIO, in order of number. None of them is input-only.

GPIOSpecial functionADCTouchBoot state
0BOOT button, strapping––Strapping
1–ADC1_CH0T1Free
2–ADC1_CH1T2Free
3Strapping (JTAG source)ADC1_CH2T3Strapping
4–ADC1_CH3T4Free
5–ADC1_CH4T5Free
6–ADC1_CH5T6Free
7–ADC1_CH6T7Free
8I2C SDA (Arduino default)ADC1_CH7T8Free
9I2C SCL (Arduino default)ADC1_CH8T9Free
10SPI SS (Arduino default)ADC1_CH9T10Free
11SPI MOSI (Arduino default)ADC2_CH0T11Free
12SPI SCK (Arduino default)ADC2_CH1T12Free
13SPI MISO (Arduino default)ADC2_CH2T13Free
14–ADC2_CH3T14Free
15XTAL_32K_PADC2_CH4–Free
16XTAL_32K_NADC2_CH5–Free
17UART1 TX (Arduino default)ADC2_CH6–Free
18UART1 RX (Arduino default)ADC2_CH7–Free
19USB D- (USB port)ADC2_CH8–Free
20USB D+ (USB port)ADC2_CH9–Free
21–––Free
35Octal PSRAM, not usable––Not usable
36Octal PSRAM, not usable––Not usable
37Octal PSRAM, not usable––Not usable
38–––Free
39JTAG MTCK––Free
40JTAG MTDO––Free
41JTAG MTDI––Free
42JTAG MTMS––Free
43UART0 TX (COM port)––Free
44UART0 RX (COM port)––Free
45Strapping (flash voltage)––Strapping
46Strapping (boot mode and boot messages)––Strapping
47–––Free
48RGB LED (WS2812)––Free

Flashing pins

The COM port is wired to UART0 through the USB-to-UART chip. These are the pins involved, in case you connect your own USB-to-serial adapter.

FunctionPinDescription
TXD0GPIO43AI-S3 to PC (output)
RXD0GPIO44PC to AI-S3 (input)
BOOTGPIO0Hold low at reset to enter download mode
ENRST buttonResets the chip

Programming

Arduino IDE, PlatformIO and ESP-IDF all work. In the Arduino IDE choose ESP32S3 Dev Module.

SettingValue for the N16R8 module
Flash size16MB (128Mb)
PSRAMOPI PSRAM
Partition schemeOne that fits 16 MB, for example 16M Flash (3MB APP/9.9MB FATFS)
USB CDC On BootEnabled only if you want Serial on the USB port
UploadThrough the COM port, or the USB port in download mode

PSRAM is not automatic: switch it on in the build settings and choose OPI, the type of this module. The wrong choice means no PSRAM or a boot loop.

Colour cycle on the RGB LED

void setup() {}

void loop() {
  rgbLedWrite(48, 32, 0, 0);   // red
  delay(500);
  rgbLedWrite(48, 0, 32, 0);   // green
  delay(500);
  rgbLedWrite(48, 0, 0, 32);   // blue
  delay(500);
}

I²C scan on the default pins

#include <Wire.h>

void setup() {
  Serial.begin(115200);
  Wire.begin();            // SDA = GPIO8, SCL = GPIO9
  delay(2000);
  for (uint8_t a = 1; a < 127; a++) {
    Wire.beginTransmission(a);
    if (Wire.endTransmission() == 0) Serial.printf("Found 0x%02Xn", a);
  }
}

void loop() {}

I did not run these two sketches on a board, they follow the Arduino ESP32 API. Start with the LED: it needs no extra parts.

Tips

  • Use ADC1 for sensors. GPIO1 to GPIO10 keep working with Wi-Fi on.
  • Start on the COM port. It works with any serial monitor without extra settings.
  • Use the touch pads. A wire or a copper pad on GPIO1 to GPIO14 gives you a button without any extra part.
  • Keep the strapping pins quiet. GPIO0, GPIO3, GPIO45 and GPIO46 should not be pulled hard by external circuits at power-up.
  • Use the PSRAM for big buffers. Camera frames, audio and AI models fit in the 8 MB.
  • Check the fit before you use a breadboard. The pin rows are 24.6 mm apart and the board is wide, which leaves few free holes next to the pins. Header sockets or jumper wires are easier.

Real gotchas

  • GPIO35, 36 and 37 are not usable. They are printed on the header, but wired to the octal PSRAM of the N16R8 module.
  • USB D+ and D- are easy to swap. GPIO19 is D- and GPIO20 is D+.
  • ADC2 and Wi-Fi. ADC2 (GPIO11 to GPIO20) shares resources with the Wi-Fi radio, so readings are unreliable while Wi-Fi is on.
  • PSRAM must be enabled. Choose OPI PSRAM in the build settings, not QSPI.
  • Two ports, two serial ports. The serial monitor must point at the port you are using. Without USB CDC On Boot, Serial prints on the COM port only.
  • Which pin is the RGB LED? On this board it is GPIO48. Other ESP32-S3 boards use another pin, so do not copy the pin from a different board.
  • 2.4 GHz only. No 5 GHz Wi-Fi and no Classic Bluetooth.
  • 3.3 V logic. The pins are not 5 V tolerant. The 5V pin is a power pin, not a signal pin.
  • Limited current. Power motors, servos and strips from their own supply.

Compared with other boards

Common versions of these chips, with the facts that matter when you choose.

ESP32-S3 (AI-S3)ESP32-C3 (AI-C3)ESP32-S2ESP32 (classic)
CPU2 x Xtensa LX7, 240 MHz1 x RISC-V, 160 MHz1 x Xtensa LX72 x Xtensa LX6
WirelessWi-Fi 4 and Bluetooth 5 LEWi-Fi 4 and Bluetooth 5 LEWi-Fi 4Wi-Fi 4 and Bluetooth
Native USBOTGUSB Serial/JTAGOTGNo
Touch pads14None1410
DACNoneNone2 (8-bit)2 (8-bit)
AI instructionsYes (vector)NoNoNo

Take the AI-S3 when you need more power, PSRAM, native USB OTG or small AI models. For a cheaper RISC-V board see the AI-C3, for the same board family with touch and native USB but no Bluetooth see the ESP32-S2 Mini. Need something smaller instead? See the ESP32-S3 Zero.

What to build with it

  • A voice assistant or wake-word detector with an I2S microphone and speaker.
  • Face or object detection with ESP-WHO or ESP-DL, with a camera on the free pins.
  • A USB keyboard, mouse or macro pad through the USB port.
  • A HomeKit or Matter accessory over Wi-Fi.
  • A touch-controlled panel using the 14 touch pads, with the RGB LED as feedback.

Safety notes

Before you wire anything up

  • GPIO0, GPIO3, GPIO45 and GPIO46 are strapping pins, check their boot-time state before using them as outputs.
  • GPIO19 and GPIO20 are the native USB pins, avoid reassigning them if you use the USB port.
  • This board runs at 3.3 V logic, a 5 V signal on any pin can damage the chip.
  • Use only one power source at a time: a USB-C port, the 5V pin or the 3V3 pins.

Conclusion

The AI-S3 gives you the ESP32-S3’s extra compute, native USB OTG, touch pads and AI instructions on a compact board with two USB-C ports, 16 MB of flash and 8 MB of PSRAM. Keep sensors on ADC1, stay away from GPIO35 to GPIO37, switch on OPI PSRAM and use the COM port for your first upload. For the family overview see the ESP32 family explained.

Sources: the pin layout and names from the drawing of the AI-S3, the ESP32-S3 and ESP32-S3-WROOM-1 data sheets, the ESP32S3 Dev Module variant in the Arduino ESP32 core and the ESP-IDF documentation. The board size and the roles of the two USB ports are read from the drawing and the silkscreen, the module variant (N16R8) is as given by the owner of the board.

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