Experimental project around RFM radio modules using an AVR MCU

@Torsten Römer Torsten Römer authored on 12 Feb 2025
GitHub committed on 12 Feb 2025
nbproject Improve transmission reliability and range 1 year ago
.gitignore Write and read single register 1 year ago
CODE_OF_CONDUCT.md Initial commit 1 year ago
LICENSE Initial commit 1 year ago
Makefile Measure & tx temp, save some power 1 year ago
README.md Add screenshot of GTKTerm 1 year ago
avrrfm.c Improve transmission reliability and range 1 year ago
i2c.c Add I2C, some cleanup 1 year ago
i2c.h Add I2C, some cleanup 1 year ago
mcp9808.c Improve transmission reliability and range 1 year ago
mcp9808.h Measure & tx temp, save some power 1 year ago
pins.h Initial commit 1 year ago
rfm69.c Improve transmission reliability and range 1 year ago
rfm69.h Improve transmission reliability and range 1 year ago
spi.c Write and read single register 1 year ago
spi.h Write and read single register 1 year ago
usart.c Initial commit 1 year ago
usart.h Initial commit 1 year ago
utils.h Measure & tx temp, save some power 1 year ago
README.md

AVRRFM

Experimental project to drive an RFM69 radio module with plain avr-libc and an Atmega328p MCU.

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

To do something really extraordinary, the temperature reading of an MCP9803 sensor is periodically transmitted to the receiver.
To save battery power, the controller, radio module and temperature sensor are put to power down/sleep mode in between transmissions. The idle current is ~57 uA, which is still quite a lot (> 10 uA should be possible), but already better than 8 mA :-)

IMG_20250212_190518

The receiver currently just converts the raw temperature reading to °C and writes it via USART to the awesome GTKTerm.

GTKTerm