A love letter to the Seeed Studio XIAO - grace.pink

grace.pink

A love letter to the Seeed Studio XIAO

October 22, 2024

Drawn circuit board heart with a Seeed Studio XIAO in the core of it.

I am a bit of a nerd, so there are things that seem small but end up making a massive difference. One of those small things is the Seeed Studio XIAO series of Microcontroller Development Boards. These boards do so much right, and I am of the opinion that everyone, from beginners to advanced, should get themselves a couple of them.

A lineup of the XIAO microcontroller dev boards with the text 'Tiny, Powerful, XIAO' above them. Each dev board is about a square and the size of a cheese-it with 7 pins on each side and a USB-C port on the top.

But what is a microcontroller

For my friends who don't necessarily know what the fuck a Microcontroller Development Board is, allow me to explain. If you already know, feel free to skip.

Embedded devices are all around us. Things like microwaves, automatic doors, water bottle fillers, stop lights, or just about anything that does something programmatically need some sort of processor or chip to function, but it does not need to be as powerful as a computer.

An ATMega328P microcontroller. Its about a centimeter wide and a few inches long with .1 inch spaced pins along each of the sides.

An ATMega328P

These chips are called Microcontrollers. They are processors that aren't quite as powerful as a computer (although, at this point, many are more powerful than a computer from 20 years ago and can do pretty complicated stuff), but they are significantly more power efficient and can still do a surprising amount of tasks. Their power comes from the fact that they can interface with electronics like LEDs, buttons, sensors, motors, and pretty much anything controlled by an electric signal. The ability to have your code control the real world is a significant draw to them, but it turns out that it also comes with some complexity.

An ATMega328P on a breadboard with a semi complex circuit and a red pcb hooked up to the ATMega.

AVR Pocket Programmer hooked up to an ATMega328P. Image source.

In order to get your code onto a microcontroller you need to do this mess. Such a complicated process can be a massive obstacle for people who are learning for the first time. And thats even if you are able to program it on a breadboard. Today, most microcontrollers need to be soldered to a purpose-built PCB to work. Luckily, this has been a solved problem for decades.

An Arduino Uno R3. In the center of the board is an ATMega328P

Arduino Uno R3

This is an Arduino Uno R3 and it's what we can call a microcontroller development board. At the heart of it is the same chip as before, the ATMega328P, but now it's been put into another board that allows you to just plug it into your computer and program it. A dev board doesn't necessarily need to be an ATMega328P as it can be designed around any microcontroller. This makes development so much easier to learn. In fact, I got one of these almost a decade ago and learned both electronics and programming with it as a 4th grader. (and the help of a very patient high school student. Thank you, Kane) 

There are also a lot of different processors. The Uno that I learned with uses the ATMega328P, an 8-bit microcontroller by Microchip that is, respectfully, awful today. But there are a lot of options to pick from. There are the RP2040 and RP2035 (of which I am a massive fangirl) that are super affordable and have a lot of functionality built into the package. There is the ESP32 series, which all have WiFi built in and can do some crazy computation. There is the nRF series of chips that can communicate with low-power Bluetooth, ZigBee, thread, and other wireless IoT protocols. There are the STM32s which are good at nothing and suck, and no one should ever use them, and I hate them. There are many options depending on what features you need and there are many different dev boards with each of these chips on them.

An ESP32, STM32 Nucleo, Teensy 4.1, Raspberry Pi Pico 2, Seeed Studio XIAO

All of my development boards. Each one of these has a different microcontroller.

These dev boards come in a lot of shapes and sizes. From the monstrous Teensy 4.1 with 50+ exposed pins to the tiny Seeed Studio XIAO. Oh shit, we finally made it. I'm sorry it took me so long.

The Seeed Studio XIAO

Seeed Studio XIAOs on a white surface

The Seeed Studio XIAO series are dev boards that contain many different microcontrollers (ESP32, RP2xxx, nRF, etc.) in a small format, and they are awesome. I first got one when I needed a second, tiny microcontroller for a project, and I found the XIAO ESP32S3. Later, I was designing a project that needed to be small and fast to make. I decided to use the XIAO RP204 for it, and I took the extras I had left over with me when I went to college, where they have been great to have around. Everyone who is slightly interested in or wants to learn embedded engineering should get themselves some of these.

Size

A XIAO on a postage stamp where the XIAO is slightly smaller.

This is probably the first thing you notice about them, and it's a big (or small haha get it) reason you would decide to use them. I keep one in my backpack (see first sentence), and it's nice to have for when I need it (which is surprisingly a non-zero amount of times).

