Skip to main content

Beyond Arduino: Choosing Boards for your Project

For projects requiring greater complexity, or more specific features than is possible with an Arduino (particularly: anything requiring image processing, handling multiple peripherals, multithreading) you might want to explore some of the other boards (both microcontroller- and single-board-computers) that we have at the CCI.

Here, I'm going to make a distinction between microcontroller boards like Arduino (which run the same program again and again until you change it), and single board computers (see below) which run an operating system, and are used like a computer. In general, microcontrollers can be more straightforward to use and configure, but there's plenty of applications where using a SBC like a Raspberry Pi (e.g. doing multiple tasks simultaneously) is a better idea and can save you a lot of hassle.

Below is a short guide to choosing boards in different scenarios + more details about resources for getting started with different boards. This guide assumes you are already familiar with Arduino, but are encountering its limitations (or curious about other approaches).

  • I just need more pins -- Arduino Mega

  • I need something cheap so I can buy 20 -- It used to be cheaper to buy boards -- right now probably the best option is probably not to use Atmega. You can also buy supercheap Arduino clones on ebay but do be wary that you might end up with some dud boards.

  • I need something smaller/wearable -- Arduino Nano BLE is a good bet, or the ESP32 if you prefer to use Wifi and need to communicate externally (this can be nice as you can do processing on a server).

  • I need multiple boards to do wireless communication -- don't do peer-to-peer communication with Bluetooth it will make you very sad! Try using packet radio instead

  • I need to do longer range networking than Bluetooth -- you could consider one of the Adafruit Feather packet radios (for range up to a couple of hundred metres), or their LoRa boards, which can reach a couple of km, provided there is line of sight!

  • I need to do multithreading/fast operations -- consider programming in C on the RP2040 chip -- it has 2 cores, as well as a number of interrupt registers.

  • I need to connect to an external server -- use a WiFi board, like an ESP32 or ESP8266 (the ESP32 is just the more recent version -- it's slightly faster and has more GPIO, but both broadly work the same).

  • I want to program using CircuitPython -- (this is a cool thing to want to do for lots of reasons) -- the RP2040 and many of the Adafruit Feather Boards. For a full list of boards that currently support CircuitPython, see Adafruit's Download Guide.

  • I need to do image processing / run a printer / use a camera -- This is where you start wanting to get into using a Raspberry Pi. If size is an issue / you want to do something quite classic, you might want to consider a purpose-built computer vision board like the OpenMV (be warned though -- they can be quite inflexible and it's difficult to generate your own models for these).

  • I need to do machine learning -- The larger Raspberry Pi boards are on the edge of doing stuff, you can also use a purpose built board like the Nvidia series (but depending on what you're doing, it might well be more cost effective just to use a Pi and communicate with an external server).

Microcontrollers

Adafruit's How To Choose A Microcontroller is also a good guide to look at, but 90% of the boards it recommends are the Adafruit Feather series. One thing to be wary of -- lots of these microcontrollers don't run at 5V, but 3.3V! Be careful that you don't fry them by just sticking them into the same circuit you were using with a Leonardo.

Arduino Mega

The Arduino Mega is based on the ATmega2560 chip, which is a larger version of the ATmega328p chip used for the standard Arduino boards. It has 54 digital input/output pins (of which 15 can be used as PWM outputs), 16 analog inputs and 4 hardware Serial ports. It's big!!! (we have 2)

Arduino Nano BLE

We have loads of these little bluetooth boards, which are particularly well-suited

Interestingly, unlike most other Arduino boards, these are not made using the ATMEGA chips but instead Nordic's nrf52 series, which are speedy little Bluetooth chips! They can still be programmed using the Ardiuno IDE, but note that not all the libraries will work in the same way.

RP2040 / Raspberry Pi Pico

If you simply need more speed / simple multithreading, you could also consider switching from Arduino to a Raspberry Pi Pico -- these are not the same as other Raspberry Pis: they don't run an operating system, and are instead an interface to a microcontroller called the RP2040.

The other nice thing about RP2040 boards is that some people make them really pretty small -- Solder Party's RP2040 stamp comes in at 1x1 inch (careful, though, as the headers are 2mm rather than the more common 2.54mm pitch, so the rest of your circuit will need to reflect that). You can also sacrifice some pins for easier interfacing with the Seeed XIAO RP2040, which is a similar size but 2.54mm pitch.

Adafruit Feather Series

The Feathers are not a single board, or even family of boards based on the same chip, but instead a flexible collection of different chips mixed with different communication protocols, all with the same dimensions and layout, battery charging, Arduino IDE compatibility etc etc. It's worth looking through their whole range (if you are into such things), but my particular favourites are:

  • M0 RFM69HCW Packet Radio -- really effective little radio boards, with a range of up to 350m. Great for peer-to-peer communication projects.

Single-board computers

Raspberry Pi

Nvidia ??