XIAO ESP32C3
Overview
Seeed Studio XIAO ESP32C3 is an IoT mini development board based on the Espressif ESP32-C3 WiFi/Bluetooth dual-mode chip.
For more details see the Seeed Studio XIAO ESP32C3 [1] wiki page.
Hardware
This board is based on the ESP32-C3 with 4MB of flash, WiFi and BLE support. It has an USB-C port for programming and debugging, integrated battery charging and an U.FL external antenna connector. It is based on a standard XIAO 14 pin pinout.
Supported Features
The XIAO ESP32C3 board configuration supports the following hardware features:
Interface |
Controller |
Driver/Component |
---|---|---|
PMP |
on-chip |
arch/riscv |
INTMTRX |
on-chip |
intc_esp32c3 |
PINMUX |
on-chip |
pinctrl_esp32 |
USB UART |
on-chip |
serial_esp32_usb |
GPIO |
on-chip |
gpio_esp32 |
UART |
on-chip |
uart_esp32 |
I2C |
on-chip |
i2c_esp32 |
SPI |
on-chip |
spi_esp32_spim |
TWAI |
on-chip |
can_esp32_twai |
Connections and IOs
The board uses a standard XIAO pinout, the default pin mapping is the following:
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
Note
It is recommended running the command above after west update
.
Building & Flashing
For the Hello, world!
application, follow the instructions below.
# From the root of the zephyr repository
west build -b xiao_esp32c3 samples/hello_world
west flash
Since the Zephyr console is by default on the usb_serial device, we use the espressif monitor to view.
$ west espressif monitor
Debugging
As with much custom hardware, the ESP32 modules require patches to OpenOCD that are not upstreamed yet. Espressif maintains their own fork of the project. The custom OpenOCD can be obtained at OpenOCD ESP32 [2]
The Zephyr SDK uses a bundled version of OpenOCD by default. You can overwrite that behavior by adding the
-DOPENOCD=<path/to/bin/openocd> -DOPENOCD_DEFAULT_PATH=<path/to/openocd/share/openocd/scripts>
parameter when building.
Here is an example for building the Hello World application.
# From the root of the zephyr repository
west build -b xiao_esp32c3 samples/hello_world -- -DOPENOCD=<path/to/bin/openocd> -DOPENOCD_DEFAULT_PATH=<path/to/openocd/share/openocd/scripts>
west flash
You can debug an application in the usual way. Here is an example for the Hello World application.
# From the root of the zephyr repository
west build -b xiao_esp32c3 samples/hello_world
west debug