Hardware
This board comes in 2 variants, both based on the ESP32-S3 with WiFi and BLE
support. The default variant supporting 8MB of flash with no PSRAM, while the
psram
variant supporting 4MB of flash with 2MB of PSRAM. Both boards have a
USB-C port for programming and debugging and is based on a standard XIAO 14
pin pinout.
In addition to the Xiao compatible pinout, it also has a RGB NeoPixel for
status and debugging, a reset button, and a button for entering the ROM
bootloader or user input. Like many other Adafruit boards, it has a
SparkFun Qwiic -compatible STEMMA QT connector for the I2C bus so you
don’t even need to solder.
ESP32-S3 is a low-power MCU-based system on a chip (SoC) with integrated
2.4 GHz Wi-Fi and Bluetooth® Low Energy (Bluetooth LE). It consists of
high-performance dual-core microprocessor (Xtensa® 32-bit LX7), a low power
coprocessor, a Wi-Fi baseband, a Bluetooth LE baseband, RF module, and
numerous peripherals.
Supported Features
The adafruit_qt_py_esp32s3
board supports the hardware features listed below.
on-chip /
on-board
Feature integrated in the SoC / present on the board.
2 /
2
Number of instances that are enabled / disabled.
Click on the label to see the first instance of this feature in the board/SoC DTS files.
vnd,foo
Compatible string for the Devicetree binding matching the feature.
Click on the link to view the binding documentation.
adafruit_qt_py_esp32s3
@
psram /
esp32s3/appcpu esp32s3/procpu
adafruit_qt_py_esp32s3@/esp32s3/appcpu
target
Type
Location
Description
Compatible
CPU
on-chip
Espressif Xtensa LX7 CPU2
espressif,xtensa-lx7
ADC
on-chip
ESP32 ADC2
espressif,esp32-adc
Bluetooth
on-chip
Bluetooth HCI for Espressif ESP321
espressif,esp32-bt-hci
CAN
on-chip
ESP32 Two-Wire Automotive Interface (TWAI)1
espressif,esp32-twai
Clock control
on-chip
ESP32 RTC (Power & Clock Controller Module) Module1
espressif,esp32-rtc
Counter
on-chip
ESP32 Counter Driver based on RTC Main Timer1
espressif,esp32-rtc-timer
on-chip
ESP32 general-purpose timers1 3
espressif,esp32-timer
DMA
on-chip
ESP32 GDMA (General Direct Memory Access)1
espressif,esp32-gdma
Flash controller
on-chip
ESP32 flash controller1
espressif,esp32-flash-controller
GPIO & Headers
on-chip
ESP32 GPIO controller2
espressif,esp32-gpio
I2C
on-chip
ESP32 I2C2
espressif,esp32-i2c
I2S
on-chip
ESP32 I2S2
espressif,esp32-i2s
Input
on-chip
ESP32 touch sensor input1
espressif,esp32-touch
Interrupt controller
on-chip
ESP32 Interrupt controller1
espressif,esp32-intc
IPM
on-chip
ESP32 soft inter processor message1
espressif,esp32-ipm
Mailbox
on-chip
ESP32 soft mailbox1
espressif,mbox-esp32
Memory controller
on-chip
ESP32 pseudo-static RAM controller1
espressif,esp32-psram
MTD
on-chip
Flash node1
soc-nv-flash
on-chip
Fixed partitions of a flash (or other non-volatile storage) memory1
fixed-partitions
Pin control
on-chip
ESP32 pin controller1
espressif,esp32-pinctrl
PWM
on-chip
ESP32 LED Control (LEDC)1
espressif,esp32-ledc
on-chip
ESP32 Motor Control Pulse Width Modulator (MCPWM)2
espressif,esp32-mcpwm
RNG
on-chip
ESP32 TRNG (True Random Number Generator)1
espressif,esp32-trng
SDHC
on-chip
ESP32 SDHC controller1
espressif,esp32-sdhc
on-chip
ESP32 SDHC controller slot2
espressif,esp32-sdhc-slot
Sensors
on-chip
ESP32 temperature sensor1
espressif,esp32-temp
on-chip
ESP32 Pulse Counter (PCNT)1
espressif,esp32-pcnt
Serial controller
on-chip
ESP32 UART3
espressif,esp32-uart
on-chip
ESP32 UART1
espressif,esp32-usb-serial
SPI
on-chip
ESP32 SPI2
espressif,esp32-spi
SRAM
on-chip
Generic on-chip SRAM2
mmio-sram
Video
on-chip
ESP32 LCD CAM Peripheral interface1
espressif,esp32-lcd-cam
Watchdog
on-chip
ESP32 XT Watchdog Timer1
espressif,esp32-xt-wdt
on-chip
ESP32 watchdog2
espressif,esp32-watchdog
Wi-Fi
on-chip
ESP32 SoC Wi-Fi1
espressif,esp32-wifi
adafruit_qt_py_esp32s3@/esp32s3/procpu
target
Type
Location
Description
Compatible
CPU
on-chip
Espressif Xtensa LX7 CPU2
espressif,xtensa-lx7
ADC
on-chip
ESP32 ADC2
espressif,esp32-adc
Bluetooth
on-chip
Bluetooth HCI for Espressif ESP321
espressif,esp32-bt-hci
CAN
on-chip
ESP32 Two-Wire Automotive Interface (TWAI)1
espressif,esp32-twai
Clock control
on-chip
ESP32 RTC (Power & Clock Controller Module) Module1
espressif,esp32-rtc
Counter
on-chip
ESP32 Counter Driver based on RTC Main Timer1
espressif,esp32-rtc-timer
on-chip
ESP32 general-purpose timers3 1
espressif,esp32-timer
DMA
on-chip
ESP32 GDMA (General Direct Memory Access)1
espressif,esp32-gdma
Flash controller
on-chip
ESP32 flash controller1
espressif,esp32-flash-controller
GPIO & Headers
on-chip
ESP32 GPIO controller2
espressif,esp32-gpio
on-board
GPIO pins exposed on Seeeduino Xiao (and compatible devices) headers1
seeed,xiao-gpio
on-board
STEMMA QT is a 4-pin JST-SH connector for I2C devices1
stemma-qt-connector
I2C
on-chip
ESP32 I2C2
espressif,esp32-i2c
I2S
on-chip
ESP32 I2S2
espressif,esp32-i2s
Input
on-chip
ESP32 touch sensor input1
espressif,esp32-touch
on-board
Group of GPIO-bound input keys1
gpio-keys
Interrupt controller
on-chip
ESP32 Interrupt controller1
espressif,esp32-intc
IPM
on-chip
ESP32 soft inter processor message1
espressif,esp32-ipm
LED strip
on-board
Worldsemi WS2812 LED strip, SPI binding1
worldsemi,ws2812-spi
Mailbox
on-chip
ESP32 soft mailbox1
espressif,mbox-esp32
Memory controller
on-chip
ESP32 pseudo-static RAM controller1
espressif,esp32-psram
MTD
on-chip
Flash node1
soc-nv-flash
on-chip
Fixed partitions of a flash (or other non-volatile storage) memory1
fixed-partitions
Pin control
on-chip
ESP32 pin controller1
espressif,esp32-pinctrl
PWM
on-chip
ESP32 LED Control (LEDC)1
espressif,esp32-ledc
on-chip
ESP32 Motor Control Pulse Width Modulator (MCPWM)2
espressif,esp32-mcpwm
RNG
on-chip
ESP32 TRNG (True Random Number Generator)1
espressif,esp32-trng
SDHC
on-chip
ESP32 SDHC controller1
espressif,esp32-sdhc
on-chip
ESP32 SDHC controller slot2
espressif,esp32-sdhc-slot
Sensors
on-chip
ESP32 temperature sensor1
espressif,esp32-temp
on-chip
ESP32 Pulse Counter (PCNT)1
espressif,esp32-pcnt
Serial controller
on-chip
ESP32 UART1 2
espressif,esp32-uart
on-chip
ESP32 UART1
espressif,esp32-usb-serial
SPI
on-chip
ESP32 SPI2
espressif,esp32-spi
SRAM
on-chip
Generic on-chip SRAM2
mmio-sram
Video
on-chip
ESP32 LCD CAM Peripheral interface1
espressif,esp32-lcd-cam
Watchdog
on-chip
ESP32 XT Watchdog Timer1
espressif,esp32-xt-wdt
on-chip
ESP32 watchdog1 1
espressif,esp32-watchdog
Wi-Fi
on-chip
ESP32 SoC Wi-Fi1
espressif,esp32-wifi
adafruit_qt_py_esp32s3@psram/esp32s3/appcpu
target
Type
Location
Description
Compatible
CPU
on-chip
Espressif Xtensa LX7 CPU2
espressif,xtensa-lx7
ADC
on-chip
ESP32 ADC2
espressif,esp32-adc
Bluetooth
on-chip
Bluetooth HCI for Espressif ESP321
espressif,esp32-bt-hci
CAN
on-chip
ESP32 Two-Wire Automotive Interface (TWAI)1
espressif,esp32-twai
Clock control
on-chip
ESP32 RTC (Power & Clock Controller Module) Module1
espressif,esp32-rtc
Counter
on-chip
ESP32 Counter Driver based on RTC Main Timer1
espressif,esp32-rtc-timer
on-chip
ESP32 general-purpose timers1 3
espressif,esp32-timer
DMA
on-chip
ESP32 GDMA (General Direct Memory Access)1
espressif,esp32-gdma
Flash controller
on-chip
ESP32 flash controller1
espressif,esp32-flash-controller
GPIO & Headers
on-chip
ESP32 GPIO controller2
espressif,esp32-gpio
I2C
on-chip
ESP32 I2C2
espressif,esp32-i2c
I2S
on-chip
ESP32 I2S2
espressif,esp32-i2s
Input
on-chip
ESP32 touch sensor input1
espressif,esp32-touch
Interrupt controller
on-chip
ESP32 Interrupt controller1
espressif,esp32-intc
IPM
on-chip
ESP32 soft inter processor message1
espressif,esp32-ipm
Mailbox
on-chip
ESP32 soft mailbox1
espressif,mbox-esp32
Memory controller
on-chip
ESP32 pseudo-static RAM controller1
espressif,esp32-psram
MTD
on-board
Flash node1
soc-nv-flash
on-chip
Fixed partitions of a flash (or other non-volatile storage) memory1
fixed-partitions
Pin control
on-chip
ESP32 pin controller1
espressif,esp32-pinctrl
PWM
on-chip
ESP32 LED Control (LEDC)1
espressif,esp32-ledc
on-chip
ESP32 Motor Control Pulse Width Modulator (MCPWM)2
espressif,esp32-mcpwm
RNG
on-chip
ESP32 TRNG (True Random Number Generator)1
espressif,esp32-trng
SDHC
on-chip
ESP32 SDHC controller1
espressif,esp32-sdhc
on-chip
ESP32 SDHC controller slot2
espressif,esp32-sdhc-slot
Sensors
on-chip
ESP32 temperature sensor1
espressif,esp32-temp
on-chip
ESP32 Pulse Counter (PCNT)1
espressif,esp32-pcnt
Serial controller
on-chip
ESP32 UART3
espressif,esp32-uart
on-chip
ESP32 UART1
espressif,esp32-usb-serial
SPI
on-chip
ESP32 SPI2
espressif,esp32-spi
SRAM
on-chip
Generic on-chip SRAM2
mmio-sram
Video
on-chip
ESP32 LCD CAM Peripheral interface1
espressif,esp32-lcd-cam
Watchdog
on-chip
ESP32 XT Watchdog Timer1
espressif,esp32-xt-wdt
on-chip
ESP32 watchdog2
espressif,esp32-watchdog
Wi-Fi
on-chip
ESP32 SoC Wi-Fi1
espressif,esp32-wifi
adafruit_qt_py_esp32s3@psram/esp32s3/procpu
target
Type
Location
Description
Compatible
CPU
on-chip
Espressif Xtensa LX7 CPU2
espressif,xtensa-lx7
ADC
on-chip
ESP32 ADC2
espressif,esp32-adc
Bluetooth
on-chip
Bluetooth HCI for Espressif ESP321
espressif,esp32-bt-hci
CAN
on-chip
ESP32 Two-Wire Automotive Interface (TWAI)1
espressif,esp32-twai
Clock control
on-chip
ESP32 RTC (Power & Clock Controller Module) Module1
espressif,esp32-rtc
Counter
on-chip
ESP32 Counter Driver based on RTC Main Timer1
espressif,esp32-rtc-timer
on-chip
ESP32 general-purpose timers3 1
espressif,esp32-timer
DMA
on-chip
ESP32 GDMA (General Direct Memory Access)1
espressif,esp32-gdma
Flash controller
on-chip
ESP32 flash controller1
espressif,esp32-flash-controller
GPIO & Headers
on-chip
ESP32 GPIO controller2
espressif,esp32-gpio
on-board
GPIO pins exposed on Seeeduino Xiao (and compatible devices) headers1
seeed,xiao-gpio
on-board
STEMMA QT is a 4-pin JST-SH connector for I2C devices1
stemma-qt-connector
I2C
on-chip
ESP32 I2C2
espressif,esp32-i2c
I2S
on-chip
ESP32 I2S2
espressif,esp32-i2s
Input
on-chip
ESP32 touch sensor input1
espressif,esp32-touch
on-board
Group of GPIO-bound input keys1
gpio-keys
Interrupt controller
on-chip
ESP32 Interrupt controller1
espressif,esp32-intc
IPM
on-chip
ESP32 soft inter processor message1
espressif,esp32-ipm
LED strip
on-board
Worldsemi WS2812 LED strip, SPI binding1
worldsemi,ws2812-spi
Mailbox
on-chip
ESP32 soft mailbox1
espressif,mbox-esp32
Memory controller
on-chip
ESP32 pseudo-static RAM controller1
espressif,esp32-psram
MTD
on-board
Flash node1
soc-nv-flash
on-chip
Fixed partitions of a flash (or other non-volatile storage) memory1
fixed-partitions
Pin control
on-chip
ESP32 pin controller1
espressif,esp32-pinctrl
PWM
on-chip
ESP32 LED Control (LEDC)1
espressif,esp32-ledc
on-chip
ESP32 Motor Control Pulse Width Modulator (MCPWM)2
espressif,esp32-mcpwm
RNG
on-chip
ESP32 TRNG (True Random Number Generator)1
espressif,esp32-trng
SDHC
on-chip
ESP32 SDHC controller1
espressif,esp32-sdhc
on-chip
ESP32 SDHC controller slot2
espressif,esp32-sdhc-slot
Sensors
on-chip
ESP32 temperature sensor1
espressif,esp32-temp
on-chip
ESP32 Pulse Counter (PCNT)1
espressif,esp32-pcnt
Serial controller
on-chip
ESP32 UART1 2
espressif,esp32-uart
on-chip
ESP32 UART1
espressif,esp32-usb-serial
SPI
on-chip
ESP32 SPI2
espressif,esp32-spi
SRAM
on-chip
Generic on-chip SRAM2
mmio-sram
Video
on-chip
ESP32 LCD CAM Peripheral interface1
espressif,esp32-lcd-cam
Watchdog
on-chip
ESP32 XT Watchdog Timer1
espressif,esp32-xt-wdt
on-chip
ESP32 watchdog1 1
espressif,esp32-watchdog
Wi-Fi
on-chip
ESP32 SoC Wi-Fi1
espressif,esp32-wifi
Prerequisites
Espressif HAL requires WiFi and Bluetooth binary blobs in order work. Run the
command below to retrieve those files.
west blobs fetch hal_espressif
Copy to clipboard
Note
It is recommended running the command above after west update
.
Building & Flashing
The adafruit_qt_py_esp32s3
board supports the runners and associated west commands listed below.
flash
debug
attach
rtt
debugserver
esp32
✅ (default)
openocd
✅
✅ (default)
✅
✅
✅
Simple boot
The board could be loaded using the single binary image, without 2nd stage
bootloader. It is the default option when building the application without
additional configuration.
Note
Simple boot does not provide any security features nor OTA updates.
MCUboot bootloader
User may choose to use MCUboot bootloader instead. In that case the bootloader
must be built (and flashed) at least once.
There are two options to be used when building an application:
Sysbuild
Manual build
Note
User can select the MCUboot bootloader by adding the following line
to the board default configuration file.
CONFIG_BOOTLOADER_MCUBOOT = y
Copy to clipboard
Sysbuild
The sysbuild makes possible to build and flash all necessary images needed to
bootstrap the board with the ESP32 SoC.
To build the sample application using sysbuild use the command:
west build -b adafruit_qt_py_esp32s3 --sysbuild samples/hello_world
Copy to clipboard
By default, the ESP32 sysbuild creates bootloader (MCUboot) and application
images. But it can be configured to create other kind of images.
Build directory structure created by sysbuild is different from traditional
Zephyr build. Output is structured by the domain subdirectories:
build/
├── hello_world
│ └── zephyr
│ ├── zephyr.elf
│ └── zephyr.bin
├── mcuboot
│ └── zephyr
│ ├── zephyr.elf
│ └── zephyr.bin
└── domains.yaml
Copy to clipboard
Note
With --sysbuild
option the bootloader will be re-build and re-flash
every time the pristine build is used.
For more information about the system build please read the Sysbuild (System build) documentation.
Manual build
During the development cycle, it is intended to build & flash as quickly possible.
For that reason, images can be built one at a time using traditional build.
The instructions following are relevant for both manual build and sysbuild.
The only difference is the structure of the build directory.
Note
Remember that bootloader (MCUboot) needs to be flash at least once.
Build and flash applications as usual (see Building an Application and
Run an Application for more details).
QT Py ESP32S3 QT Py ESP32S3 with PSRAM
# From the root of the zephyr repository
west build -b adafruit_qt_py_esp32s3/esp32s3/procpu samples/hello_world
Copy to clipboard
# From the root of the zephyr repository
west build -b adafruit_qt_py_esp32s3@psram/esp32s3/procpu samples/hello_world
Copy to clipboard
The usual flash
target will work with the adafruit_qt_py_esp32s3
board
configuration. Here is an example for the Hello World
application.
QT Py ESP32S3 QT Py ESP32S3 with PSRAM
# From the root of the zephyr repository
west build -b adafruit_qt_py_esp32s3/esp32s3/procpu samples/hello_world
west flash
Copy to clipboard
# From the root of the zephyr repository
west build -b adafruit_qt_py_esp32s3@psram/esp32s3/procpu samples/hello_world
west flash
Copy to clipboard
Open the serial monitor using the following command:
west espressif monitor
Copy to clipboard
After the board has automatically reset and booted, you should see the following
message in the monitor:
***** Booting Zephyr OS vx.x.x-xxx-gxxxxxxxxxxxx *****
Hello World! adafruit_qt_py_esp32s3/esp32s3/procpu
Copy to clipboard
Debugging
ESP32-S3 support on OpenOCD is available at OpenOCD ESP32 .
ESP32-S3 has a built-in JTAG circuitry and can be debugged without any
additional chip. Only an USB cable connected to the D+/D- pins is necessary.
Further documentation can be obtained from the SoC vendor
in JTAG debugging for ESP32-S3 .
Here is an example for building the Hello World application.
QT Py ESP32S3 QT Py ESP32S3 with PSRAM
# From the root of the zephyr repository
west build -b adafruit_qt_py_esp32s3/esp32s3/procpu samples/hello_world
west debug
Copy to clipboard
# From the root of the zephyr repository
west build -b adafruit_qt_py_esp32s3@psram/esp32s3/procpu samples/hello_world
west debug
Copy to clipboard
You can debug an application in the usual way. Here is an example for
the Hello World application.
QT Py ESP32S3 QT Py ESP32S3 with PSRAM
# From the root of the zephyr repository
west build -b adafruit_qt_py_esp32s3/esp32s3/procpu samples/hello_world
west debug
Copy to clipboard
# From the root of the zephyr repository
west build -b adafruit_qt_py_esp32s3@psram/esp32s3/procpu samples/hello_world
west debug
Copy to clipboard