The Raspberry Pi hardly needs an introduction these days. Its availability, low cost, and enthusiastic community have put it on the map of every Physical Computing hobbyist.
One way to connect embedded hardware with it is through the USB port, and another one is to use pins 6, 8, and 10 on the expansion header to use a serial “UART” connection.
But for a wireless radio module such as the RFM69, there is a much simpler way: through SPI, which is available on the expansion header as well. As it turns out, we only need pins 14 through 25 for this. Here is an overview of what’s involved:
In this case, we’re using the RFM69CW, though with a bit of care the non-C “RFM69W” module could also be used (it has a slightly different pinout). Don’t use the “H” version (high-power), as this will far exceed the max 50 mA current allowance of the 3.3V supply.
All we need is 3.3V, a 4-wire SPI connection, and while we’re at it, let’s also hook up the DIO0 and DIO2 pins so we can make the Raspberry Pi respond to interrupt requests.
Note how the required +3.3V and GND pins are all there, on this part of the header. By using a small piece of prototype PCB, we can construct a tiny (pico?) add-on board:
The pads on the RFM69 are not very convenient, since they don’t align with the 0.1″ grid spacing of prototyping boards, but we can just use the corners to hold the RF module, and use wires for the rest:
The radio was mounted upside down so we can see the labels, and the indication of which frequency band this unit is for. The circuit won’t care, it has no idea of “up” and “down”.
Connections are best made with insulated wire, due to the close proximity of all the different signals. The thinner the better (to easily fit everything in there), so let’s use Kynar “wire wrap” wire – this wiring doesn’t need to provide any mechanical support:
(the careful viewer will note that one wire from pin 22 to NSS still needs to be added)
Here is the completed build, installed on one of the original “Model B” Raspberry Pi’s:
Hard to see, but at the far end an 86-mm (white) antenna wire has also been soldered on.
We’re ready to go on the air – all we need now, is a little bit of software on Linux!
[Back to article index]