• Stars
    star
    778
  • Rank 58,431 (Top 2 %)
  • Language
    C++
  • License
    GNU General Publi...
  • Created over 11 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

RFM69 library for RFM69W, RFM69HW, RFM69CW, RFM69HCW (semtech SX1231, SX1231H)

RFM69 Library

arduino-library-badge Build Status GitHub release GitHub issues GitHub pull requests license

By Felix Rusu, LowPowerLab.com
RFM69 library for RFM69W, RFM69HW, RFM69CW, RFM69HCW (semtech SX1231, SX1231H)
The latest examples, new features and bug fixes are found in the original repository of this library.

License

GPL 3.0, please see the License.txt file for details. Be sure to include the same license with any fork or redistribution of this library.

Features

  • easy to use API with a few simple functions for basic usage
  • 1023 possible nodes on 256 possible networks
  • 61 bytes max message length (limited to 61 to support AES hardware encryption)
  • customizable transmit power (32 levels) for low-power transmission control
  • sleep function for power saving
  • automatic ACKs with the sendWithRetry() function
  • hardware 128bit AES encryption
  • hardware preamble, synch recognition and CRC check
  • digital RSSI can be read at any time with readRSSI()
  • interrupt driven
  • tested on all Moteinos & many custom boards designed by LowPowerLab
  • works with RFM69W, RFM69HW, RFM69CW, RFM69HCW, Semtech SX1231/SX1231H transceivers
  • promiscuous mode allows any node to listen to any packet on same network

Library Installation (Arduino IDE)

Copy the content of this library in the "Arduino/libraries/RFM69" folder.
To find your Arduino folder go to File>Preferences in the Arduino IDE.
See this tutorial on Arduino libraries.

Hardware & programming

The easiest way to get started is with the well documented and supported Moteino microcontroller platform which is easily programmable from the Arduino IDE. This includes the Moteino, MoteinoUSB & MoteinoMEGA. RFM69 transceivers were extensively tested on Moteinos for the purpose of building internet of things (IoT) devices that can be controlled wirelessly. This platform has matured over time and there is now a dedicated page where you can review how these devices can interact with each other via a RaspberryPi gateway interface. Here's a video overview:
https://www.youtube.com/watch?v=YUUZ6k0pBHg
https://www.youtube.com/watch?v=I9MNZQgqKHA
https://www.youtube.com/watch?v=F15dEqZ4pMM

Basic sample usage

  • The Gateway example listens for incoming data from remote nodes and responds to any ACK requests
  • The Node example is a loop that sends increasingly longer packets to the gateway and waits for an ACK each time
  • More examples are added from time to time, check all the examples, visit the LowPowerLab blog for latest news and projects, and check out the LowPowerLab forums for projects and discussion

Blog writeup

See the library release blog post

Why RFM69

  • I have spent a lot of time developing this library for RFM69W/CW/HW/HCW transceivers. I made it open source because I believe a lot of people can benefit from this new powerful transceiver. I hope others will also contribute and build on my work
  • I have long researched alternative transceivers for RFM12B which is still an excellent transceiver but it is much lower output power and has limited built in features which need to be implemented in firmware (PREAMBLE, SYNC, CRC, packet engine, encryption etc).
  • I wanted a transceiver that could still be very small, easy to use, and have the longer range that I needed
  • RFM69 comes in 2 variants: RFM69W/CW (13dBm, 45mA TX) and RFM69HW/HCW (20dBm, 130mA TX). They are not pin compatible. The RFM69HCW is generally recommended since it has the extra power when needed.

RFM69 range and antennas

  • I have tested open-air range on these transceivers in various combinations.
  • I am happy to say that a range of upwards of 400m can be achieved with the default settings provided in the library. Some users reported upwards of 500m by lowering the bitrate, and a forum user reported 1.5miles at 1.2Kbps: see this forum post and this blog page
  • The caveat with these higher RF power units is that they need more DC power when they transmit. For battery powered motes, you will need to keep them powered down and only transmit periodically. Use the sleep() function to put the radios in low power mode and use the LowPower library to power down your Moteino.
  • The RFM69 ATC feature enables keeping transmit power only at the required level to achieve the desired RSSI at the receiving end, see examples for usage

More Repositories

1

SPIFlash

Arduino library for read/write access to SPI flash memory chips
C++
172
star
2

RFM12B

RFM12B library
C++
134
star
3

Moteino

Moteino Eagle project and library
131
star
4

RaspberryPi-Gateway

RaspberryPi socket webserver for home automation
JavaScript
124
star
5

CurrentRanger

Precision auto-ranging current meter (ammeter)
C++
94
star
6

DualOptiboot

Custom Optiboot to add wireless programming capability to Moteino
C
71
star
7

SI7021

Si7021 temperature & humidity sensor arduino library
C++
44
star
8

ATX-Raspi

ATXRaspi is a smart power controller for RaspberryPi that allows you to have an external ATX style shutdown button
Shell
43
star
9

WirelessProgramming

Wireless programming library and example code for Moteino
Python
38
star
10

MailboxNotifier

Moteino based mailbox event notifier
C++
28
star
11

SwitchMote

Arduino
25
star
12

SFE_BMP180

BMP180 Bosch sensor library
C++
23
star
13

SumpPumpAlert

Source code for making a sump pump SMS alert system using a Moteino and HC-SR04 ultrasonic sensor, and RaspberryPi
Python
12
star
14

WaterMote

Code used in WattMote, a low cost wireless pulse counter reader (eg. water meter)
C++
8
star
15

Microscope-Light

Simple wireless LED ring light design for a B&L stereo microscope
6
star
16

WattMote

Source files for WattMote - a wireless KillAWatt mod similar to the TweetAWatt
Python
6
star
17

GarageMote

Moteino garage controller shield
4
star
18

FTDIAdapter

Eagle files for FTDIAdapter
3
star
19

WeatherShield

Moteino WeatherShield
Arduino
2
star
20

Cut-Strip-Feeder

Design files for a lasercut acrylic strip feeder
2
star
21

PowerShield

Power Shield source files
1
star
22

LowPowerLab.github.io

1
star