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!
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. They are 98% the same and use the same interpreter core, just some of the helper libraries vary in naming.
The Feather M0 Express is the first in a line of products specifically designed for CircuitPython. The SAMD21 microcontroller is 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
- 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
- CircuitPython interpreter uses half the 32KiB RAM — only 16KiB for the user
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!
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
- Built in Wifi
- Fast 80mhz processor
- 96 KiB data RAM, 36 KiB for the user
- Supported by MicroPython and CircuitPython
- No built-in USB support
- Requires driver for serial
- No drag and drop bootloader or file editing
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_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