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

@Torsten Römer Torsten Römer authored on 9 May
GitHub committed on 9 May
nbproject Rename to librfm95 (#4) 11 months ago
sheets Add SX1276 datasheet and AN1200.24 10 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 Updated field test with FSK 10 months ago
librfm95.c Fix comment 10 months ago
librfm95.h Some recommendations from Semtech AN1200.24 (#7) 10 months ago
utils.h Initial commit 1 year ago
README.md

librfm95

About

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

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

At over 12 km distance line of sight, reception was stable with an RSSI of -96 dBm and +9 dBm Tx power - with simple wire antennas. Quite impressive!

The configuration:

  • AGC auto on, boost on, 150% LNA current
  • Modulation shaping Gaussian filter BT = 0.5
  • Transmitter frequency deviation: 10 kHz
  • Receiver channel filter bandwith: 20.8 kHz

FieldTest5

LoRa

With LoRa, reception was stable with an RSSI of -116 dBm and +17 dBm Tx power at 18 km distance line of sight, with the following configuration (and as well just simple wire antennas):

  • LNA highest gain, boost on, 150% LNA current
  • Signal bandwidth: 41.7 kHz
  • Spreading factor: 10
  • Error correction code rate: 4/5
  • Low Data Rate Optimization

FieldTest8

So, as expected, range is significatly increased with LoRa, and the link is more robust when there are obstacles in the path, such as buildings and terrain.

Anyway, these radio modules work very well with both modulation schemes!

Here's the transmitter placed at Mont-Saint-Aubert, with a nice view to Mont de L'Enclus:

Transmitter