All of our Feathers support Arduino and C/C++ using a gcc toolchain. But not everyone wants to write C/C++ code. Thanks to the bigger and faster chips available, it is now possible to run a full python interpreter directly in the microcontroller itself!

*mind blown*

The original version of this embedded Python is called MicroPython, written a feat of magic by Damien George. Please help support him by purchasing from his shop! We also stock MicroPython boards, books and badges in the Adafruit shop all of which directly help Damien's efforts.

CircuitPython is a variant of MicroPython which is designed specifically for beginners, and use the chipsets on Adafruit boards, like the SAMD21 and SAMD51. They are 98% the same and use the same interpreter core, just some of the helper libraries vary in naming.

Feathers designed for CircuitPython

Adafruit Feather M0 Express - Designed for CircuitPython

We love all our Feathers equally, but this Feather is very special. It's our first Feather that is specifically designed for use with CircuitPython!...

Adafruit Feather M4 Express - Featuring ATSAMD51

It's what you've been waiting for, the Feather M4 Express featuring ATSAMD51. This Feather is fast like a swift, smart like an owl, strong like a ox-bird (it's half ox,...

The Feather M0 Express and M4 express are the first in a line of products specifically designed for CircuitPython. The SAMD21 and SAMD51 microcontrollers are inexpensive while still being full featured with native USB, multi serial (I2C and SPI) engines called SERCOMs and a 10 bit DAC. Its 256k on board flash is supplemented with an external flash chip that gives a huge two megabytes for your code and all of our CircuitPython libraries. The status NeoPixel gives you information on the state of CircuitPython even when its unplugged from a computer. Its perfect for rapid prototyping of sensor driven projects.

Available in CircuitPython as feather_m0_express and feather_m4_express.


  • UF2 bootloader for easy drag and drop flashing
  • 2MB SPI Flash for storing all your code, libraries and data files
  • Status NeoPixel for debugging in a pinch
  • Built-in USB support enabling CIRCUITPY drive, USB HID (mouse and keyboard) and easy serial


  • No built in radio
  • Not compatible with MicroPython, only CircuitPython
  • M0: CircuitPython interpreter uses half the 32KiB RAM — only 16KiB for the user

CircuitPython-Compatible Feathers

These Feathers weren't designed for CircuitPython, but they work just fine!

The Huzzah does not have native USB so you don't get the nice "USB drive with source code on it". The non-Express M0's don't have a 2MB SPI Flash so the USB drive you get is quite small, and gets wiped if you update the firmware.

So if you really want to have an easy CircuitPython experience, we suggest the M0 Express, above!

Adafruit Feather HUZZAH with ESP8266 - Loose Headers

Feather is the new development board from Adafruit, and like its namesake it is thin, light, and lets you fly! We designed Feather to be a new standard for portable microcontroller...

The Feather HUZZAH was the first Adafruit board to gain official MicroPython support under the second kickstarter. Its also supported by CircuitPython that enables the standard hardware APIs that all of our drivers are built upon.

Its 80mhz processor and 96 KiB of RAM provides plenty of zip for digital sensor reading and basic networking including a Python interface over Wifi called the WebREPL.

However, its peripherals aren't as nice as the SAMD21. The lack of built in USB means you'll need to share the serial connection between the program output and uploading new code via a toll like AMPY. The analog peripherals are limited to a one channel ADC and no DAC.

Available in CircuitPython as feather_huzzah.



  • No built-in USB support
  • Requires driver for serial
  • No drag and drop bootloader or file editing

Adafruit Feather M0 Basic Proto - ATSAMD21 Cortex M0

Feather is the new development board from Adafruit, and like its namesake it is thin, light, and lets you fly! We designed Feather to be a new standard for portable microcontroller...

Adafruit Feather M0 Adalogger

Feather is the new development board from Adafruit, and like its namesake it is thin, light, and lets you fly! We designed Feather to be a new standard for portable microcontroller...

Prior to CircuitPython, the SAMD21 M0 microcontroller wasn't supported by MicroPython. However, it was supported by Arduino and that lead to a wide variety of M0 based feathers. Now, all of these can run CircuitPython but are more limited in the functionality available. They run the same speed as the Feather M0 Express but are missing the extra space for code on the SPI flash which also means that there is less room internally for functionality in the CircuitPython core.

So, if you already have one and want to try CircuitPython, then you can! They can do smaller code tasks just fine. Just beware that it won't be quite as easy as the Feather M0 Express.

Also note that the extra functionality on these boards, such as the SD card, radios and Bluetooth modules, is not yet supported in CircuitPython. Some of them will require additional core CircuitPython work while others will only require a new library or two.

Available in CircuitPython under boards feather_m0_adalogger and feather_m0_basic for all others.


  • Additional functionality on-board
  • Built in USB support for CircuitPython drive
  • If you already have one, you can try CircuitPython


  • Very small file storage 64KiB max
  • No UF2 bootloader
  • No CircuitPython libraries for extra functionality
  • CircuitPython version is reduced functionality to share flash with file storage
This guide was first published on May 14, 2017. It was last updated on Oct 15, 2018. This page (CircuitPython) was last updated on Jul 28, 2018.