From Ciseco to HopeRF

Recently there were several things related to Ciseco that annoyed me a bit (RFµ-328 is going to get a bigger footprint; they removed an item from a bundle in their shop from one day to the next without changing the price or announcing anything; buying SRF radios can be now only in bulk (10 minimum) UPDATE: Ciseco rescinded the decision; SRFs are available individually again. Well, too late for me.). Don't get me wrong, they still make cool stuff (like the RFµ-328), but I didn't want to depend on them for radio modules.

So I decided to switch to HopeRF's RFMs. Eventually I went for the newer RFM69CW, although they are less readily available than RFM12B, and the firmwares using RFM12B will need modifications. Luckily the most common library used for RFM12Bs, jeelib, supports the newer radios and the two types can communicate with each other. I'm discovering JeeNodes, mini-wireless modules from anarduino and moteinos, all using compatible HopeRF radios.

Of course, I need to attach the new radio to my Raspberry Pi. The easiest option would be to buy RFM12Pi from OpenEnergyMonitor's shop, but I had several gripes with this (in order):

In the end, I opted for the combination of Slice of Pi with a RFµ-328-BARE with a RFM69CW soldered onto it. Note that the RFµ-328 needs slight modifications. The Slice of Pi has a stackable header on it, so that I can attach the mini RTC module on top. Here's a pic (it has a small RTC module stacked on top):

Apart from the headers that come with Slice of Pi, I added a LED and a resistor, and one 0.1uF cap from RFµ-328 reset pin to GPIO23 (on the underside of the PCB). So the functionality is (almost) exactly as the RFM12Pi (V2) module: it has an activity led on Arduino pin 9 and the reset line is wired to Pi's GPIO23 (as opposed to GPIO4). To make avrdude work, one can follow the instructions from RFM12Pi, the only required change is to edit the autoreset script and change 4 to 23.

I plan on adding more things to the Slice of Pi (which would be next to impossible with RFM12Pi):

There was one hurdle to be scaled: RFµ-328 is wired differently than JeeNodes, so the "stock" jeelib won't work without some modifications. This has been done for the RFM12B code by the people around OpenEnergyMonitor project and published on github as RFu-jeelib. So in the end I merged the new RF69 code into this project and modified the RF69 portions. The resulting code/library is here (use the rfu branch!). So my whole tiny "fleet" of RFµ-328's with RFM69CW is happily running the ubiquitous RF12demo sketch.

(In the pic above: a Raspberry Pi + Slice of Pi + RFµ-328; a RFµ-328 on Ciseco's "developer board"; finally a RFµ-328 on Sparkfun's Xbee breakout to get from 2mm pins to the standard 2.54mm headers, connected to a Bus Pirate, used for power and serial monitoring.)

Update 2014-10-05:

I soldered a 3.3V voltage regulator to the Slice of Pi and cut the trace from Pi's 3V3 pad, so that now all 3.3V powered devices on the Slice of Pi get the power from the regulator (so from Pi's 5V supply), not from the Pi's 3.3V supply. There are of course also two capacitors (10uF and 0.1uF) to stabilise the regulator's output.

Update 2014-10-09

I thought I'd document some technical info here for reference. So, here it goes:

Update 2018-06-08

Ciseco seem to have gone out of business and their webpages are gone too, so the most of the URLs on this page probably won't work.