Feather M0 Basic
Feather is thin, light, and lets you fly! Adafruit designed Feather to be a new open standard for portable microcontroller cores.
This is the Feather M0 Basic Proto, it has a bunch of prototyping space built right in. There are other boards in the Feather family as well.
At the Feather M0’s heart is an ATSAMD21G18 ARM Cortex M0 processor, clocked at 48 MHz and at 3.3V logic, the same one used in the new Arduino Zero. This chip has a whopping 256K of FLASH (8x more than the Atmega328 or 32u4) and 32K of RAM (16x as much)! This chip comes with built in USB so it has USB-to-Serial program & debug capability built in with no need for an FTDI-like chip.
To make it easy to use for portable projects, there is a connector for 3.7V Lithium polymer batteries and built in battery charging. You don’t need a battery, it will run just fine straight from the micro USB connector. But, if you do have a battery, you can take it on the go, then plug in the USB to recharge. The Feather will automatically switch over to USB power when it is available. The battery is tied thru a divider to an analog pin, so you can measure and monitor the battery voltage to detect when you need a recharge.
Here are some handy specs!
- Measures 2.0” x 0.9” x 0.28” (51mm x 23mm x 8mm) without headers soldered in
- Light as a (large?) feather - 4.6 grams
- ATSAMD21G18 @ 48MHz with 3.3V logic/power
- 256KB of FLASH + 32KB of RAM
- No EEPROM
- 32.768 KHz crystal for clock generation & RTC
- 3.3V regulator with 500mA peak current output
- USB native support, comes with USB bootloader and serial port debugging
- You also get tons of pins - 20 GPIO pins
- Hardware Serial, hardware I2C, hardware SPI support
- PWM outputs on all pins
- 6 x 12-bit analog inputs
- 1 x 10-bit analog ouput (DAC)
- Built in 100mA lipoly charger with charging status indicator LED
- Pin #13 red LED for general purpose blinking
- Power/enable pin
- 4 mounting holes
- Reset button
The Feather M0 Basic Proto has some extra space left over, so we give you a tiny little prototyping area. If you just need to attach a button or sensor, you may be able to skip out on a breadboard and wire it directly on there.
Comes fully assembled and tested, with a USB bootloader. Includes headers so you can solder it in and plug into a solderless breadboard.
Have some info to add for this board? Edit the source for this page here.
This is the latest stable release of CircuitPython that will work with the Feather M0 Basic.
Start here if you are new to CircuitPython.
Built-in modules available: analogio, board, busio, digitalio, math, microcontroller, neopixel_write, nvm, os, pulseio, pwmio, random, rotaryio, rtc, storage, struct, supervisor, time, touchio, usb_hid, usb_midi
Every time we commit new code to CircuitPython we automatically build binaries for each board and language. The binaries are stored on Amazon S3, organized by board, and then by language. Try them if you want the absolute latest and are feeling daring or want to see if a problem has been fixed.
All previous releases are listed on GitHub, with release notes, and are available for download from Amazon S3. They are handy for testing, but otherwise we recommend using the latest stable release. Some older GitHub release pages include the same binaries for downloading. But we have discontinued including binaries as assets on newer release pages because of the large number of files for each release.
Latest version: v3.13.0
The bootloader allows you to load CircuitPython, Makecode, and Arduino programs. The bootloader is not CircuitPython. You can check the current version of your bootloader by looking in the INFO_UF2.TXT file when the BOOT drive is visible (FEATHERBOOT, CPLAYBOOT, etc.).
To update, first save the contents of CIRCUITPY, just in case. Then double-click the reset button to show the BOOT drive. Drag the update-bootloader .uf2 file to the BOOT drive. Wait a few tens of seconds for the bootloader to update; the BOOT drive will reappear. Check INFO_UF2.TXT to verify that the bootloader version has been updated. Then you will need to reload CircuitPython.