This guide is no longer up to date - please check out https://learn.adafruit.com/welcome-to-circuitpython for the introduction guide to CircuitPython on ATSAMD21 boards (and more!)

MicroPython is a fantastic environment for controlling hardware with the Python programming language.  Beginners can benefit from MicroPython's simple syntax and interactive REPL, while advanced users can explore mixing Python code with low-level hardware access.  There are a few boards which support MicroPython today, such as the powerful pyboard or the WiFi-capable ESP8266.  Now there's a new set of boards which can support MicroPython, Adafruit's Feather M0 and Arduino Zero boards which use the SAMD21 microprocessor!

Adafruit's SAMD21 MicroPython port (now called CircuitPython) is a brand new port of MicroPython to the Atmel SAMD21 microprocessor.  This processor is a 32-bit ARM Cortex-M0+ chip which means it's quite a bit more powerful than typical Arduino boards like the Uno or Leonardo.  There's more RAM (32kb), flash memory (256kb), and processing power (48mhz) which enable these SAMD21 boards to run MicroPython.  MicroPython on the SAMD21 has many of the same features as other boards, like an interactive USB serial REPL, USB mass storage for manipulating files, and all of the core MicroPython language support.

Be aware the SAMD21 MicroPython port is still in development!  It is currently in an early 'preview' or beta state for advanced users to kick the tires and explore MicroPython on Feather M0 and similar boards.  Not all MicroPython modules are implemented yet, and there very likely will be bugs and other issues.  Check out the quick start guide page to see what modules are currently supported by the port.

If you do run into bugs or issues with the port be sure to raise them on the GitHub repository (please search first to see if the issue is already known!).  Pull requests and changes are appreciated too, but be sure to read the contributing and code of conduct first.

To follow this guide you will need an Atmel SAMD21-based board like one of the following:

If you aren't sure what to try, the Feather M0 Basic Proto is a great starting option.

You will also want to be familiar with MicroPython by reading the following guides (and other MicroPython guides in the learning system):

This guide was first published on Oct 17, 2016. It was last updated on Mar 08, 2024.

This page (Overview) was last updated on Mar 08, 2024.

Text editor powered by tinymce.