Newer
Older
librfm69 / README.md

AVRRFM

About

Experimental library project to drive an RFM69HCW radio module with plain avr-libc.

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

Build

avr-gcc -mmcu=atmega328p -DF_CPU=8000000UL -O2 -I. -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums  -Wall -Wstrict-prototypes -g -ggdb -ffunction-sections -fdata-sections -Wl,--gc-sections -mrelax -std=gnu99 -MMD -MP -MFlibrfm.d -MTlibrfm.d librfm.c -c -olibrfm.o

avr-ar rcs librfm.a librfm.o

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