Feather M0 RFM9x

by Adafruit

Image of Board

This is the Adafruit Feather M0 RFM96 LoRa Radio (433 MHz). Also called RadioFruits, Adafruit’s take on an microcontroller with a “Long Range (LoRa)” packet radio transceiver with built in USB and battery charging. It is an Adafruit Feather M0 with a 433MHz radio module cooked in! Great for making wireless networks that are more flexible than Bluetooth LE and without the high power requirements of WiFi.

Feather is the development board platform from Adafruit, and like its namesake it is thin, light, and lets you fly! Adafruit designed Feather to be an open standard for portable microcontroller cores. Check out the other boards in the Feather family.

There are 433 MHz and 898/915 MHz radio versions.

At the Feather M0’s heart is an ATSAMD21G18 ARM Cortex M0 processor, clocked at 48 MHz and at 3.3 V logic, the same one used in the new Arduino Zero. This chip has a whopping 256 K of FLASH (8x more than the Atmega328 or 32u4) and 32 K 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, Adafruit added a connector for 3.7 V 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 its 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.

Technical details

  • Measures 2.0” x 0.9” x 0.3” (51 mm x 23 mm x 8 mm) without headers soldered in
  • Light as a (large?) feather - 5.8 grams
  • ATSAMD21G18 @ 48MHz with 3.3 V logic/power
  • No EEPROM
  • 3.3 V 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
  • 8 x PWM pins
  • 10 x analog inputs
  • 1 x analog output
  • Built in 100 mA lipoly charger with charging status indicator LED
  • Pin #13 red LED for general purpose blinking
  • Power/enable pin
  • 4 mounting holes
  • Reset button

This Feather M0 LoRa Radio uses the extra space left over to add an RFM9x LoRa 868/915 MHz radio module. These radios are not good for transmitting audio or video, but they do work quite well for small data packet transmission when you need more range than 2.4 GHz (BT, BLE, WiFi, ZigBee).

  • SX127x LoRa® based module with SPI interface
  • Packet radio with ready-to-go Arduino libraries
  • Uses the license-free ISM bands (ITU “Europe” @ 433 MHz and ITU “Americas” @ 900 MHz)
  • +5 to +20 dBm up to 100 mW Power Output Capability (power output selectable in software)
  • ~300 uA during full sleep, ~120 mA peak during +20 dBm transmit, ~40 mA during active radio listening.
  • Simple wire antenna or spot for uFL connector

The initial tests with default library settings: over 1.2mi/2Km line-of-sight with wire quarter-wave antennas. (With setting tweaking and directional antennas, 20 km is possible).

Comes fully assembled and tested, with a USB bootloader. Also includes some headers so you can solder it in and plug into a solderless breadboard. You will need to cut and solder on a small piece of wire (any solid or stranded core is fine) in order to create your antenna.

Tutorial

Purchase

Contribute

Have some info to add for this board? Edit the source for this page here.

CircuitPython 9.0.4

This is the latest stable release of CircuitPython that will work with the Feather M0 RFM9x.

Use this release if you are new to CircuitPython.

Release Notes for 9.0.4

Built-in modules available: adafruit_bus_device, analogio, array, board, builtins, busio, busio.SPI, busio.UART, collections, digitalio, math, microcontroller, neopixel_write, nvm, os, pwmio, rainbowio, random, storage, struct, supervisor, sys, time, usb_cdc

Included frozen(?) modules: adafruit_rfm9x

CircuitPython 9.1.0-beta.1

This is the latest development release of CircuitPython that will work with the Feather M0 RFM9x.

Alpha development releases are early releases. They are unfinished, are likely to have bugs, and the features they provide may change. Beta releases may have some bugs and unfinished features, but should be suitable for many uses. A Release Candidate (rc) release is considered done and will become the next stable release, assuming no further issues are found.

Please try alpha, beta, and rc releases if you are able. Your testing is invaluable: it helps us uncover and find issues quickly.

Release Notes for 9.1.0-beta.1

Built-in modules available: adafruit_bus_device, analogio, array, board, builtins, busio, busio.SPI, busio.UART, collections, digitalio, math, microcontroller, neopixel_write, nvm, os, pwmio, rainbowio, random, storage, struct, supervisor, sys, time, usb_cdc

Included frozen(?) modules: adafruit_rfm9x

Absolute Newest

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. These releases are even newer than the development release listed above. Try them if you want the absolute latest and are feeling daring or want to see if a problem has been fixed.

Previous Versions of CircuitPython

All previous releases of CircuitPython are available for download from Amazon S3 through the button below. For very old releases, look in the OLD/ folder for each board. Release notes for each release are available at GitHub button below.

Older releases are useful for testing if you something appears to be broken in a newer release but used to work, or if you have older code that depends on features only available in an older release. Otherwise we recommend using the latest stable release.

Update UF2 Bootloader

Latest version: v3.15.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.).

It is not necessary to update your bootloader if it is working fine. Read the release notes on GitHub to see what has been changed. In general, we recommend you not update the bootloader unless you know there is a problem with it or a support person has asked you to try updating it.

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. After you update, check INFO_UF2.TXT to verify that the bootloader version has been updated. Then you will need to reload CircuitPython.

DOWNLOAD UPDATER UF2