Project tutorial
HopeRF Springs Eternal

HopeRF Springs Eternal

Bring a pair of RFM12B's from HopeRF on-line quickly for Arduino packet radio experiments and projects.

  • 10 respects

Components and supplies

About this project

A play on words...

Hope springs eternal in the human breast;

Man never is, but always to be blessed:

The soul, uneasy and confined from home,

Rests and expatiates in a life to come.

– Alexander PopeAn Essay on Man

Getting Started and Understanding Build Concerns

If you purchase your RFM12B modules from eBay, they will likely come in a 3/4 square inch surface mount module.  I have seen projects where the authors simply solder wires directly to the modules.  I took a slightly different route and used some one-sided copper project board with 0.1 inch hole-hole center - the common stuff you find at Radio Shack or online electronic stores.  I cut the board oversized to that of the RFM12B and soldered pin headers to the board (foil side up.)  The headers will allow the module to be used easily in a solderless breadboard and easily connected to the Arduino with pin-jumper wires.  You can use an Arduino UNO, a Nano, or a Mini as long as the host chip is an Atmega328P.  The library provided by LowPowerLab does not work with the Atmega32U4 used in the Leonardo and I have not looked into use with other variety of Arduino implementations.  The software works perfectly with the under $4 clones from China that are 328-based.

Warning: the RFM12B is a 3.3 Volt module.  This means you need SparkFun Pro-Mini running at 3.3V.  Link here: This is the ideal solution.>But if you wish to run with an UNO or other 5.0V board, you will need to perform voltage-level conversion between the Arduino and the RFM12B module and you must provide a stable 3.3V to the RFM12B.  Unless you are experienced with this type of electronic circuitry, you could damage your RFM12B by providing an excessive Vdd voltage.  
You have been warned.In my workshop, I have successfully run the clone Pro-Mini's at 16MHz and 3.3 Volt at room temperature.  While this is out-of-specification, it generally does work provided the temperature does not drift into the uncomfortable range: high or low.  However, Atmel's product sheet for the atmega328P states that operation at this voltage is not guaranteed.  You can try since no harm will come to the Arduino by powering it below 5.0 Volts to 3.3V at 16MHz.

If you find that you must use level-conversion, solutions are available from SparkFun and from Adafruit or you can use Google and find circuits for building your own.
The parts are relatively inexpensive.  Pre-manufactured solutions:

Note: On the LowPowerLab site, you can reference the schematic for the Moteino; a product that contains both the RFM12B and the ATmel microcontroller 328 which can be programmed with Arduino.  The schematic shows an alternate method of interfacing the microcontroller and the radio modules via resistor voltage dividers.

A final note:  
If you are inexperienced, shy about soldering, or just get over-anxious about things like 3.3V to 5.0V conversions, please note that LowPowerLab sells complete solutions under their Moteino brand.  

(I am not associated with LowPowerLab in any capacity. Their use here in this article is because their solution is representative of the many different approaches to connecting Arduino to RFM12B modules; but i find their site easy to navigate, their prices reasonable, and their software works!)

With a 1/4 wave antenna on the remote and a full-wave whip on the receiver, I can take the remote anywhere in my house and have great signal on the PC tied to the base unit.  Now I'm contemplating all of the things I can do with this wireless technology!


About this project

Hope Microelectronics Co., LTD produces a line of RF radio transceivers under the HopeRF brand.  There are several models, but this article is based on the very inexpensive RF12B.  The sources for this product are plentiful and two (2) transceivers can be purchased for under $10 (including shipping based on current eBay prices.)

I have been wanting to play with these units for a long time and had a few in a storage box from a past purchase and had forgotten about them.  At the urging of my friend Bob in LA, I decided to dig out what I have and put together a few experiments around inexpensive Arduino hardware.  This post details in pictures and Internet references how I got these units to work quickly and first-time.

All of the Arduino software for this experiment was written by Felix Rusu of LowPowerLab, LLC.  Please check out his website as his company sells complete solutions.  If you decide to purchase your RF12B and Arduino hardware elsewhere, you will need the RF12B library for Arduino and the associated Send/Receive examples; those files are here:

For the remote project box, I used SERPAC H679V.  These are available from Newark and others.  The "9V" in the description indicates the battery compartment is designed for 9 Volt batteries.  However, a little copper hobby tape magically transforms the battery compartment into a 2-AA compartment.  Perfect for 3.3V battery powered projects.

The rubber-duckie antenna came from a long-dead wireless home phone and the full-wave whip antenna from a portable radio that fell from grace (off the shelf in the garage onto the concrete floor.  Radio still works, antenna was salvaged for use another day!)

A note about connections:  If you run the UNO from 5V then you will need to use the Arduino 3.3v output to power the radio module AND you will need to use voltage-level conversion. In the schematic below, the 10K and 4.7K resistors provide for this conversion requirement. Other methods may be applied or if you power the Arduino from 3.3V (assuming a custom build or an 8MHz Sparkfun module) then the resistors are not required.

My Build - In Pictures


Similar projects you might like

Magic Morse on Arduino

Project tutorial by Ray Burnette

  • 41 respects

$5 Nokia Serial Terminal Display

Project tutorial by Ray Burnette

  • 13 respects

Simple FM Radio

Project tutorial by Alexander

  • 35 respects

Turn your RC Car to Bluetooth RC car

Project tutorial by Prajjwal Nag

  • 24 respects

Ultimate Kegerator

Project tutorial by Kevin D Wolf

  • 59 respects

An Adequate Thermometer

Project tutorial by Jayraj Desai

  • 1 comment
  • 9 respects
Add projectSign up / Login