Hope RFM12B Wireless Module to RFM69W/HW Upgrade Path
Thanks to a post from John Beale on this forum, became aware of the recent work of LowPowerLab’s Felix Rusu.
After visiting Felix’s site and reading of his escapades in using the Hope RFM69W Wireless module and the
Arduino library he had written, I thought there would probabaly be some interest in cobbling a bit of generic
hardware together, that would enable an Arduino clone etc. to be retrofitted/upgraded from a RFM12B to RFM69W/HW.
The most obvious difference between the modules is that the RFM69W/HW is a 16 pin device while the RFM12B is a
14 pin module, so the module footprint difference is pretty minimal. 2mm headers have been used in the design
again, so as to not have to deal with possible module damage, if the modules require desoldering at some stage.
Have a read of the Hope RFM69W/HW datasheet, to read about the enhancements it offers.
Am attaching the Eagle files and a couple of photos of the Arduino footprint RFM69W/HW pcb.
|Hope RFM modules.jpg (267 KB) Hope RFM modules.jpg||RFM12B and RFM69H/HW module pcb|
|RFM69HW v1.0.sch (308 KB) RFM69HW v1.0.sch||RFM69H/HW eagle schematic|
|RFM69HW v1.0.brd (457 KB) RFM69HW v1.0.brd||RFM69H/HW eagle board|
|Img_3944b.jpg (320 KB) Img_3944b.jpg||RFM12B and RFM69HW modules on pcb|
|Img_3941b.jpg (208 KB) Img_3941b.jpg||RFM69HW module on pcb|
Four will do: 3x SPI + nSEL. And power. You should be able to r/w registers that way. Interrupts are nice, but not essential to get things working.
> rf12_control(0xC623); // data rate 9.579 kHz
> rf12_control(0x94C2); // Rx control 67 kHz bandwidth
> rf12_control(0x9820); // Tx control 45 kHz deviation
Thanks for these commands. I’ve tried with these values but something breaks when I enable the 45kHz TX deviation. The first two commands work but es soon as I add the last one the JeeNode is no longer able to transmit anything (or no receiver is able to receive it). Don’t know what is going on here. I don’t think I’ll investigate here but spend my time on the newer modules as soon as they arrive.
tht, probably a silly question but you did apply the suggested changes to BOTH the receiver and transmitter
plutonomore, on your ‘RFM69HW module on pcb’ you appear to have soldered to the edge of the RFM69HW board in a similar way to as required with the RFM12B rather than using the holes that have appeared on the RFM69HW. Could you say more as to this choice?
> tht, probably a silly question but you did apply the suggested changes to BOTH the receiver and transmitter
I did ;-)
But actually I don’t think it’s even needed on both sides to let em talk. I know almost nothing about RF, antennas and all this HF topics but I can tell what I noticed during my tests. If I only use the lower data rate the two nodes communicate without issues. Changing the RX bandwidth on one or both of the nodes does not matter, they keep talking to each other. But as soon as I touch the Tx control on one or both of the nodes they no longer communicate.
It may be an issue with my old Sketches or a problem with the rf12mod branch of jee lib I’m still using. But even if I find a way to let them do a few more meters I’ll never be able to reach the remote location I mentioned before with an RFM12B module. Topics like [[[http://lowpowerlab.com/forum/index.php?topic=112.0]]] look so promising…
tht,as I suspected, a silly question, sorry about that! Thanks for the lowpowerlab link, came across the
author’s post of a range of 1.5 miles at 1200 baud, when first looking at the Moteino R4 and RFM69W and
RFM69HW modules on the LowerPowerLab site, a while back. Once again, good luck with achieving your range
target and please keep us updated as to your progress.
JohnO, When I was doing the original design for the pcb the obvious question of use the "new" holestht, on this forum, an “edge” design would
provided, or use the "traditional" edge had to be made. Traditional translates, as in this is how it
was done on the Hope RFM12B and RFM12BP wireless modules. The idea of the design is to attach 2mm
spaced sockets/headers to the pcb, so that the wireless module can just be plugged into and out of the
board. Took this approach rather than just solder the module to pcb pads, to avoid possible damage to the
module if the module had to be desoldered/replaced. Certainly had read of quite a few forum posts, where
people had encountered this problem. Also bear in mind, with sufficient care, patience and practise the
modules can be desoldered successfully.
Anyway, wasn't keen on having a "holed" and an "edge" version of the pcb out there. Well will I toss a
coin or what? No, decided to stick with the "edge" design, primarily as hadn't had any problems with
the design previously. Interestingly, after having only recently having learnt of the Hope RFM69CW, a
RFM12B footprint and pin compatible module, compliments to
allow any previous 2mm RFM12B “edge” pcb design to accomodate the new RFM69CW modules. Obviously, a “hole”
designed pcb would be physically incompatible.
Open Source Hardware encourages others to use a design and if they want to edit/improve it etc… go for it!
Just as a closing note, after previous rant, couldn’t help myself and produced both a “holed” and “edge”
version of the Hope RFM69HW pcb … a glutton for punishment, I suppose!
Please see fig (i) and fig (ii) attachments , for the two Eagle pcb flavours.
Thanks for that, I was trying to decide how I would solder my connections. I found out about the RFM69CW after ordering the RFM69W - research over enthusiasm next time…
plutonomore, could you post a picture of your Moteino with the RFM69W socket arrangements visible. I am expecting a couple soon and would like to socket the radio as you do.
Just to let you know…
The RFM69CW are compatible (footprint and pins) with RFM12B board designs. I’ve just soldered two modules (443MHz) on me JeeNode compatible boards and the demo code from lowpowerlab.com worked out of the box. I did a very short range test with default RFM69 configuration and got a stable connection from outside where the 5kbps RFM12B (868MHz) struggles. I’ve also got a good link quality one floor below. Another floor down there is no reception at all. So this very short initial test shows better results for the new modules, but not that much better. Maybe the frequency (443MHZ vs. 868MHz) also influences the results.
Thanks for alerting us to the CW variant - unfortunately just after I ordered the W. I have since found out that the UK stockist doesn’t appear to hold the CW. I think that the RFM12B will continue to have a place alongside the CW, W & HW as I’m sure we will converge the libraries.
Just an update. Have redesigned the previous wireless pcb to incorporate the 4Mb flash chip, so that new sketches can be uploaded wirelessly. 5 volt / 3.3 volt compatibility is maintained, as one of the spare 74HC4050 buffers handles the flash chip CS. Also since the Hope RFM69HW/W module now comes with hole as well as edge connection, decided to use the holes in this design, should be more
robust. 2mm spaced header and socket design used to enable easy interchange of wireless modules. Have tested pcb using gateway and node example sketches and serial flash detected successfully. Attaching a couple of photos of completed pcb, please see fig(i) and
fig(ii). Also new Eagle schematic and pcb files attached. Wish I had a dollar for every time I have been caught out by 5 volt and 3.3 volt issues, seem to never learn
@JohnO, sorry for the delay in getting back to you but have been down in the Bellarine, for a while. Can’t provide close-up photos of a Moteino with 2mm socketing for the wireless module, as haven’t been able to come up with a suitable arrangement. I just soldered the wireless modules to the back of the Moteino pcb, as per standard procedure. Will have another look at the Moteino pcb over the next
couple of days and see if I can come up with something.
Just in time, they arrived today so I will go down the standard procedure rather than trash the Moteiono trying to be smart.
@JohnO, was walking along the beach this afternoon and an “eureka” moment. Thought of a way to easily use 2mm male and female
headers to attach the RFM69W/HW wireless module to the Moteino pcb. Pretty simple, just cut TWO 2.0mm 40 pin male headers to
eight pin lengths, bend the pins outward and then remove the pins that would not be needed to mate with the pcb pads. Solder
the remaining pins to the relevant eight Moteino pcb tabs. The header placement is specific for use with the the RFM69W/HW
module mounting holes. Obviously the profile is deeper than soldering the wireless module to the Moteino board but still a
pretty compact little number. I’m no “gun” solderer and don’t really want to play Russian Roulette with trying to desolder the
wireless modules, when they can simply be plugged in and out. Certainly intend to use this arrangement for any further Moteinos I
construct. Anyway, if nothing else, provides plausible options. Please see attached photos, fig(iv) through (7) for construction
Its looks great, although I know you are quite a gun with a soldering station. I struggled to solder my RFM69W in the standard way yesterday. All appeared fine but the flux hadn’t taken to the pad and no go. I finally spotted it with a multimeter and a flux pen helped resolve it. Perhaps I have been spoiled by @jcw’s lovely gold plated pads. I have only soldered one unit at present since I want it to talk to my RFM12B’s and am hoping its isolation will encourage it.
Its has gone quiet on the RFM69W front, I wonder if anyone has worked on RF12Demo using the RFM69W hardware. I spent a couple of days trying to get something to work but frustration and lack of ability dulled my enthusiasm.
A while back, I constructed a JeeNode Micro clone and was using it to sense and transmit , battery level, temperature, humidity and light levels (diurnal). This worked pretty well but due to limitations of the ATTINY84V and too many lost packets from the RFM12B
wireless module, I decided to look around for a replacement that would address these two issues. Ended up choosing a Moteino R4 and the Hope RFM69HW wireless module. Like with everything, yes I liked this combination, but … I wanted to tailor this combination to
my particular requirements , this is inevitable in an Open Source Hardware/Sofware environment and also designed and built a little
“Moteino Shield” , to pull everything together and provide a few extra features. This included provision for a rechargeable 1.2 volt NiMH battery to feed a LTC-3525 3.3 volt boost regulator, the inclusion of a standard ICSP header (great for setting those pesky fuses), a CPU reset button, provision for a 2 volt photovoltaic cell, to trickle charge the NiMH battery, a robust base for a SMA antenna and access to six analogue to digital channels (two of which double as TWI devices). Essentially, this provided all the features of the JeeNode Micro clone and quite a bit more thrown in.
Am attaching the Eagle schematic and Eagle hand-routed pcb files, plus a couple of photos of the unit and a couple of test sketches demonstrating a node/gateway set-up to sense 30, 10 bit analogue values at the node, then transmit the data wirelessly to the gateway. Eventually, I want to have a remote node collecting battery level, temperature, humidity and light levels and transmitting this to the gateway, exactly the same functionality as the old JeeNode Micro clone.
Hope this is of interest to others “out there” pondering a similar transition. My apologies for the virtual sea of solder flux in the
photos of the pcb trace, will have to get my trusty toothbrush and 2-propanol to work.
|Moteino BOOST v1.0.sch (712 KB) Moteino BOOST v1.0.sch|
|Moteino BOOST v1.0.brd (96.9 KB) Moteino BOOST v1.0.brd|
|Img_4204a.jpg (276 KB) Img_4204a.jpg|
|Img_4206a.jpg (251 KB) Img_4206a.jpg|
|Img_4208a.jpg (322 KB) Img_4208a.jpg|
|Img_4212a.jpg (478 KB) Img_4212a.jpg|
|RFM69Rx_07112013.ino (1.15 KB) RFM69Rx_07112013.ino|
|RFM69Tx_08112013.ino (912 Bytes) RFM69Tx_08112013.ino|
Nice work! The RFM69HW is a curious animal - the extra few dB punch on the transmitter looks attractive for extra range/penetration, but buried in the spec is a reference to staying strictly below 1% duty cycle. Turns out the extra output stage is squeezed on to the same tiny die as the RFM69W, so this is really a chip heating issue. There is no auto protection of the output stage(s).
The low duty cycle would fit many remote leaf node applications, but perhaps not a busy central ‘hub’, or while debugging ;-)
The command set includes the usual ability to reduce the output stage power in steps.
I seem to be doing a similar project:[[[http://bitknitting.wordpress.com/2013/12/26/air-sensor-node/]]]
I wish to add battery level. I realize “Google is my friend” however you mention you have this code in your sketch. I am hoping to learn from you.
Would you be willing to share your sketch?
Thanks for the comment concerning the RFM69HW wireless module. In reply, all I can say is that I have tested several of the RFM69HW modules by having them transmit at full power, every five seconds, over a two hour period. When I let my fingers do the walking over the two power amp chips on the wireless module, they certainly didn’t feel the least bit hot. Looks like this might be another case of spec sheet information and heurism being at odds? Don’t envisage using the RFM69HW at full power and as you state, the power output can be set in software but nice to know it has the option of extra “grunt”, if needed. Also, current pricing for the RFM69HW puts it about AUS \$1 more than the RFM69W, so to me makes no sense to buy the RFM69W. Can’t comment on the RFM69CWs, as don’t have a current pricing and haven’t played with this flavour.
From the prices I know, the W and CW are priced exactly the same and the H version is around €0,60 more expensive.
Good to see that hard work in Jeelabs continues, and that we will see a more powerfull RF solution in the near future as both the RFM12B and the cheap (with PCB antenna) nRF24L01 have some range troubles in my house which hopefully will get solved by these newer chips!
BTW plutonomore: do you get better range with the rubber duck antenna instead of the standard wire?
Thanks for the European RFM69 flavour price information. As far as those " rubber duck " antennae are concerned, I’m
attaching a photo with the relevant measured RSSI strengths, got to love the 69’s RSSI feature. Also attaching a
time-stamped log of the data (Excel csv) … just to give you some confidence this is real data. I will leave it to you
to answer your own question from the data provided. Nothing special about the antennae that I tested, they have been
randomly collected over the years. Also there are two coiled wire antennae shown in the photo but in reality the same
ONE was used when taking the –31dB and –37dB measurements. Interesting results as far as signal strength contribution
due to SMA adapter and signal strength due to various antennae themselves??
Also re-thinking MOTEINO BOOST v1.0 design. That little, almost microscopic, LTC-3525-3.3 SC 70 package worries me, too
small and too expensive. Also best sleep current draw when using it so far has been somewhere between 30 to 40uA. Have
read reported sleep current draw of about 6 to 7uA for the Moteino. Also, want to avoid having to use the BSH203 FETs.
Anyway, don’t be surprised to see a v1.1, anytime soon.
Good to see JeeLabs apparently are preparing a whole slew of new goodies for imminent future release … the more eclectic
the Open Hardware/Software players the better for everyone.
plutonomore: can you interpret the results for me? I’m having difficulties really matching what you tested with the values. In particular, I’m not sure about the differences between the two coiled wires. Also, did you try a straight wire?
Overall, what I don’t quite understand is that you have quite some traces between the RF69 antenna pad and the SMA connector. Maybe 2cm-3cm? Those traces are part of the antenna and so by the time you connect a rubber duck to the SMA connector your “total” antenna may not be in tune anymore at all. Or am I missing something?
Yes, if you add the pcb foil trace plus the header pin height you do get about a 2cm distance, unfortunately a casualty of the pcb design and yes, theory states this should be minimal. Bottom-line, first antenna and SMA adapter gave a RSSI of –29dB while the wire coil antenna attached directly to Moteino ANT pad and physically isolated from the 2cm run, gave an 8dB weaker RSSI of –37dB. Thing I found weird was there being no RSSI difference whether the wire antenna was attached to the SMA adapter or not. Also was surprised by the antennae dB variation. Sorry, didn’t try a straight wire, maybe do that another time.