Static avr-libc library providing basic support for RFM95 radio modules

@Torsten Römer Torsten Römer authored on 16 Apr
GitHub committed on 16 Apr
nbproject Rename to librfm95 (#4) 11 months ago
.gitignore Fix build and Makefile 1 year ago
CODE_OF_CONDUCT.md Initial commit 1 year ago
LICENSE Initial commit 1 year ago
Makefile Disable builtin rules of make (#5) 11 months ago
README.md Update README.md 11 months ago
librfm95.c Always disable timeout 11 months ago
librfm95.h Fix/improve comments 11 months ago
utils.h Initial commit 1 year ago
README.md

librfm95

About

Static avr-libc library providing basic support for RFM95 radio modules. Other RFM9x radios might work as well, but were not tested yet.

I'm impressed how well these radio modules work; the range achieved with simple wire antennas as well as the reliable packet transmission.

This is work in progress. Currently available is (FSK and LoRa):

  • Transmit a packet
  • Blocking receive a single packet with timeout
  • Async'ly receive a packet (MCU sleeps or does something else until reception)

Usage

  1. Include librfm.h and librfm.a in the project
  2. Implement the _rfm* functions in librfm.h in the application (this is to make the library device and CPU frequency independent)
  3. Route interrupts occurring on DIO0 and DIO4(FSK)/DIO1(LoRa) to rfmIrq()

Range

FSK

Transmitting with +17 dBm, reception stopped with an RSSI of about -125 dBm at almost 2.7 km distance - with simple wire antennas, and a low hill in between.

Compared to the RFM69 at +13 dBm, it does make it a few hundred meters further - seems fair enough!

FieldTest4

LoRa

TODO 🙂