The Adafruit Feather RP2040 with RFM95 LoRa Radio – 915MHz – RadioFruit and STEMMA QT (Feather LoRa from here on out) is a microcontroller paired with a LoRa 900MHz band radio for data communication. LoRa, short for long range, is a data radio standard for low-data rate, long-distance communication. Its range will depend on the antenna you choose to connect to it, but a simple single-wire antenna should be able to cover more than a mile with the 100mW power output of the transmitter. Data rates for this transmitter in its default configuration will be about 5kBps. This makes LoRa effective for long-distance sensor monitoring, but not audio or video streaming.
This LoRa transmitter uses a spread-spectrum technology to transmit on a band that doesn’t require a license in the United States. Thus there is no frequency coordination needed to use it. There are several versions of Adafruit’s LoRa boards using different frequencies, so please consult your local regulations to find the correct board for use in your country. LoRa is in use worldwide, so there are many guides available on the internet. This board includes a u.FL connector, so it is possible to buy off-the shelf directional antennas and any adapters needed to connect them to the board. Again, pay attention to the version of the board you’re using in order to ensure the antenna you purchase covers the correct frequencies. The quickest and cheapest way to get this board up and running is to cut a piece of wire to one-fourth the wavelength of the transmitting frequency (7.8cm) and solder it to the pad marked ANT next to the u.FL connector.
On the microcontroller side of the board we find the Raspberry Pi Foundation’s RP2040 microcontroller with 8 MB of attached Flash storage. Adafruit also makes Feather Lora boards with an ATmega32u4 or an ATSAMD Cortex M0+ microcontroller, so you have your choice of platforms. Each microcontroller communicates with the LoRa radio module over SPI. Adafruit also makes FeatherWings with LoRa radios, so you can add LoRa to a Feather you already own. Each of the Feather LoRa boards varies in what extras are found on board. This unit comes with a Stemma QT connector for attaching I2C-based peripherals and a NeoPixel RGB LED for status indication. All have a LiPoly battery connector and battery management chip. The board can be powered via battery or USB, with the management chip automatically charging the battery whenever USB power is connected.
Because this board features the RP2040, we can program it in either CircuitPython or the Arduino IDE. Adafruit provides a guide that will get you up and running in either environment. We tested the board with the Arduino IDE, where a third-party board manager URL is needed to add support for the RP2040. Once support for the microcontroller is installed, you have a choice of library to use for the LoRa radio. Because this radio is already well supported, Adafruit did not write their own library. They instead recommend the RadioHead library which requires manual installation and a restart of Arduino IDE. Adafruit’s guide steps you through the example transmit and receive programs found in the File->Examples->RadioHead->feather menu. We had no problem getting the examples up and running.
Note that for effective communication you will need two LoRa radios. Setting up two Feather LoRas to transmit and receive is a great way to experiment with LoRa’s capabilities. When you are ready to join the worldwide Internet of Things, you will want to read up on LoRaWAN. In short, many areas around the world have receiver networks that will allow your LoRa-equipped device to send messages to application servers over the internet. LoRaWAN is a lower-power, lower-data-rate alternative to interfacing with cellular networks. We can only scratch the surface of LoRa and LoRaWAN in this review, so be sure to ask around your local makerspace or amateur radio club to find people using it for cool projects.
- Support for LoRa in a compact package.
- A powerful RP2040 microcontroller