An Open-Source ESP32-S3 Multi-Tool for Embedded System Debugging
π DAPLink Debugger | π‘ UART Monitor | β‘ Power Profiler | π₯οΈ Visual Feedback
Features β’ Hardware β’ Getting Started β’ Project Structure β’ License
Seeed Studio XIAO Debug Mate is an open-source ESP32-S3 multi-tool that simplifies embedded system debugging with visual feedback. This all-in-one device features a standalone 2.01 inch TFT LCD display, LED status matrix, and native Seeed Studio XIAO support, delivering essential debugging functions: DAPLink chip-level debugging, built-in serial monitoring with UART passthrough, and accurate power consumption measurement. Plug-and-play design eliminates complex wiring for streamlined development.
| Feature | Description |
|---|---|
| π DAPLink-Compatible SWD Interface | Powered by ESP32-S3 with full OpenOCD/PyOCD support, delivering professional-grade debugging capabilities. Set breakpoints, step through code, inspect memory, and access low-level hardware operations with precision. |
| π‘ Intelligent Serial Monitor & UART Passthrough | Monitor communications between your XIAO and the Debug Mate, or between the Debug Mate and external UART devices (Arduino, Raspberry Pi, Grove sensors). View real-time serial data on the onboard display or redirect to PC for detailed analysis. |
| β‘ Precision Power Profiling | Track power consumption down to ΞΌA levels. Monitor voltage/current readings, ultra-low-power states, and consumption patterns with peak/valley identification. Factory-calibrated for maximum accuracy (Β±10% @ 1-10ΞΌA). |
Monitor key system metrics without connecting to a PC. The integrated 2.01" LCD screen displays real-time serial communications, power consumption readings, and UART data streams, while the programmable 36-LED matrix provides instant baud rate indicators. Perfect for on-site field testing, mobile development, and quick system power consumption checks.
Purpose-built for the Seeed Studio XIAO ecosystem with direct plug-and-play connectionβany pre-soldered XIAO board connects instantly without tedious wiring. The thoughtfully designed pin headers and sockets transform the device into a specialized expansion breadboard for XIAO development. While optimized for XIAO, the open-source design extends compatibility to any ARM Cortex-M microcontroller via standard SWD and UART interfaces.
| Parameter | Description |
|---|---|
| Processor | Espressif ESP32-S3 |
| Power Input | USB-C 5V/1A |
| Display | 2.01 inch TFT LCD (240 Γ 296 resolution) |
| LED | 36-LED Matrix for Status Indication (Default: Baud Rate) |
| User Input | 1 Γ User Button/Boot Button, 1 Γ Scroll Wheel, 1 Γ Recessed Reset Button |
| I/O Interface | 14 Γ XIAO Standard Pins, 8 Γ Expansion Pins, 4 Γ SWD Debugging Pins, 1 Γ UART Grove Connector |
| Product Size | 100 Γ 56 Γ 20 mm |
| Software | Supports DAPLink for debugging |
| Enclosure | 3D-Printed in Black PLA |
| Board | Interface | Status |
|---|---|---|
| π’ XIAO SAMD21 | SWD | β Supported |
| π’ XIAO RA4M1 | SWD | β Supported |
| π’ XIAO nRF52840 (Sense) | SWD | β Supported |
| π’ XIAO RP2040 | SWD | β Supported |
| π’ XIAO RP2350 | SWD | β Supported |
| π’ XIAO MG24 (Sense) | SWD (OpenOCD) | β Supported |
β οΈ Note: XIAO nRF54L15 and XIAO ESP32 series (C3/S3/C6) do not currently support debugging feature.
If you just want to use the XIAO Debug Mate, flash the pre-compiled firmware:
- Install esptool:
pip install esptool - Connect XIAO Debug Mate via USB-C
- Enter download mode (hold BOOT, press RESET)
- Run the flash script:
| OS | How to Run |
|---|---|
| π macOS | Open Terminal, navigate to 5_Release_firmware/, run ./flash.sh |
| π§ Linux | Open Terminal, navigate to 5_Release_firmware/, run ./flash.sh |
| πͺ Windows | Double-click flash.bat |
# macOS / Linux
cd 5_Release_firmware
./flash.shThe script automatically detects and flashes the latest firmware version!
- Arduino IDE 2.x or later
- ESP32 Board Support (version 3.1.3, installed via Arduino Board Manager)
- USB-C Cable for programming
1οΈβ£ Clone the Repository
git clone https://github.com/Seeed-Studio/OSHW-XIAO-Debug-Mate.git
cd OSHW-XIAO-Debug-Mate2οΈβ£ Install Libraries
Copy all libraries from 1_Libraries/ and the firmware library to your Arduino libraries folder:
# macOS / Linux
cp -r 1_Libraries/* ~/Documents/Arduino/libraries/
cp -r 0_Firmware ~/Documents/Arduino/libraries/Seeed_Debugger
# Windows
xcopy /E /I 1_Libraries\* "%USERPROFILE%\Documents\Arduino\libraries\"
xcopy /E /I 0_Firmware "%USERPROFILE%\Documents\Arduino\libraries\Seeed_Debugger"
β οΈ Important: The firmware must be installed as an Arduino library to compile correctly.
3οΈβ£ Modify ESP32 Core Files
β οΈ Important: You must modify the ESP32 Arduino core files to disable default USB initialization, otherwise TinyUSB will conflict with the default USB stack.
Locate the ESP32 core files:
| OS | Path |
|---|---|
| π macOS | ~/Library/Arduino15/packages/esp32/hardware/esp32/3.1.3/cores/esp32/ |
| πͺ Windows | %LOCALAPPDATA%\Arduino15\packages\esp32\hardware\esp32\3.1.3\cores\esp32\ |
| π§ Linux | ~/.arduino15/packages/esp32/hardware/esp32/3.1.3/cores/esp32/ |
Modify the following 3 files:
File 1: USB.cpp (around line 352)
// Before:
ESPUSB USB;
// After:
// ESPUSB USB;File 2: USB.h (around line 119)
// Before:
extern ESPUSB USB;
// After:
// extern ESPUSB USB;File 3: main.cpp (around lines 98 and 101)
// Before:
#if ARDUINO_USB_DFU_ON_BOOT && !ARDUINO_USB_MODE
USB.enableDFU();
#endif
#if ARDUINO_USB_ON_BOOT && !ARDUINO_USB_MODE
USB.begin();
#endif
// After:
#if ARDUINO_USB_DFU_ON_BOOT && !ARDUINO_USB_MODE
// USB.enableDFU();
#endif
#if ARDUINO_USB_ON_BOOT && !ARDUINO_USB_MODE
// USB.begin();
#endif4οΈβ£ Configure Arduino IDE
Set the following options in Arduino IDE:
- Board: "XIAO ESP32S3"
- Partition Scheme: "Maximum APP (7.9MB APP No OTA/No FS)"
- PSRAM: "OPI PSRAM"
- USB Mode: "USB-OTG (TinyUSB)"
5οΈβ£ Upload Firmware
- Go to File β Examples β Seeed All-in-one Debugger β main
- Or open
0_Firmware/examples/main/main.inodirectly - Click Upload
OSHW-XIAO-Debug-Mate/
βββ π 0_Firmware/ # π§ Main firmware source code
β βββ examples/ # Arduino sketch entry point
β βββ src/ # Core library source files
β
βββ π 1_Libraries/ # π Required Arduino libraries
β βββ Adafruit_BusIO/ # I2C/SPI communication
β βββ Adafruit_INA228/ # Power monitoring sensor
β βββ Adafruit_TinyUSB/ # USB device support
β βββ lvgl_debug_mate/ # LVGL graphics library
β βββ Seeed_Arduino_DAPLink/ # DAPLink implementation
β βββ TFT_eSPI_Debug_Mate/ # TFT display driver
β βββ ... # Other supporting libraries
β
βββ π 2_DAPLink_Package/ # π― DAPLink tools and examples
β βββ examples/ # Pre-compiled test binaries
β βββ target/ # OpenOCD target configurations
β βββ XIAO_MG24_*/ # OpenOCD for MG24 debugging
β
βββ π 3_Product_housing/ # π 3D printable enclosure
β βββ *.stp, *.3mf # CAD files for housing
β
βββ π 4_Hardware/ # β‘ Hardware documentation
β βββ *.pdf # Schematic diagrams
β
βββ π 5_Release_firmware/ # π¦ Pre-compiled firmware binaries
βββ firmware-v*.bin # Ready-to-flash firmware
βββ flash.sh # One-click flash (macOS/Linux)
βββ flash.bat # One-click flash (Windows)
The XIAO Debug Mate features an intuitive menu system:
βββββββββββββββββββββββββββββββββββ
β π Main Menu β
βββββββββββββββββββββββββββββββββββ€
β π‘ Function UART β
β β‘ Function Power β
βββββββββββββββββββββββββββββββββββ
- π Scroll Wheel - Navigate menu items
- π Press - Select/Confirm
- π Long Press - Back/Exit
The UART bridge supports multiple baud rates:
- 9600, 19200, 38400, 57600, 115200, 230400, 460800, 921600
- Accuracy: Β±10% @ 1-10ΞΌA (factory-calibrated)
- Current Range: ΞΌA to mA level precision
- Features: Peak/valley identification, real-time monitoring
- π Buy at Seeed Studio
- π Buy at AliExpress
- π Wiki Documentation
- π» GitHub Repository
We welcome contributions! Please feel free to:
- π Report bugs
- π‘ Suggest new features
- π§ Submit pull requests
- π Improve documentation
This project is open-source hardware (OSHW). See individual library directories for their specific licenses.
This product started with a simple GitHub discussion back in July 2024, where one of our XIAO Core users rei-vilo opened Discussion #20 in our XIAO Open Roadmap with an observation that resonated with many developers: βA programmer-debugger probe is a very useful and βmust haveβ tool for embedded system development. Today, there is no affordable offer.β Then we started the journey of creating this device together with many other community members who contributed a lot of input. Thank you to everyone who contributed ideas and feedback throughout this journey. A special big shout-out to rei-vilo, Chris, PJ, Hendra, Ernesto, Benjamin, Pete, NitekryDPaul for insightful feedback during v0.1 testing.
- Seeed Studio - Hardware design and development
- LVGL - Graphics library
- Adafruit - Various Arduino libraries
- ARM - CMSIS-DAP protocol
- εη«εηζε€ͺι³ - Design inspiration for the LED matrix
Made with β€οΈ by Seeed Studio
π Star us on GitHub β it motivates us a lot!