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:
- Adafruit Feather M0 Basic Proto
- Arduino Zero (or the discontinued Arduino M0 Pro)
- Adafruit Feather M0 Adalogger
- Adafruit Feather M0 Bluefruit LE (note the Bluetooth radio isn't yet supported by MicroPython)
- Adafruit Feather M0 WiFi (note the WiFi radio isn't yet supported by MicroPython)
- Adafruit Feather M0 RFM69HCW Packet Radio (note the radio isn't yet supported by MicroPython)
- Adafruit Feather M0 RFM95 LoRa Radio (note the radio isn't yet supported by MicroPython)
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):