A XIAO soldered to the debug port on a Raspberry Pi Pico W

The size is also nice because I was able to attach one to a Raspberry Pi Pico W for SWD debugging since I don't own a Pico Debug Probe. It's always on there for anyone else who will use this, and it's small enough not to get in the way. For a lot of bodges like this, the size is a massive asset.

From Breadboard to PCB

The castellated edges of a Raspberry Pi Pico and Seeed Studio XIAO

Once you create a prototype on a breadboard, a logical next step for many projects is to create a PCB. With the XIAO, this is really easy due to its castellated edges. All that means is that there is exposed metal on the sides so that you can surface mount them on a PCB. These aren't unique to the XIAO; in fact, the Raspberry Pi Pico also has them, but paired with their small size, the XIAOs work great when you design a PCB around one.

A purple square PCB with a Seeed Studio XIAO in the middle of it. Its probably about an inch and a half wide.

I actually created this PCB in a single sitting after a couple of hours. Because the XIAO is small and simple, this was relatively simple. It's also incredibly helpful that there are KiCAD Libraries available. It really is a great thing for makers to be able to put at the heart of their projects.

Cost

These dev boards are super cheap. As I am writing this, I double-checked the price and you can get an RP2040 XIAO for $3. Now, that's the cheapest, but not by much. Most are under $10 and have a ton of features. If you just want to try out a bunch of different microcontrollers, getting a haul of all the different types of these is not a bad idea. And if you don't want to deal with the shipping cost if you're only getting a couple to test out the waters, they are also pretty cheap on Amazon with free shipping. Usually, these dev boards are much more expensive than single units on Amazon, but these aren't that much more than usual.

Intercompatibility

This is one of the XIAO series' biggest strengths. Let's take the RP2040 XIAO as an example.

Pinout of XIAO RP2040. Described below

This pinout breaks out pretty much everything you want. Analog and I2C are on the left, ground, power, SPIe on the right, and UART serial pins on the bottom. As it turns out, this is standard across the entire lineup, allowing you to quickly migrate your project from one microcontroller to another incredibly quickly. So if you start a project with the RP2040 XIAO and later down the line decide that you want WiFi, you can just swap out the RP2040 XIAO for an ESP32 XIAO and only reconfigure a little bit of code to move some pin numbers around.

An Adafruit QT Py. Same shape as a XIAO but has a purple PCB

The Seeed Studio XIAO has also spun off a compatible line of other microcontrollers, for example, the QT Py line from Adafruit. These have the same pinout style as the XIAO line but with their own benefits, like the Stemma QT connector that is compatible with other Adafruit sensor modules. This pinout compatibility is great and really gives you a lot of choice once you enter the ecosystem. Speaking of the ecosystem…

The Ecosystem

A bunch of different hats from Adafruit for the Seeed Studio XIAO and QT Py boards

Yes, I really hate that word, but I can't think of anything better to describe it. There are a lot of hats and other compatible devices that work with the pinout. Screens, LED Matrixes, sensors, you name it. While it is not as big of an ecosystem as the Adafruit Featherwings, it is still very sizable and potentially worth investing in due to the wide range of microcontrollers that it supports. Typically, I don't use these types of expansions and use breakouts that are more similar to the style of Adafruit boards, but this is still a great option and might be easier for some beginners to understand.

All the Little Things

There are many little details that make these really nice to have around, so I will list some of them here.

  • All of them have USB C. (somehow, this isn't standard in 2024. looking at you, Raspberry Pi Foundation) All of them support Arduino, MicroPython, and CircuitPython, so you have many choices in the framework you use to program them.
  • They put a reset button on the RP2040 and RP2350 XIAOs. (again, Raspberry Pi Foundation, what the actual hell)
  • The bottom of all the boards has a battery input, and some of them support LiPo charging.
  • The documentation is phenomenal. I don't have much to say about it. It's just really good.

Conclusion

I'm not quite sure how to wrap this up. I've mostly been fangirling over a bunch of electronics for a while. If I wanted to sum up the XIAOs in a single word, it would be flexibility. It's incredibly easy to pick and swap between different microcontrollers depending on your project's changing needs. It's also easy to take something from a breadboard directly to a PCB using the same core of the project. Both of these are massive advantages for learning something new, and I think XIAO dev boards are great for taking your knowledge a step further. If you want to get into embedded systems for the first time, learn how to make a PCB for a small project, or just get too excited about dev boards, you should check out the Seeed Studio XIAO line.