Overview
There are so many Adafruit microcontrollers that are compatible with CircuitPython, choosing a board can be overwhelming. Perhaps you have a feature in mind that you're looking for. This helps narrow it down, but there may be multiple boards with that feature. So what can you do? Check out this guide!
This guide breaks down the CircuitPython compatible Adafruit microcontrollers into feature categories. Within those categories, each board has text explaining its other features to explain why you might choose it over another board.
For example, let's say you want a board that's WiFi enabled. Great! But which board do you choose? Maybe a built-in display would be ideal for your WiFi project. Check out the WiFi Enabled page, scan through the boards, and get a feel for their differences. You could find that PyPortal is perfect for you!
Page last edited March 08, 2024
Text editor powered by tinymce.
Beginner Boards
Perhaps you're new to electronics and programming. Maybe you're a pro, but you've never worked with CircuitPython. Working with CircuitPython is super simple, but requires that you have a CircuitPython compatible microcontroller. Some boards are better than others for getting started than others. So which one do you choose?
This page contains all of the beginner CircuitPython compatible boards and a bit about the features of each one. You're ready to get started, now to figure out what features will work best for you!
The Adafruit Circuit Playground Express, running the ATSAMD21 microcontroller, is the perfect board for beginners to electronics and programming. It has tons built in: ten RGB NeoPixel LEDs, an accelerometer, temperature, light and sound sensors, mini speaker, two buttons, a slide switch, IR transmitter and receiver, little red LED, and eight alligator-clip friendly GPIO pads, seven of which can act as touch pads.
This is an excellent beginner choice that does not require any soldering.
The Adafruit Circuit Playground Bluefruit, running the Bluetooth LE capabile nRF52840, is an all-in-one board designed to get you started with programming an electronics. It's loaded with all kinds of LEDs, sensors and inputs, including an accelerometer, light, temperature, and sound sensors, touch pads, buttons, switch, NeoPixel LEDs, speaker, and more. Additional capabilities can be added via the alligator clip friendly pads.
This is an excellent beginner choice that does not require any soldering.
Circuit Playground Express or Bluefruit?
There are two great Circuit Playground options for using CircuitPython. So which one is better for you? You'll be fine with either, but here a few key differences that may drive you one way or the other.
- The Circuit Playground Express has more support in MakeCode / Code.org and the SAMD21 is a more universal processor. Theres a lot more example codes for it. However, it's an older chip so not as powerful, has less RAM, and of course, does not have Bluetooth LE wireless
- The Circuit Playground Bluefruit does not have an IR transceiver (for remote control projects) because it has BLE instead. The processor is more powerful, has tons more memory which comes in handy with CircuitPython projects as they grow. However, its a newer chip, and does not have full MakeCode support, Code.org CS Discoveries support, or as many projects.
It also has Bluetooth LE connectivity so it can wirelessly connect to computers, phones, tablets and other devices.
Easily interface to STEMMA QT / Qwiic sensors and breakouts.
The Adafruit QT Py uses an RP2040 microcontroller, has 11 GPIO pins, a built in RGB NeoPixel LED, and a USB Type C connector, in the same size, form factor and pinout as the Seeed Xiao. There is 8MB of flash for CircuitPython and file storage. The built in STEMMA QT connector makes it super simple to use any of the available STEMMA QT sensors and breakouts with no soldering required.
This is a good choice if you want an easy way to interface to STEMMA QT / Qwiic connected sensors without a lot of expense.
The Adafruit Feather M4 Express is running the ATSAMD51 microcontroller. With some light soldering, this board enables you to use the many FeatherWings available, which provides a ton of possibilities without a lot of wiring necessary. It has 21 GPIO pins, a little red LED and an RGB NeoPixel LED. You can power it with and charge a lipoly battery.
A good choice if you want access to Feather ecosystem and its many FeatherWing add-on boards. The board is very powerful and runs CircuitPython very nicely.
The Adafruit Feather RP2040 uses the Raspberry Pi RP2040 microcontroller. With some light soldering, this board enables you to use the many FeatherWings available, which provides a ton of possibilities without a lot of wiring necessary. It has 21 GPIO pins, a little red LED and an RGB NeoPixel LED. You can power it with and charge a lipoly battery. It also has a STEMMA QT connector to ass many solderless plug in sensors and displays.
A good choice if you want access to Feather ecosystem and its many FeatherWing add-on boards. The board is very powerful and runs CircuitPython very nicely at a price point lower than the M4. It also has the STEMMA QT port useful for adding many types of sensors and displays without soldering.
The Adafruit Metro M4, featuring the ATSAMD51 microcontroller, is a development board in the Metro form factor. It boasts 25 GPIO pins, along with four indicator LEDs and an RGB NeoPixel LED. It can be powered via USB using the micro USB connector, or through the DC jack. The great thing about this board is that it's compatible with Arduino Shields, meaning there are a ton of possibilities available without a lot of wiring necessary.
This board can also be used with the examples from the Metro Experimenter's Guide.
A good choice if you want something in the classic Arduino UNO form factor for use with the many available Arduino shields. The board is very powerful and runs CircuitPython very nicely.
This kit does require some soldering to attach the header pins to the Itsy Bitsy M4. It also requires building up each circuit to use the various components. However, this does allow you to gain more experience by being more hands on with the hardware.
This a good choice if you are comfortable soldering and building circuits and want a more hands-on experience. The board is very powerful and runs CircuitPython very nicely.
Page last edited March 08, 2024
Text editor powered by tinymce.
WiFi Enabled
WiFi allows you to connect to your local network and access the Internet. This lets you do things like send/receive data to services like Adafruit IO. Or, you can grab some information from the Internet, like weather, sports scores, etc. and display it locally.
This page contains most of the WiFi enabled CircuitPython compatible boards and a bit about the features of each one. You know you want WiFi, now to figure out what other features will work best for you!
Provides native WiFi support via ESP32-S3 processor.
The Adafruit Metro ESP32-S3 brings native WiFi and Bluetooth to the Metro form factor. Unlike non-ESP Metro boards, this board can be powered by a LiPo battery, as well as USB C and a DC jack.
Since it's a single chip compared to the Metro Airlift, it is less expensive - a bit beefier than some because the dual processor handles both both running Python and managing WiFi. It's a great value with a good number of pins.
This is a good option if you want something general-purpose you can use with Arduino Shields and would like dual cores.
Provides native WiFi support via ESP32-S2 processor.
The Adafruit Metro ESP32-S2 brings native WiFi to the Metro form factor. Unlike other metro boards, this board can be powered by a LiPo battery, as well as USB C and a DC jack.
Since it's a single chip compared to the Metro Airlift, it is less expensive - but it isn't going to be as fast because the one processor has to handle both running Python and managing WiFi. It's a great value with a good number of pins. Unlike the ESP32-S3 and the older ESP32, the ESP32-S2 does not have Bluetooth.
This is a good option if you want something general purpose you can use with Arduino Shields. The ESP32-S3 is more recent than this ESP32-S2, has dual cores and additional recommended features.
Provides WiFi support using an ESP32 as a WiFi co-processor.
The Adafruit Metro M4 AirLift Lite combines the ATSAMD51 with an ESP32 WiFi co-processor in the Metro form factor. Easily add WiFi to projects using any compatible shields. The SAMD51 is powerful, the ESP32 is wireless - the combination of the two is what gives this fast board a solid chip for Python (M4) and offloading the Wireless work to a friend (ESP32). It won't be as cheap as an all-in-one but if you need a well documented processor, the SAMD M4 is very well supported by many languages and IDEs.
This is a good option if you want something general purpose you can use with Arduino Shields.
Provides WiFi support to an i.MX RT1160 processor using an ESP32 as a WiFi co-processor.
The Adafruit Metro M7 AirLift combines the NXP iMX RT1011 microcontroller with an ESP32 WiFi co-processor in the Metro form factor. Easily add WiFi to projects with expandability with compatible shields. The NXP iMX RT1011 is very fast, the ESP32 is wireless - the combination of the two is what gives this ultrafast board a solid chip for Python and offloading the wireless work to a friend (ESP32). It won't be as cheap as an all-in-one but if you need speed, the i.MX RT1011 is supported by many languages and IDEs.
This is a good option if you want something ultra fast you can use with Arduino Shields.
Provides native WiFi support using an ESP32-S3.
The ESP32-S3 provides WiFi and Bluetooth LE radios natively along with a dual core processor. 8MB Flash and 2MB SRAM provides lots of storage. It also has a STEMMA QT add-on connector.
It plugs directly into the back of any HUB-75 compatible display (all the ones we stock will work) from 16x32 up to 64x64, and adds three buttons, a STEMMA QT connector and a digital/analog 3-pin JST connector.
This is a good option if you want to easily display things on a RGB matrix, whether that something comes from the Internet or not, at a slight discount from the M4 version.
Provides WiFi support using an ESP32 as a WiFi co-processor. Adafruit suggests using the Matrix Portal S3 (above) over the Matrix Portal M4 due to better specifications at a slightly better price.
The Adafruit Matrix Portal is basically a Metro Airlift in a different shape. It combines an ATSAMD51 M4 main processor with an ESP32 WiFi co-processor and can be used to easily add WiFi to RGB LED matrices. It plugs directly into the back of any HUB-75 compatible display (all the ones we stock will work) from 16x32 up to 64x64, and adds three buttons, a STEMMA QT connector and a digital/analog 3-pin JST connector.
This is a good option if you want to easily display things on a RGB matrix, whether that something comes from the Internet or not. The Matrix Portal S3 is recommended by Adafruit over the Matrix Portal M4 due to better specifications at a slightly lower price.
Provides native WiFi support via ESP32-S2 processor.
The Adafruit MagTag 2.9" uses the ESP32-S2 wireless module and has a built-in 2.9" grayscale eInk display. It also has an accelerometer, four buttons, four RGB NeoPixel LEDs and a speaker. It's designed to be low power, so it can run off of a battery connected to the port on the back, for many weeks.
This is a good option if you want a low power option for displaying things from the Internet.
Provides WiFi support using an ESP32 as a WiFi co-processor.
The Adafruit PyPortal is a WiFi enabled board with a built in display. Like the Metro AirLift, it has two processors - a SAMD51 main processor + the ESP32 is a WiFi co-processor. It also comes with a 3.2″ 320 x 240 color TFT with resistive touch screen, a speaker, light sensor, temperature sensor, NeoPixel, microSD card slot, 8MB flash, plug-in ports for I2C and 2 analog/digital connectors. It has a lot of projects and is very very easy to get going to display data from the Internet.
This is a good option if you want to display something from the Internet on a TFT display especially if you want a touch screen (the Matrix Portal and MagTag do not have touch screen overlays).
Provides WiFi support using an ESP32 as a WiFi co-processor.
The Adafruit PyPortal Pynt has everything the PyPortal does but in a smaller package. The display is a 2.4″ diagonal 320 x 240 color TFT with resistive touch screen. It also includes a speaker, light sensor, temperature sensor, NeoPixel, microSD card slot, 8MB flash, plug-in ports for I2C and 2 analog/digital connectors.
This is a good option if you want to display something from the Internet on a TFT display with a touch screen
Provides WiFi support using an ESP32 as a WiFi co-processor.
The Adafruit PyPortal Titano is nearly the same as the PyPortal with a bigger display and no temperature sensor. The display is a higher resolution 3.5″ diagonal 320 x 480 color TFT with resistive touch screen. It also includes a speaker, light sensor, NeoPixel, microSD card slot, 8MB flash, plug-in ports for I2C and 2 analog/digital connectors.
This is a good option if you want to display something from the Internet on a TFT display with a higher resolution and touch screen.
The Feather ecosystem has both add-on boards (FeatherWings) with WiFi and Feather processors with WiFi capability, providing great flexibility.
The Espressif ESP32-S3 has native WiFi and Bluetooth capabilities, and dual processor cores. It is well supported by CircuitPython. Various Feather ESP32-S3 boards combine different quantities of PSRAM and Flash memory. They can also come with STEMMA QT add-on connectors and tiny OLED displays onboard.
ESP32-S2 Series
The Espressif ESP32-S2 has native WiFi capability, but it only has a single processor core and does not have Bluetooth. Various Feather ESP32-S2 boards combine different quantities of PSRAM and Flash memory. They can also come with STEMMA QT add-on connectors and tiny OLED displays onboard.
Easily interface to STEMMA QT / Qwiic sensors and breakouts. They are the same size, form factor and pinout as the Seeed Xiao.
The Espressif ESP32-S3 has native WiFi and Blueooth capabilities, and dual processor cores. It is well supported by CircuitPython.
The Espressif ESP32-S2 has native WiFi capability, but it only has a single processor core and does not have Bluetooth. It is well supported by CircuitPython.
The MEMENTO Camera is a development board with everything you need to create programmable camera and vision projects: with a camera module, TFT preview screen, buttons, microSD card slot and driven by a powerful ESP32-S3 with 2 MB of PSRAM for buffering 5 MegaPixel camera images. WiFi and Bluetooth LE capable.
Perfect for storage of images.
Drive larger displays with an ESP32-S3 that is WiFi capable.
The ESP32-S3 is the first low-cost microcontroller that has a built in peripheral that can drive TTL displays, and can come with enough PSRAM to buffer those large images. 16MB Flash and 8MB PSRAM. Resolutions include 480x272, 800x480, 800x600, 720x720 and 930x320 RGB-666 type displays. A Stemma QT I2C port helps with connectivity/expandability. The ESP32-S3 supports WiFi and Bluetooth.
Page last edited March 08, 2024
Text editor powered by tinymce.
Bluetooth Enabled
Bluetooth allows for short range wireless connectivity between other Bluetooth devices. You can even use your BLE enabled smart phone with the free BLE Connect App to connect and control your board.
This page contains nearly all of the Bluetooth enabled CircuitPython compatible boards and a bit about the features of each one. You know you want Bluetooth, now to figure out what other features will work best for you!
Provides BLE connectivity via the nRF52840 processor.
The Circuit Playground Bluefruit, running an nRF52840, is an all-in-one board designed to get you started with programming an electronics. It's loaded with all kinds of LEDs, sensors and inputs, including an accelerometer, light, temperature, and sound sensors, touch pads, buttons, switch, NeoPixel LEDs, speaker, and more. Additional capabilities can be added via the alligator clip friendly pads.
This is an excellent beginner choice that does not require any soldering. In addition to CircuitPython and Arduino, there is some MakeCode support as well.
Provides BLE connectivity via the nRF52840 processor.
The Adafruit Feather nRF52840 is a Bluetooth Low Energy enabled board in the Feather form-factor. This means you can add Bluetooth to any of the many FeatherWings available. You can power it with and charge a lipoly battery.
This is a good choice if you want BLE connectivity in the Feather form factor.
Provides BLE connectivity via the nRF52840 processor.
The Adafruit Feather nRF52840 Sense is a BLE enabled board packed with sensors including light/proximity/color, 9-DoF motion, sound, humidity, and pressure/temperature sensors. Since it's a Feather, you can add BLE and these sensors to any of the many FeatherWings available. You can power it with and charge a lipoly battery.
It's kind of like a CLUE but without the screen, buttons, buzzer or micro:bit connector. On the other hand, its a lot smaller and has lipoly charging built in.
This is a good choice if you want BLE connectivity in the Feather form factor - plus some built in sensors.
Provides BLE connectivity via the nRF52840 processor.
The Adafruit ItsyBitsy nRF52840 makes it easy to add Bluetooth to smaller projects or projects with smaller spaces. It includes special Vhigh output pin to give you the higher voltage from power, for driving NeoPixels, servos, and other 5V-logic devices directly.
This is a good choice if you want BLE connectivity in a small form factor.
Provides BLE connectivity via the nRF52840 processor.
The Adafruit CLUE is a Bluetooth Low Energy enabled board in the micro:bit form factor with a built-in 1.3″ 240×240 Color IPS TFT display. It includes two buttons, and light/proximity/color, 9-DoF motion, sound, humidity, and pressure/temperature sensors. There is a STEMMA QT connector to make it super simple to connect many other sensors and breakouts to your project with no soldering necessary.
It's perfect when you want all the sensors and a screen + two buttons built in. The micro:bit formfactor is excellent when you want to plug in various accessories
This is an excellent beginner choice that does not require any soldering, and has just about every sensor.
The ESP32-S3 provides WiFi and Bluetooth LE radios along with a dual core processor. Various ESP32-S3 boards combine different quantities of PSRAM and Flash memory. They can also come with STEMMA QT add-on connectors and tiny OLED displays onboard.
ESP32-S3 is a great choice if you would like a dual core processor along with a STEMMA QT expansion connector for sensors and displays. Feather has compatibility with many dozens of FeatherWing add-ons.
QT Py ESP32-S3 Boards
The Espressif ESP32-S3 has native WiFi capabilities and dual processor cores like the ESP32, while supporting both WiFi and Bluetooth. It is well supported by CircuitPython.
The smallest form factor Bluetooth boards which also have dual core processors.
The MEMENTO Camera is a development board with everything you need to create programmable camera and vision projects: with a camera module, TFT preview screen, buttons, microSD card slot and driven by a powerful ESP32-S3 with 2 MB of PSRAM for buffering 5 MegaPixel camera images. WiFi and Bluetooth LE capable.
Perfect for storage of images.
The ESP32-S3 provides WiFi and Bluetooth LE radios natively along with a dual core processor. 8MB Flash and 2MB SRAM provides lots of storage. It also has a STEMMA QT add-on connector.
This is a good option if you want to easily display things on a RGB matrix, whether that something comes from the Internet or not or want Bluetooth capability.
Qualia ESP32-S3 for TTL RGB-666 Displays
Drive larger displays with an ESP32-S3 that is WiFi and Bluetooth capable.
The ESP32-S3 is the first low-cost microcontroller that has a built in peripheral that can drive TTL displays, and can come with enough PSRAM to buffer those large images. 16MB Flash and 8MB PSRAM. Resolutions include 480x272, 800x480, 800x600, 720x720 and 930x320 RGB-666 type displays. A Stemma QT I2C port helps with connectivity/expandability. The ESP32-S3 supports WiFi and Bluetooth.
Page last edited March 08, 2024
Text editor powered by tinymce.
Built In Display
A display allows you to show all kinds of information from your project, including sensor data, directly on your microcontroller board. You can add external displays to other boards if you want, but boards with built-in displays provide ready-to-go options.
This page contains all of the CircuitPython compatible boards with a built-in display and a bit about the features of each one. You know you want a display, now to figure out what other features will work best for you!
Comes with a 2.9" grayscale E-Ink display.
The Adafruit MagTag 2.9" uses an ESP32-S2 wireless module and has a built-in 2.9" grayscale eInk display. It also has an accelerometer, four buttons, four RGB NeoPixel LEDs and a speaker. It's designed to be low power, so it can run off of a battery connected to the port on the back.
This is a good option if you want low power or just want eInk.
Comes with 3.2" 320 x 240 color TFT LCD display.
The Adafruit PyPortal is a WiFi enabled board with a built in display. It uses an ESP32 as a WiFi co-processor. It also comes with a 3.2″ 320 x 240 color TFT LCD with resistive touch screen, a speaker, light sensor, temperature sensor, NeoPixel, microSD card slot, 8MB flash, plug-in ports for I2C and 2 analog/digital connectors.
This is a good general purpose option with WiFi capability.
Comes with a 2.4" 320 x 240 color TFT LCD display.
The PyPortal Pynt has everything the PyPortal does, but in a smaller package. The display is a 2.4″ diagonal 320 x 240 color TFT LCD with resistive touch screen. It also includes a speaker, light sensor, temperature sensor, NeoPixel, microSD card slot, 8MB flash, plug-in ports for I2C and 2 analog/digital connectors.
This is a good general purpose option with WiFi capability.
Comes with a 3.5" 320 x 480 color TFT LCD display.
The Adafruit PyPortal Titano is nearly the same as the PyPortal with a bigger display and no temperature sensor. The display is a higher resolution 3.5″ diagonal 320 x 480 color TFT LCD with resistive touch screen. It also includes a speaker, light sensor, NeoPixel, microSD card slot, 8MB flash, plug-in ports for I2C and 2 analog/digital connectors.
This is a good general purpose option with WiFi capability.
Comes with a 1.8" 160 x 128 color TFT LCD display.
The Adafruit PyGamer is designed for open source game design, with a 1.8" 160x128 color TFT LCD display, analog thumbstick, 4 buttons, RGB NeoPixel LEDs, accelerometer, light sensor, stereo headphone jack, external speaker connector, STEMMA connectors, and lipoly battery connector. It also has FeatherWing-compatible headers on the back to enable easy use of the many FeatherWings available. The holes in the corners allow for connecting a lanyard to wear the PyGamer as a conference badge.
This is a good choice if you want to play with small game development.
Comes with a 1.8" 160 x 128 color TFT LCD display.
The Adafruit PyBadge is the size of a credit card and uses an ATSAMD51 microcontroller. It has a 1.8" 160x128 color TFT LCD display, 8 user-controllable buttons, accelerometer, RGB NeoPixel LEDs, light sensor, built in speaker and external speaker connector, STEMMA connectors, and lipoly battery connector. The PyBadge also has FeatherWing-compatible headers on the back to enable easy use of the many FeatherWings available. The holes in the corners allow for connecting a lanyard to wear the PyBadge as a conference badge.
This is a good choice if you want something you can wear like a badge.
Comes with a 1.8" 160 x 128 color TFT LCD display.
The Adafruit PyBadge LC is a PyBadge on a budget - it's the size of a credit card, uses an ATSAMD51 microcontroller, has a 1.8" 160x128 color TFT LCD display, 8 user-controllable buttons, an RGB NeoPixel LED, light sensor, built in speaker, and lipoly battery connector. The holes in the corners allow for connecting a lanyard to wear the PyBadge LC as a conference badge.
This is a good choice if you want something you can wear like a badge - on a budget.
Comes with a 1.8" 160 x 128 color TFT LCD display.
The Adafruit EdgeBadge does everything the PyBadge does, but includes a microphone for machine learning projects. It's the size of a credit card, uses an ATSAMD51 microcontroller, has a 1.8" 160x128 color TFT LCD display, 8 user-controllable buttons, accelerometer, RGB NeoPixel LEDs, light sensor, built in speaker and external speaker connector, STEMMA connectors, and lipoly battery connector. It also has FeatherWing-compatible headers on the back to enable easy use of the many FeatherWings available. The holes in the corners allow for connecting a lanyard to wear the PyBadge as a conference badge.
This is a good choice if you want something you can wear like a badge - and do machine learning.
Comes with a 1.3" 240 x 240 color IPS TFT LCD display.
The Adafruit CLUE is a Bluetooth Low Energy enabled board in the micro:bit form factor with a built-in 1.3″ 240×240 Color IPS TFT LCD display. It includes two buttons, and light/proximity/color, 9-DoF motion, sound, humidity, and pressure/temperature sensors. There is a STEMMA QT connector to make it super simple to connect many other sensors and breakouts to your project with no soldering necessary.
This is a good option beginner option with Bluetooth BLE capability.
Comes with a 1.54" 240 x 240 color IPS TFT LCD display.
The Adafruit Hallowing M4 Express runs an ATSAMD51 microcontroller, has 8 MB of SPI flash for storing animations, sounds, images, and so on, four side-lit RGB NeoPixel LEDs, four touch pads, an accelerometer, light sensor, speaker driver, JST ports for NeoPixels, servos, and I2C (Grove compatible), lipoly battery port with charging capability, on/off switch, female feather headers for use of the many FeatherWings available, and has a 1.54" sized 240x240 full color IPS TFT LCD. The display has 4x the pixels of the Hallowing M0 Express and is IPS for great color and brightness. This board is great for an adorable wearable, badge, development kit, or the engine for your next cosplay or prop.
This is a good choice if you want something you can use in costumes or props.
Comes with a 1.44" 128 x 128 color TFT LCD display.
The Adafruit Hallowing M0 Express runs an ATSAMD21 microcontroller, has 8 MB of SPI flash for storing animations, sounds, images, and so on, status RGB NeoPixel LEDs, four touch pads, an accelerometer, light sensor, speaker driver, JST ports for NeoPixels, servos, and I2C (Grove compatible), lipoly battery port with charging capability, on/off switch, female feather headers for use of the many FeatherWings available, and a 1.44" sized 128x128 full color TFT LCD display. This board is great for an adorable wearable, badge, development kit, or the engine for your next cosplay or prop.
This is a good choice if you want something you can use in costumes or props.
Comes with two (2) 1.54" 240 x 240 color IPS TFT LCD displays.
The Adafruit MONSTER M4SK runs an ATSAMD51 microcontroller, has 8 MB of SPI flash for storing animations, sounds, images, and so on, a touch pad nose, lipoly battery port with charging capability, stereo headphone jack, speaker driver, a 4-pin STEMMA JST connector for I2C (Grove compatible), two 3-pin STEMMA JST connectors with digital/analog/PWM for LEDs or servos, a 4-pin JST SH port for connecting an optional PDM microphone, three buttons, a light sensor, on/off switch, and two 240x240 pixel IPS TFT LCD displays. The displays can be separated with pliers/cutters and then wired together with a 9-pin JST SH cable up to 100mm long so the eyes can be re-positioned or freely attached.
This is a good choice if you really like animated eyes projects.
Feather Boards
The Feather ecosystem has both add-on boards (FeatherWings) with WiFi and Feather processors with WiFi capability, providing great flexibility.
Feather ESP32-S3 Series
The ESP32-S3 provides WiFi and Bluetooth LE radios along with a dual core processor. Various ESP32-S3 boards combine different quantities of PSRAM and Flash memory. They also come with STEMMA QT add-on connectors and tiny OLED displays onboard on the front or back.
The ESP32-S3 boards are recommended by Adafruit over the ESP32-S2 boards below, having dual cores and additional features.
ESP32-S2 Series
The ESP32-S3 provides a WiFi radio along with a single core processor. Various ESP32-S2 boards combine different quantities of PSRAM and Flash memory. They also come with STEMMA QT add-on connectors and tiny OLED displays onboard either the front or back.
The ESP32-S3 is more recent than these ESP32-S2s, have dual cores and additional recommended features.
The MEMENTO Camera is a development board with everything you need to create programmable camera and vision projects: with a camera module, TFT preview screen, buttons, microSD card slot and driven by a powerful ESP32-S3 with 2 MB of PSRAM for buffering 5 MegaPixel camera images. WiFi and Bluetooth LE capable. 1.54: 240x240 display.
Perfect for storage of captured images.
Page last edited March 08, 2024
Text editor powered by tinymce.
Tiny Boards
Sometimes projects call for a wee small microcontroller board. These products are cost effective solutions when you just want to do a few things, like read a few buttons and drive some NeoPixels, or in using them for wearable projects.
This page contains all of the diminutive CircuitPython compatible boards and a bit about the features of each one. You know you want a tiny board, now to figure out what other features will work best for you!
Easily interface to STEMMA QT / Qwiic sensors and breakouts. They are the same size, form factor and pinout as the Seeed Xiao.
There are a number of QT Py boards with different processors to suit your project.
The Adafruit QT Py uses an ATSAMD21 microcontroller, has 11 GPIO pins, a built in RGB NeoPixel LED, and a USB Type C connector. The QT Py SAMD21 has limited RAM, but it's fine for small projects. It also has no external flash, but there is an optional SOIC-8 SPI Flash chip footprint on the bottom.
The Adafruit QT Py RP2040 uses a Raspberry Pi RP2040 microcontroller. It has 11 GPIO pins, a built in RGB NeoPixel LED, and a USB Type C connector.
The Espressif ESP32-S3 has native WiFi capabilities and dual processor cores like the ESP32, while supporting both WiFi and Bluetooth. It is well supported by CircuitPython.
The ESP32-S3 is more recent than this ESP32-S2, has dual cores and additional features.
ESP32-S2
The Espressif ESP32-S2 has native WiFi capabilities like the ESP32, but it only has a single processor core and does not have Bluetooth. However, it does have native USB support, and thus is the first all-in-one WiFi chip with CircuitPython support.
QT Py is a good choice if you want an easy way to interface to STEMMA QT / Qwiic connected sensors in the smallest board size. Adafruit recommends the ESP32-S3 products over the ESP32-S2 boards due to ESP32-S3 having dual cores and additional features.
A nice step up from the Trinket M0 with tons more GPIO pins.
The Adafruit ItsyBitsy RP2040 combines the small ItsyBitsy form factor with the powerful Raspberry Pi RP2040 microcontroller, all for a low price. It has 8MB SPI Flash memory for lots of storage along with 23 GPIO pins.
An powerful dual core processor with lots of storage, CircuitPython and Arduino capabile at a low price point.
The Adafruit ItsyBitsy M0 Express uses an ATSAMD21 microprocessor. It has 2 MB of SPI flash, a little red LED, a RGB DotStar LED, and 23 GPIO pins. It includes special Vhigh output pin to give you the higher voltage for driving NeoPixels, servos, and other 5V-logic devices directly.
This is an excellent choice for getting started with soldering and breadboarding.
The ItsyBitsy M0's big sister.
The Adafruit ItsyBitsy M4 Express uses a more powerful ATSAMD51 microprocessor. It has 2 MB of SPI flash, a little red LED, a RGB DotStar LED, and 23 GPIO pins. It includes special Vhigh output pin to give you the higher voltage for driving NeoPixels, servos, and other 5V-logic devices directly.
This is an excellent choice for getting started with soldering and breadboarding.
The ItsyBitsy M0 and M4's cool cousin with Bluetooth.
The Adafruit ItsyBitsy nRF52840 makes it easy to add Bluetooth to smaller projects or projects with smaller spaces. It includes special Vhigh output pin to give you the higher voltage for driving NeoPixels, servos, and other 5V-logic devices directly.
This is an excellent choice for getting started with soldering and breadboarding - with bonus Bluetooth capability.
The ESP32 boards come with either an integrated antenna or an external antenna connector. They both have a dual-core processor and 8MB Flash and 2MB PSRAM along with STEMMA QT I2C expansion connectors. The USB connector is NOT native USB so it cannot act as a USB keyboard.
Best used with Arduino, CircuitPython use would be for advanced users only.
Adafruit KB2040 - RP2040 Kee Boar Driver
The power of the Raspberry Pi RP2040 microcontroller in an Arduino Pro Micro form factor for super-duper keyboard processing and more.
While the Arduino Pro Micro became a popular keyboard controller due to native USB, the processor is older than the current generation of chips. The KB2040 is a drop-in replacement which has a super fast dual-core processor with a juicy 8MB of Flash memory for using with many types of firmware including KMK based on CircuitPython. Bring your project into the current decade!
Planning a keyboard project or like the form factor, this is the board you want to look at.
A very minimalist board with only 5 GPIOs.
The Adafruit Trinket M0 runs the ATSAMD21 microprocessor, has 5 GPIO pins, a little red LED and an RGB DotStar LED. This is a low cost option when you're looking to get started, or want to put together a project on a budget. It is pin compatible with the earlier (non-M0) Trinket, and a lot of projects can be upgraded with this board
This is a choice if you want the most minimal option.
Think of this as a wearable version of the Trinket M0.
Looking to add NeoPixels to your wearables or cosplay outfits? This board is the easiest way to do so.
The Adafruit GEMMA M0 run the ATSAMD21 microcontroller, an on/off switch, and a RGB DotStar LED. It has three input/output big-hole sew-pads that can be used for conductive thread, or alligator clips for fast prototyping. It can be powered via USB or through the JST battery connector (though it doesn't have charging capability).
It is pin compatible with the earlier (non-M0) Gemma, and a lot of projects can be upgraded with this board
This is a choice if you want the most minimal wearable option.
Page last edited March 08, 2024
Text editor powered by tinymce.
SD Card Capable
A microSD card can add a significant amount of storage to your project for data logging, or for things like images, animations, MP3s, BMP/JPG, WAV files and more.
This page includes all of the CircuitPython capable boards with an onboard microSD card capability and a bit about the features of each one. You know you need increased storage, now to figure out what other features will work for you!
Note that nearly any CircuitPython compatible board may be wired up to an external MicroSD card breakout board.
A beast of a board, with tons of GPIO.
The Adafruit Grand Central M4 Express uses an ATSAMD51 microcontroller. It has 8 MB of SPI flash, 62 GPIO pins, an on/off switch, a little red LED, two RX/TX LEDs for data being sent over USB, and an RGB NeoPixel LED. This board can be powered via USB or via a DC jack. The built in microSD Card slot is connected to a SPI SERCOM (SDIO is not supported).
This is a good option if you want access to everything including the kitchen sink.
The Adafruit Metro ESP32-S3 brings native WiFi and Bluetooth to the Metro form factor. Unlike non-ESP Metro boards, this board can be powered by a LiPo battery, as well as USB C and a DC jack.
Since it's a single chip compared to the Metro Airlift, it is less expensive - a bit beefier than some because the dual processor handles both both running Python and managing WiFi. It's a great value with a good number of pins.
This is a good option if you want something general purpose you can use with Arduino Shields and would like dual core and Bluetooth capability.
A Feather main board that also has an SD card slot.
The Adafruit Feather STM32F405 Express uses a STM32F405 microcontroller. It has 2MB of SPI flash, a USB type C connector for data and power, a JST connector for a lipoly battery with charging capabilities, one STEMMA QT connector for use with many other sensors and breakouts with no soldering required, an RGB NeoPixel LED, and works with the many FeatherWings available. The built in microSD Card slot on the bottom of the board is connected to SDIO for potentially faster card read capability.
This is a good option if you want the SD card as part of a Feather main board-based project.
The Adafruit Feather M0 Adalogger uses a Arm Cortex M0+ microcontroller. It has 256kB of SPI flash, a USB type micro-B connector for data and power, a JST connector for a lipoly battery with charging capabilities, an LED, and works with the many FeatherWings available. The built in microSD Card slot on the end of the board is connected to SPI.
This is a good option if you want the SD card as part of a Feather main board-based project at a lower cost trade-off for more limited capability.
Add SD card capability to a Feather main board.
The Adafruit Adalogger FeatherWing makes it super simple to add a microSD card to any CircuitPython compatible Feather board (Note: this is an add-on card that must be connected/plugged onto another card which contains a microcontroller). Solder on headers and plug it directly into any Feather. The microSD card slot uses SPI (it is not SDIO fast access capable). It also includes an I2C real time clock and coin cell battery slot for using the RTC battery-backup capabilities.
This is a good option if you want to add SD card capability to a Feather main board.
The Adafruit Adalogger PiCowbell makes it super simple to add a microSD card to any CircuitPython compatible Raspberry Pi Pico / Pico W form factor board (Note: this is an add-on card that must be connected/plugged onto another card which contains a microcontroller). Solder on headers and plug it directly into a Pico. The microSD card slot uses SPI (it is not SDIO fast access capable). It also includes an I2C real time clock and coin cell battery slot for using the RTC battery-backup capabilities.
This is a good option if you want to add SD card capability to a Raspberry Pi Pico main board.
An Internet connected display plus SD card capability!
The Adafruit PyPortal is a WiFi enabled board with a built in display. It uses the ESP32 is a WiFi co-processor. It also comes with a 3.2″ 320 x 240 color TFT LCD with a resistive touch screen, a speaker, light sensor, temperature sensor, NeoPixel, microSD card slot, 8MB flash, plug-in ports for I2C and 2 analog/digital connectors.
This is a good choice if you want to show many image files or store lots of data from the Internet.
An Internet connected display plus SD card capability!
The Adafruit PyPortal Pynt has everything the PyPortal does but in a smaller package. The display is a 2.4″ diagonal 320 x 240 color TFT with resistive touch screen. It also includes a speaker, light sensor, temperature sensor, NeoPixel, microSD card slot, 8MB flash, plug-in ports for I2C and 2 analog/digital connectors.
This is a good choice if you want to show many image files or store lots of data from the Internet.
An Internet connected display plus SD card capability!
The Adafruit PyPortal Titano is nearly the same as the PyPortal with a bigger display and no temperature sensor. The display is a higher resolution 3.5″ diagonal 320 x 480 color TFT LCD with a resistive touch screen. It also includes a speaker, light sensor, NeoPixel, microSD card slot, 8MB flash, plug-in ports for I2C and 2 analog/digital connectors.
This is a good choice if you want to show many image files or store lots of data from the Internet.
A hackable camera powered by an ESP32-S3.
The MEMENTO Camera is a development board with everything you need to create programmable camera and vision projects: with a camera module, TFT preview screen, buttons, microSD card slot and driven by a powerful ESP32-S3 with 2 MB of PSRAM for buffering 5 MegaPixel camera images. WiFi and Bluetooth LE capable.
Perfect for storage of images.
Page last edited March 08, 2024
Text editor powered by tinymce.
Chipsets
There are many CircuitPython compatible microcontroller boards, with several different processor chips. Each microcontroller has different qualities that make it good for different types of situations. This page discusses the different microcontrollers to help you understand the differences, and why you might choose one over another.
Raspberry Pi RP2040 Microcontroller
The Raspberry Pi RP2040 chip has a fast dual-core processor and contains "PIO processors" which provide very fast execution of a limited programmable instruction set. There is no native WiFi or Bluetooth (boards can have modules added for that) but it does have native USB.
- SPEED: 125 MHz
- FLASH: External 2 to 8 mB
- RAM: 264 kB
- BLE: NO
- WIFI: NO
- CORES: 2 Arm Cortex M0+
The RP2040 provides a fast dual core processor at a low price point. It has been incorporated into many development boards and is well supported by CircuitPython due to a large amount of RAM. It is an excellent choice at present for a wide range of projects.
A low cost, high processing capable processor widely supported in modern software.
ATSAMD21 M0
The Microchip ATSAMD21 Cortex M0 is the only Cortex M0+ based chip that CircuitPython supports. It does not have native Bluetooth or WiFi.
- SPEED: 48 MHz
- FLASH: 32 to 256 kB
- RAM: 4 to 32 kB
- BLE: NO
- WIFI: NO
- CORES: 1 Arm Cortex M0+
The SAMD21 can run CircuitPython, but it has limitations. It is clocked at 48MHz and has no built in floating point functionality, meaning it generally runs slower. There are memory limitations - it caps out at 256KB of flash and 32KB of RAM. Flash is important for multiple reasons, including determining the number of built-in CircuitPython modules supportable in builds for SAMD21 boards. If the board doesn't have a separate SPI flash chip, as in the case of the non-Express boards (e.g. Trinket, Gemma, QT Py, etc.), the flash limitations become even more critical. Flash space impacts how complex your code can be and how many libraries you can import, which determines things like how many sensors you can use at the same time.
The benefit is that it's small and lower cost than many of the other microcontrollers mentioned on this page. The slower clock speed and limited RAM make it suitable for only basic CircuitPython workloads like NeoPixels.
ATSAMD51 M4
The Microchip ATSAMD51 Cortex M4 microcontroller is powerful. It does not have native Bluetooth or WiFi.
- SPEED: 120 MHz
- FLASH: 256 to 1024 kB
- RAM: 128 to 256 kB
- BLE: NO
- WIFI: NO
- CORES: 1 Arm Cortex M4
The Cortex M4 means it can do faster floating point math, so all division will be faster. It generally executes faster than the SAMD21, as the SAMD51 is clocked at 120mhz by default. It's a good option in that it has a lot more RAM - up to 256KB RAM - which means you can do more things all at once in your code. Most of the SAMD51 chips have more built in flash as well, meaning less limitations on the built-in CircuitPython modules.
It's a great all around chip, as long as you're not looking for WiFi or Bluetooth connectivity.
nRF52840
The Nordic Semiconductor nRF52840 is not as fast as the ATSAMD51, but it does have native Bluetooth capabilities.
- SPEED: 64 MHz
- FLASH: 1024 kB
- RAM: 256 kB
- BLE: YES
- WIFI: NO
- CORES: 1 Arm Cortex M4
An nRF52840 like a SAMD51, is also a Cortex M4 based chip, so it's faster than the SAMD21. However, it's clocked slower than SAMD51, and therefore the nRF52840 is not as speedy as SAMD51. It has 1MB of flash, and 256KB of RAM. It is important to note that both the flash and the RAM are shared with the Bluetooth code - those numbers are the built in flash and RAM, so, the amount available to the user is less because it is sharing with Bluetooth stack. The chip does not do WiFi.
The important feature of this chip is the native Bluetooth capabilities - if you want Bluetooth in CircuitPython, this chip is the way to go.
STM32F405
The ST Microelectronics STM32F405 is an all-around faster microcontroller than many of the other microcontrollers covered here.
- SPEED: 168 MHz
- FLASH: 1024 kB
- RAM: 192 kB
- BLE: NO
- WIFI: NO
- CORES: 1 Arm Cortex M4, Crypto Coprocessor
The STM32F405 is also a Cortex M4 based chip. It does not support native WiFi or Bluetooth. The Adafruit STM32F405 boards do not currently ship with a UF2 bootloader, so installing and updating CircuitPython requires more steps than simply dragging and dropping a UF2 file onto a BOOT drive. Note that only 128kB of RAM is available in CircuitPython. It's easier and cheaper to connect a debugger to this board than an ATSAMD board, it can be programmed without an external programmer using DFU, and it is very difficult to brick (render inoperable). However, it isn't as well supported in Arduino.
This microcontroller is great for more advanced folks looking to take extra steps with their project or learning process.
The ESP32 Family of Chips
There are a number of Espressif ESP32 chips currently on the market. They have differing specifications and CircuitPython support.
ESP32 Microcontroller
The Espressif ESP32 (no suffix) has both Bluetooth and WiFi capabilities, but does not run CircuitPython natively. Instead, CircuitPython boards use the ESP32 as a co-processor for WiFi and Bluetooth capabilities. Note that it cannot do WiFi and Bluetooth at the same time.
- SPEED: 240 MHz
- FLASH: External 2 to 8 MB
- PSRAM: 2 MB
- BLE: YES
- WIFI: YES
- CORES: 2 Tensilica Xtensa processor
The ESP32 is not directly supported by CircuitPython because it does not have native USB connectivity.
ESP32-S2 Microcontroller
The Espressif ESP32-S2 has native WiFi capabilities like the ESP32, but it only has a single processor core and does not have Bluetooth. However, it does have native USB support, and thus is the first all-in-one WiFi chip with CircuitPython support
- SPEED: 240 MHz
- FLASH: External 2 to 8 MB
- PSRAM: 2 to 8 MB
- BLE: NO
- WIFI: YES
- CORES: 1 Tensilica Xtensa processor
The ESP32-S2 typically has 4MB of external flash, but only 1MB is available to the user. The way it works is that the flash space is shared between the native CircuitPython core code and the user filesystem. In this way, it is unlike the SAMD21 Express and SAMD51 Express boards, where CircuitPython lives on the chip and the code is separate.
The ESP32-S2 WROVER module has 2MB of external RAM, all of which is allocated to CircuitPython, which means it has more CircuitPython-dedicated RAM than any of the other microprocessors. There are ESP32-S2 modules that do not have the external RAM chip, and in the case of those, memory when using CircuitPython will be limited. It is a relatively low-cost option as well.
The ESP32-S2 is a great choice for budget-minded projects where heavy processing and Bluetooth are not required. The CircuitPython port is extremely stable.
ESP32-S3 Microcontroller
The Espressif ESP32-S3 has native WiFi capabilities and dual processor cores like the ESP32, while supporting both WiFi and Bluetooth. It is well supported by CircuitPython.
- SPEED: 240 MHz
- FLASH: External 2 to 8 MB
- PSRAM: 2 to 8 MB
- BLE: YES (see note)
- WIFI: YES
- CORES: 2 Tensilica Xtensa processor
The ESP32-S3 can come with various amounts of external flash and PSRAM. If you have a need for processing large amounts of data in-memory, this can be helpful.
The ESP32-S3 is a more powerful processor with WiFi and Bluetooth, making it quite capable with CircuitPython.
The ESP32-C3 is based on a single core RISC-V processor. The chip supports WiFi and Bluetooth (but not both simultaneously) but it doesn't have native USB, so is a poor choice for CircuitPython. MicroPython may be run on the chipset as well as Arduino.
- SPEED: 160 MHz
- FLASH: External 2 to 8 MB
- PSRAM: 2 to 8 MB
- BLE: YES
- WIFI: YES
- CORES: 1 RISC-V
The ESP32-C3 is not a CircuitPython processor and one should look at the S series of chips.
ESP32-C6 Microcontroller
The ESP32-C6 integrates Wi-Fi, Bluetooth LE, Zigbee and Thread functions. It contains a high performance 32-bit RISC-V processor and a low power 32-bit RISC-V processor. CircuitPython compatible but there are no current libraries for the Zigbee and Thread communications. This is new for 2024 so stay tuned for further information.
- SPEED: 160 MHz
- FLASH: External 2 to 8 MB
- PSRAM: 2 to 8 MB
- BLE: YES
- WIFI: YES
- CORES: 1 High Power RISC-V + 1 Low Power RISC-V
The ESP32-C6 chip has exciting features but the CircuitPython support is not fully developed at the moment.
i.MX RT Microcontrollers
The NXP i.MX RT family of chips are fast! The minimum clock speed you'll see is around 500MHz. They're a Cortex M7 based microcontroller family, which means they're more efficient at code execution than an M4 as well.
i.MX RT1011:
- SPEED: 500 MHz
- FLASH: External 2 to 8 MB
- SRAM: 128 kB
- BLE: NO
- WIFI: NO
- CORES: 1 Arm Cortex M7
In terms of flash, there is always an external flash chip that is shared between the native CircuitPython code and the user filesystem. In most cases, you'll have more RAM than a SAMD51, but not in all cases, for this chip line. The low end of the line will have less RAM than the SAMD51, but the code will run faster. It also has native high speed USB connectivity.
The i.MX RT processors provide advanced processing capability for applications.
Raspberry Pi Single Board Computers (SBC)
The Raspberry Pi typically runs CircuitPython libraries using the Blinka CircuitPython library compatibility layer with regular Python (called CPython). This means it's compatible with your current CircuitPython code, with no changes needed.
Raspberry Pi SBCs have many megabytes of memory, some up to 8 gigabytes and can use fast flash storage. Definite muscle for the biggest of tasks in a small space.
There is an experimental build of CircuitPython that runs "bare metal", re. on Raspberry Pi without Linux, but it may have missing features or possibly bugs.
SBCs are not low power or battery-friendly, as the boards are running a full Linux operating system. But, because they run CPython, you can also use all of the normal Python libraries along side, such as numpy, etc. that are not in CircuitPython.
Page last edited March 08, 2024
Text editor powered by tinymce.