The RFM12 and RFM69 radio modules are low power and low cost radio transceiver modules that are useful for sending data between sensor nodes and a basestation and have been used extensively in OpenEnergyMonitor hardware units for some time.
This page provides a brief overview of both modules and how they can be used in conjunction with an Arduino based microcontroller for communication between sensor nodes.
The modules are manufactured by Hope RF, re-branded by RFsolutions in the UK. Sometimes called 'Alpha RF'. They are low cost RF transceivers available from Rapid, Farnell, or RS in the UK.
|Supply Voltage||2.2 to 3.8V||1.8 to 3.6V|
|Frequency||433MHz, 868MHz, 915MHz||433MHz, 868MHz, 915MHz|
|Open air range||150m||250m|
|In home range||Similar to WIFI network||Similar to WIFI network|
|Transmission power||5 dBm||13 dBm|
|Standby Current||0.3 uA||0.1 uA|
|Encryption||Sofware||128-bit AES Hardware|
3 ISM band frequencies: 433MHz (worldwide), 868MHz (Europe), 915MHz (USA & Australia only).
JeeLib Arduino driver library
The operating frequency of the modules is set in software. For best performance, the frequency chosen should match the hardware frequency of the module.
Node ID's can be 0-31 with 1-30 used for normal operation. ID 31 is special, as it can communicate with nodes on any network.
ID 0 is reserved for OOK operation.
433 1/4 wave = 164.7mm
433 1/2 wave = 329.4mm
433 full wave = 692.7mm
868 1/4 wave = 82.2mm
868 1/2 wave = 164.3mm
868 full wave = 345.5mm
915 1/4 wave = 77.9mm
915 1/2 wave = 155.9mm
915 full wave = 327.8mm
An RFM12/69 can be connected to an Arduino running at 5V with the following circuit. The 4.7k and 10k resistors are used to drop the voltage levels from the Arduino down to 3.3V so as not to damage the RFM12/69 module.
The 4.7k resistors can be replaced with a direct wire link and 10k resistors removed if the Arduino or ATmega microcontroller is running at 3.3V.
Credit to Michael Margolis from Arduino Cookbook for Arduino connection diagram.