Thursday, August 13, 2020


One key with the Seeeduino XIAO

Tiny M0 controller with USB-C.

I made a small 1 key PCB for the new XIAO microcontroller from Seeedstudio.

The board has 4 WS2812B LEDs and an in switch LED. It uses only 3 of the pins on the XIAO. D1- switch, D2-LED, D3-WS2812B.

Despite Seeedstudio stating that the XIAO has 14 GPIO, 2 of them are only accessible from tiny pads on the bottom, and RESET isn't really usable as an IO pin, so there are really only 11 pins that are readily accessible.

I bought a 3 pack from Amazon. You can also buy them direct from Seeedstudio, but shipping from China is either slow, or very expensive. Digikey has them in stock and Mouser has them on order. $5 for a tiny microcontroller with USB-C.

I added pins to make it socketable. The XIAO comes with the common large square pin headers which I rarely use. You can see the tiny pads that connect to 2 more IO pins. I put a piece of kapton tape over the bottom to keep it from accidentally shorting on something.

I used a second PCB as the bottom. M2 spacers are screws hold the two PCBs together. A PCB mount MX compatible switch needs be used as there is no plate to hold the switch in place.

XIAO socketed and assembled. I used Peel-A-Way sockets. You can see the current limiting resistor for the LED which I installed inside the switch.

Bottom of the PCB. You can see the footprints for the WS2812B LEDs. The dot indicates pin 1 which is opposite the corner with the notch on the WS2812B.

I wrote a small Arduino script to run this. It is a slightly modified version of the Adafruit buttoncycler. You will need to install the boards definiton from Seeedstudio to add the XIAO to the Arduino IDE. Instructions are on Seeedstudios Wiki.

The Adafruit NeoPixel library will need to be installed using the library manager.

Gerber files on git

Get PCB pricing on PCB Shopper.