CircuitPython is a derivative of MicroPython designed to simplify experimentation and education on low-cost microcontrollers. It makes it easier than ever to get prototyping by requiring no upfront desktop software downloads. Simply download CircuitPython and drag it onto the drive that appears (only available on Express boards currently). Once installed, simply copy and edit files on the drive to iterate.
The latest builds of CircuitPython are available from the GitHub release page. Binaries for different boards are listed under the Downloads section. Pick the one that matches your board such as
adafruit-circuitpython-feather_m0_express-0.9.3.bin for the Feather M0 Express or
adafruit-circuitpython-metro_m0_express-0.9.3.bin for the Metro M0 Express.
Files that end with
.bin can be flashed with
bossac. Files ending in
.uf2 can be flashed onto a virtual drive when in bootloader mode.
You will see a list of all available flavors of CircuitPython. Since we support a lot of different hardware, we have a long list of available downloads!
See below for which file to download!
Flashing is the process of updating the CircuitPython core. It isn't needed for updating your own code. There are two available methods: UF2 and bossac UF2 flashing is only available on Express boards, they have a UF2-capable beta bootloader. Flashing via bossac is possible with both the Express bootloader and the original "Arduino" one. We recommend using UF2 if you can. If UF2 fails, or is not available, try bossac.
Regardless of what method you use, you must first get the board into the bootloader mode. This is done by double clicking the reset button. The board is in bootloader mode when the red led fades in and out. Boards with the status neopixel will also show USB status while the red led fades. Green means USB worked while red means the board couldn't talk to the computer. The first step to troubleshooting a red neopixel is trying a different USB cable to make sure its not a charge-only cable.
Adafruit Express boards come with a new beta bootloader called UF2 that makes flashing CircuitPython even easier than before. This beta bootloader allows you to drag so-called ".uf2" type files onto the BOOT drive. For more information, check out our UF2 bootloader page.
Start by double-clicking the reset button while it is plugged into your computer. You should see a new disk drive 'pop up' called METROBOOT or FEATHERBOOT or similar, and the NeoPixel on your board glow green.
The drive will contain a few files. If you want to make a 'backup' of the current firmware on the device, drag-off and save the CURRENT.UF2 file. Other than that, you can ignore the index.htm and info_uf2.txt files. They cannot be deleted and are only for informational purposes.
Next up, find the Feather M0 Express UF2 or Metro M0 Express UF2 file in the github downloads list:
Click to download and save the file onto your Desktop or somewhere else you can find it
Then drag the uf2 file into the BOOT drive
Once the full file has been received, the board will automatically restart into CircuitPython. Your computer may warn about ejecting the drive early, if it does, simply ignore it because the board made sure the file was received ok.
This method is only recommended if you can't use UF2 for some reason!
To flash with
bossac (BOSSA's command line tool) first download the latest version from here. The
mingw32 version is for Windows,
apple-darwin for Mac OSX and various
linux options for Linux. Once downloaded, extract the files from the zip and open the command line to the directory with
bossac -e -w -v -R ~/Downloads/adafruit-circuitpython-feather_m0_express-0.9.3.bin
erase the chip,
write the given file,
verify the write and
Reset the board. After reset, CircuitPython should be running. Express boards may cause a warning of an early eject of a USB drive but just ignore it. Nothing important was being written to the drive.