I just built my first Arduino project and chose the XIAO because it was extremely inexpensive, extremely tiny, fully Arduino compatible, and has built-in USB-C for both power and data. I was quite surprised to discover that I could both control and power a small string of ARGB LEDs with only just the XIAO. It’s the perfect all-in-one Arduino package.
Almost.
XIAO advantages
- USB-C for both data and power
- 5v and 3.3v pins can provide (limited) power to controlled devices or sensors
This means that smaller projects can have a single USB-C port that powers the project but which can also be used for program updates, even after “sealing” the project inside a case. This also simplifies development as you can power your arduino-controlled devices while you upload code changes.
XIAO limitations:
- The XIAO has a USB-C connector, but is wired for USB 2.0 without any USB 3 Power Delivery negotiation.
- The XIAO schematic limits the power output on the 5v pin to ~500ma and on the 3.3v pin to ~200ma.
- The output current limitations of SAMD-21, nRF52840, etc restrict I/O current to ~10-15ma.
This means for any project with more than a handful of LEDs, or with any servos or relays, you need to wire in an external power supply.
For example, this means I can run a string of 10 ARGB LEDs off the XIAO’s 5v pin, but only at about 50% brightness. But what if there was a way to power an entire string of LEDs, or even 12v LEDs, as well as the XIAO, while I program it - all over a single USB-C cable?
What I would like to see is a USB-C power delivery expansion board for the XIAO. I see this board as having the following features:
- Small form factor, comparable in total size to the XIAO
- Its own USB-C input
- USB-C 5v output to the XIAO
- USB-C data pass-through to the XIAO
- I/O interface for all XIAO pins, with one dedicated as a PD control pin
- Dedicated PD V-OUT and GND pins
What I envision is a tiny board about the size of the XIAO that can snap onto the XIAO, plug into the XIAO’s USB-C, and then plug in to a power supply or my computer via its own USB-C. I could program the XIAO as normal, except that one of the XIAO pins would be dedicated to controlling the PD signal. I could then program the XIAO to request a particular voltage from this expansion board, allowing me to control and power 5v/9v/12v/15v/20v devices from a single USB-C charger without wiring in a separate power brick.
Ideally, I’d like to see a “XIAO version 2” that has built-in PD negotiation and a pair of PD pins for powering various loads. But building a separate PD negotiation board that can pass-through 5v & USB data to the XIAO is a next-best-thing.