English | Deutsch | Français | 日本語
XIAO PowerBread is an open-source hardware project designed to offer a reliable and efficient power solution for breadboard prototyping. Featuring built-in sensors, real-time monitoring, and compatibility with Seeed Studio XIAO microcontrollers, PowerBread makes powering and developing electronics projects easier than ever.
Easy installation and compact design
Direct power and monitoring you breadboard projects
- Web Console — Stream live voltage, current, power, and energy into the browser over USB-Serial (no driver, no install).
- XPB Binary Protocol v1.2 — Deterministic 100 Hz streaming protocol with a three-stage handshake and automatic reconnect.
- FreeRTOS Refactor — Sensor sampling, UI rendering, dial input, and serial streaming run as independent tasks with explicit synchronization.
- LVGL 8.3 + LovyanGFX — Smoother rendering on the on-board ST7735 LCD.
Important
v3.0 firmware supports XIAO ESP32-S3, ESP32-C3, and ESP32-C6. The RP2040 / RP2350 ports still expose a FreeRTOS scheduling bug that has not been root-caused yet. If you are running a XIAO RP2040 or RP2350, please stay on the v2.0.1 firmware until the v3.x port lands. See the Firmware Releases table below.
- Real-Time Monitoring: View essential power metrics at a glance—no multimeter needed. The built-in display shows real-time voltage, current, and power data.
- High-Current Output: Deliver up to 1.5A of 3.3V power, ideal for most breadboard-based electronics projects.
- Built-in LCD Display: Stay informed with real-time feedback—critical power data is displayed clearly on the integrated LCD.
- Web Console (v3.0): Stream sensor data to a browser-based dashboard over USB-Serial with no extra software to install.
- Plug-and-Play Design: Compatible with standard breadboards, simply plug in, power up, and start prototyping without extra setup.
- Open-Source and Seeed Studio XIAO Compatibility: Compatible with most XIAO Dev Boards. This open-source design provides flexibility for future extensions like USB-serial communication and PWM control.
- Dual-Channel Voltage and Current Sensing: Equipped with the INA3221 sensor for dual-channel voltage and current monitoring—know what's happening with every aspect of your power supply.
- Compact Powerhouse: This compact design delivers both 3.3V and 5V outputs, optimizing your breadboard space without compromising on power.
- Multiple UI Modes: The on-device UI can switch between data monitor, line chart, and statistics modes.
Multiple UI functions
Long press the dial to switch channels in chart and statistic mode
The XPB Web Console is a companion browser app that turns your XIAO PowerBread into a full power-analysis workstation. Plug the board into any Chromium-based browser, click Connect, and the firmware starts streaming live measurements over the Web Serial API — no drivers, no installs, no backend.
- Live charts for voltage, current, and power on both channels, sampled at 100 Hz.
- Per-channel energy integration (mAh / mWh) with a one-click reset.
- Three-stage handshake that auto-detects the device, negotiates the protocol, and starts streaming.
- Dark / Light theme with persistent settings.
- Debug console that shows the raw protocol frames for troubleshooting.
![]() Light mode |
![]() Dark mode |
The Web Console relies on the Web Serial API, which is supported in Chromium-based browsers:
- Chrome 89+
- Edge 89+
- Opera 76+
Firefox and Safari do not currently expose the Web Serial API.
A handy companion tool for your PowerBread — open it in your browser: https://xiao-power-console-web.ioatlas.com
- Input Voltage: Powered via USB-C through the Seeed Studio XIAO.
- Output Voltages: Provides 5V and 3.3V outputs, with a maximum current of 1.5A for the 3.3V rail.
- Current Sensing: The built-in INA3221 sensor measures voltage, current, and power for real-time display.
- Microcontroller: One of the supported Seeed Studio XIAO modules — handles sensor acquisition, display rendering, and serial streaming.
- Display: 0.96" ST7735 LCD for real-time power monitoring.
- PCB Dimensions: Designed for seamless integration with standard breadboards while minimizing space usage.
- XIAO Board — pick one of the supported modules below.
- XIAO PowerBread Board — clone or remix from this repository, or buy the assembled hardware from Seeed Studio or Tindie.
- Breadboard — fits any standard breadboard.
- Power Supply — any standard USB-C source.
| XIAO Board | v3.x | v2.0.1 | v1.1.4 | Recommended Firmware |
|---|---|---|---|---|
| XIAO ESP32-S3 | ✅ | ✅ | ✅ | v3.0 |
| XIAO ESP32-C3 | ✅ | ✅ | ✅ | v3.0 |
| XIAO RP2040 | ❌ (WIP) | ✅ | ✅ | v2.0.1 |
| XIAO RP2350 | ❌ (WIP) | ✅ | ✅ | v2.0.1 |
| XIAO ESP32-C6 | ✅ | — | ✅ | v3.0 |
v3.x support for the RP2040 and RP2350 is still in progress. The RP-series boards currently expose a FreeRTOS scheduling issue that has not been root-caused; please stay on v2.0.1 until the v3.x port lands.
Note: When purchasing from Seeed Studio, remember to also order a compatible XIAO board — it is required but sold separately.
- Build from source — open
Firmware/XPB-Firmware-PlatformIO/in PlatformIO and select the environment matching your board (seeed_xiao_esp32s3,seeed_xiao_esp32c3,seeed_xiao_esp32c6, etc.). - Flash a pre-built firmware:
- XIAO ESP32-S3 / ESP32-C3 / ESP32-C6 (v3.x)
- Web flash tool: https://powerbread-flasher.ioatlas.com
- Tutorial: Flash Firmware for XIAO - ESP32 series
- XIAO RP2040 / RP2350 (stay on v2.0.1 for now)
- Download the
.uf2firmware from the Release page. - Connect the XIAO to your computer with a 4-pin data-capable USB cable.
- Enter bootloader mode: hold BOOT (B), tap RESET (R), then release BOOT.
- A USB drive named
RPI-RP2will appear. - Drag the
.uf2onto the drive — the board will reboot into the new firmware.
- Download the
- XIAO ESP32-S3 / ESP32-C3 / ESP32-C6 (v3.x)
- Make sure your board is running v3.x firmware (XIAO ESP32-S3, ESP32-C3, or ESP32-C6).
- Open the Web Console at https://xiao-power-console-web.ioatlas.com in Chrome / Edge / Opera.
- Click Connect, pick the serial port that corresponds to your XIAO, and grant permission.
- The firmware switches from text-debug mode to binary streaming as soon as the handshake completes — the charts will start filling in immediately.
- Real-time current sensor data displayed on the LCD.
- Dial wheel to adjust the UI for different viewing angles.
- Line chart mode to visualize power usage for each channel.
- Count mode to count average (second, minute, all-time) and peak current consumption for each channel.
- Save settings to EEPROM.
- Web-based UI for data monitoring (v3.0).
- USB-Serial streaming protocol with handshake & reconnect (v3.0).
- v3.x port for XIAO RP2040 / RP2350.
- PWM output on IO0 and IO1.
- ADC reading from IO0 and IO1.
| Version | Stable | Features | Link |
|---|---|---|---|
| 0.9.0 | Yes | Real-time current sensor data on the LCD. | - |
| 1.0.0 | Yes | Dial wheel to adjust the UI for different viewing angles. | RP2040 |
| 1.1.0 | No | Line chart mode to visualize power usage. | RP2040 |
| 1.1.1 | Yes | Data-Dashboard, Line-chart, Current-Statistic, Setting. | RP2040 |
| 1.1.2 | Yes | LED blink for debugging. | RP2040 |
| 1.1.3 | Yes | Fixed-scale and auto-scale line-chart. | RP2040 |
| 1.1.4 | Yes | Adds RP2350, ESP32-C3, ESP32-S3, ESP32-C6 support. | RP2040, RP2350, ESP32C3, ESP32S3, ESP32C6 |
| 2.0.0 | Yes | Refactor + switch to LVGL / LovyanGFX rendering. | RP2040 |
| 2.0.1 | Yes 👍 (RP2040 / RP2350) | Adds RP2350, ESP32-C3, ESP32-S3. | RP2040, RP2350, ESP32C3, ESP32S3 |
| 3.0.0 | Yes 👍 (ESP32-S3 / C3 / C6) | Web Console, XPB Binary Protocol v1.2, FreeRTOS refactor. ESP32-S3 / C3 / C6. | ESP32S3, ESP32C3, ESP32C6 |
- System Config Explanation
- Default mode setting
- Shunt resistor setting (20mOhm, 50mOhm)
- Serial output setting (Human-readable mode, Arduino plotter mode)
- Line chart setting (refresh rate)
- XPB Binary Protocol v1.2 — handshake, frame layout, STREAMING reconnect semantics.
- Flash Firmware for ESP32 series
- The display is not responding — make sure you are on the latest firmware; the latest releases ship stability fixes. Try pressing the reset button on the XIAO.
- The display is not working — check the I2C and SPI pin connections, and verify the XIAO is properly soldered.
- The current value is not correct — check the shunt resistor value and set it correctly in
sysConfig(e.g.20for 20 mΩ,50for 50 mΩ). See System Config. - Both voltage readings show 0 V — check the power switch; it should be in the DOWN position (UP = OFF, DOWN = ON).
- Web Console says "Web Serial API not supported" — use Chrome, Edge, or Opera. Firefox and Safari do not implement Web Serial.
- Web Console can connect but no data arrives — make sure the firmware is v3.x and that no other application (Arduino Serial Monitor, PlatformIO Monitor) is holding the serial port.
| Library | v1.x | v2.x | v3.x | Link |
|---|---|---|---|---|
| Arduino-Pico Core | ✅ | ✅ | ✅ | arduino-pico |
| Arduino-ESP32 Core | ✅ | ✅ | ✅ | arduino-esp32 |
| INA3221_RT | ✅ | ✅ | ✅ | INA3221_RT |
| Adafruit GFX | ✅ | Adafruit-GFX-Library | ||
| Adafruit ST7735 | ✅ | Adafruit-ST7735 | ||
| Adafruit SleepyDog | ✅ | Adafruit_SleepyDog | ||
| LovyanGFX | ✅ | ✅ | LovyanGFX | |
| LVGL | ✅ | ✅ | LVGL | |
| FreeRTOS | ✅ | bundled with Arduino-ESP32 / Arduino-Pico | ||
| Chart.js (Web Console) | ✅ | Chart.js |
| Tool | Link |
|---|---|
| MergeBin tool for ESP32 series | Thanks to DavidSchinazi, DunkelRatte |
| XPB Web Console | https://xiao-power-console-web.ioatlas.com |
Contributions are welcome! Whether you want to submit a pull request, propose new features, or report a bug, feel free to use the issue tracker. Help on the v3.x RP2040 / RP2350 FreeRTOS port is especially appreciated — see the open issues tagged rp-rtos.
This project is licensed under the MIT License. See the LICENSE file for details.










