I have started playing with RFM69 radios. These are very small, cheap radios that can send packets of data around. Here I’m collecting some pointers and early results.
In contrast to WiFi, RFM69 is much more geared towards embedded use. The radios are cheap ($5) and tiny, but what’s more important: they can be run on very low power.
Library support is also good, at least on Arduino and Raspberry Pi. These are the two platforms I’m interested in. I have a Raspberry Pi as the hub that collects data from a number of sensors, and it sends out data to displays that show metrics. I’m working on a pair of ePaper displays driven by Arduinos that will get their data over the air, and my hope is that they will run for months on a small LiPo battery. The combination of ePaper and low-power radio (plus low-power sleep states on the Arduino) should make that possible.
But back to the radios! They can be found in their natural state on SparkFun and many other sites. Since they’re tiny, their pin spacing doesn’t align with breadboards. SparkFun has a breakout board that makes work on a breadboard easier, but it’s also twice the price. They also rearrange the pins a little, though, so you only have to solder headers onto one side (for most purposes). SparkFun’s hookup guide is also quite good.
For software, everybody seems to like LowPowerLab’s RFM69 library, and I can see why. It’s easy to set up and works well. I had to delete all the RFM69_* files because they were causing compile issues that I didn’t want to deal with (and I didn’t need them), but apart from that, it was easy.
LowPowerLab makes a combined Arduino and RFM69 that I would have gotten had I known about them before buying Arduino Pro Minis and radios separately. Soldering them is a bit of a challenge, not just because they’re small, but also because the pin layouts are a bit incompatible. The image at the top of this posting shows my little RFM69 backpack on a 3.3V/8MHz Arduino Pro Mini.
For the Raspberry Pi, I just used the piGateway part of this repository. I ignored the Mosquitto stuff and just started by modifying the SenderReceiver program. That has worked well so far, at least for sending. I haven’t tried receiving on the Pi yet. Here’s a picture of my Pi hub with the RFM69 sticking out on the side. I just soldered the module onto a cut-off 10-wire rainbow cable like the one you see just above it (that one’s going to an Arduino that’s reading temperature sensors, which I need to write about…).
So far, this is all working well. I will keep writing about this here as I’m making progress, and eventually gather all my code in one place and publish that.
Low power radio is definitely a lot more fun than just sticking an ESP8266 on something and having that handle it all for me.