RFM12B - Part 1 - Hardware Overview

HopeRF RFM12B - wireless transceiver  

To see how RFM12B wireless compares to other similar wireless options (e.g Xbee, XRF etc..) check out this well compiled comparison overview by Stuart Poulton: http://blog.homelabs.org.uk/wireless-connectivity/.

Overview

Made by Hope RF, re-branded by RFsolutions in the UK. Sometimes called 'Alpha RF'

Low cost RF transceiver (from Rapid, Farnell, or RS in the UK) 

Up to 300m transmission 

Up to 115Kbps

Up to 30 nodes per network*   

Up to 250 different network groups

3 different ISM band frequencies: 433MHz (worldwide), 868MHz (Europe), 915MHz (USA & Australia only) . Note: frequency of a module is set in software, for best performance the frequency set should match the intended hardware frequency of the module. 

*node ID's can be 0-31 with 1-30 used for normal use.

ID 31 is special as it can communicate with nodes on any network and ID 0 is reserved for OOK use

Hardware

SPI interface 

2.2-3.8V supply voltage

Low power – 0.3µA standby current 

Datasheet: http://www.hoperf.com/pro/rf/cob/RFM12B.htm

 

Identifying the frequency of your module

Includes additional capacitor = 433 MHz

Missing capactior = 868 MHz

Antenna 

 

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

 

Arduino Uno Connections

Credit to Michael Margolis from Arduino Cookbook for Arduino connection diagram. 

 

Alternative connection diagram (only for when Atmega328 is running at 3.3V):

 

Update: Arduino Leonardo (ATmega32U4) requires different connections. See this blog post for details. 

Software 

Code example: https://github.com/openenergymonitor/RFM12B_Simple

RFM12 Arduino library from JeeLabs: https://github.com/jcw/jeelib - credit to JCW for this great work

See this post by JCW describing the Nodes, Addresses and operation of the JeeLib RFM12 Arduino Library: http://jeelabs.org/2011/01/14/nodes-addresses-and-interference/ 

JeeLib library reference: http://jeelabs.net/pub/docs/jeelib/RF12_8cpp.html

 

Further Information 

Lot's of information on RFM12B and the RFM12 Arduino driver library on jeelabs.org

 

Continue to Part 2 - Sending Data Between Modules