Adafruit Feather 32u4 Radio with RFM69HCW Module

Hi all!!!
I am new to the Forum but I’ve been a user of the OpenEnergyMonitor for a few years now. My setup, just to give a little background is as such:

  • Solar panels on the roof, 4.6kW peak
  • 4.5kW nominal grid power (can draw up to 5kW)
  • emonbase (pi based) in the house collecting data and uploading to emoncms
  • emonTX reading current from grid and solar
  • a couple of emonTH, une inside the house and one outside
  • an emonGLCD in the living room.

Now the question… I bought a LED solar outdoor lamp to illuminate my steps when I come home late. it has a single cell 18665 lithium battery and a small solar panel to charge it. I wanted to monitor the voltage of this battery to understand how much the sun actually charges it. I thought I could do this with the little board in the subject. So i set it up, uploaded a sketch and started to transmit a packet of data with only the battery voltage. Problem is it does not show up. nor it receives anything from the rest of the sensors.
googling around it seems like the RFM69 has a different way of packaging the data that makes it incompatible with the RFM12. I tried to use jeelib in RFM69 compatibility mode but it hangs on initialisation (I think there is an issue with pin definitions here).

Initially I thought I’d buy a Jeenode to do the job, but then I steered to the feather because I could reuse that for another project once finished with this. probably the jeenode would have fit in right off the bat…

Do you have any advice?

I’ve read about the RFM69HCW being different, I think it was probably on the JeeLibs forum or a related place. It might have been this. We use the RFM69CW and this is directly compatible with the RFM12B in hardware, but it uses a totally different section of JeeLib even though the radio packet is identical in format.

I have extracted the transmit part of JeeLib and put it into a single file. It is only for the RFM69CW, so you would need to add or change the part that does the power settings to suit the HCW; you can have that if it will help. It’s pretty low-level code but very few function calls, so it should be easy to follow.

considering I’m very new to messing with libraries, if you could send me your mod that would be of great help for sure. I feared the solution would be to take the jeelib and modify it inside my sketch…


… or keep your own modified JeeLib!

This isn’t a library, it goes in the folder alongside your sketch. Note it’s transmit-only, but the message format is JeeLib and it should work into your emonBase.

The function calls are slightly different to JeeLib - you can change the group and NodeID with each message (but you won’t want that).

The area you need to look at, in conjunction with the data sheets (you’ll probably need the CW as well as your HCW to decode what’s there) is where RFPWR gets used in the set-up.

RFM69_TX.ino (6.0 KB)

Hi all ,
i’m also trying to get the adafruit feather with RFM69HCW working with emoncms.
the lowpowerlab library seems to work fine but jeelib is impossible…
i tried the RFM69_TX.ino , simulating a emonTX but still no response or message in emonhub log

i modified the code to include the power managament as done by the lowpowerlab but still nog luck

anyone else had any luck ?

I don’t understand what you mean there.

I don’t have a RFM69HCW, so there is little point in me looking at the code in detail, because I could not test it. What you must do is look at RFM69_TX.ino, and see what the settings in the file do to the RFM69CW. Most are commented, but you still need to understand the details as explained in the data sheet. Then look at the RFM69HCW data sheet, and decide which parameters need to be set to what values. Then modify RFM69_TX.ino accordingly. You may well need to add to the code.

You must keep the message content the same for interoperability with the remainder of your system.

The RFM69CW and RFM69HCW are functionally equivalent, with one exception - the HCW is a high-power version capable of greater transmit power than the CW. The transmit power level defaults of the HCW are on par with the CW, IIRC. One other difference is that they use a different pinout but if you bought it installed on a board you don’t need to care. Other than that the code should be compatible.