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

@Torsten Römer Torsten Römer authored on 10 Apr
GitHub committed on 10 Apr
nbproject Rename to librfm69 (#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 Rename to librfm69 (#4) 11 months ago
README.md Rename to librfm69 (#4) 11 months ago
librfm69.c Rename to librfm69 (#4) 11 months ago
librfm69.h Rename to librfm69 (#4) 11 months ago
utils.h Initial commit 1 year ago
README.md

librfm69

About

Static avr-libc library providing basic support for RFM69 radio modules.

This is work in progress. Simple Tx-Rx with response works so far.

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

Usage

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

Range

Setting RegPaLevel to 0x5f, which gives +13 dBm with PA1, indoor range is very good and in an actual "field" test, packet reception was still reliable with an RSSI of about -90 dBm at about 2.2 km distance - with simple wire antennas. What would be the range with +20 dBm and decent antennas?

FieldTest3

Susceptibility to Temperature Changes

With the default frequency deviation of 5 kHz and receiver bandwidth of 10.4 kHz, packet transmission is very unreliable and fails completely for me when the temperature of the transmitter is below 10°C and above 40°C, while the receiver temperature is at 20°C. The receiver does not seem to be prone to temperature changes.
Increasing frequency deviation to 10 kHz and receiver bandwidth to 20.8 kHz, temperature susceptibility is eliminated; when testing with transmitter temperature from -20°C to 50°C, packet transmission is perfectly reliable.

Frequency Deviation = 10 kHz (transmitter)
RegFdevMsb = 0x00
RegFdevLsb = 0xa4

Receiver Bandwidth = 20.8 kHz
RegRxBw = 0x54