I am trying to swap my system over to rfm69cw equipped nodes but the rfm69cw's seem to be reducing the rate of successful transmissions to make the system unusable.
I have an emontx V3.2 with rfm12b sending power and Wh data every 5 seconds to rfm12pi base. The emontx transmissions are also received by a FunkyV3 with rfm12b which acts on the spare solar power reported by the emontx and controls the power to my electric vehicle charger via the spi bus.The Funky V3 also receives the time from the rfm12pi and uses this to split the Wh import figure from the emontx into peak and off peak usage which it then transmits every 10 seconds to the rfm12pi base along with charger output etc. There is also two FunkyV2's transmitting temperature readings every 60 seconds to the rfm12pi base. Data transmissions for the above seem to get through reliably although the odd packet from the emontx to the FunkyV3 are lost which is why I wanted to change to the rfm69cw with the hope of reducing these lost packets.
When I change any or all of the above to rfm69cw radio modules the successful transmissions drop to every 20 seconds up to 10 minutes. I changed to emontxV3.4 with rfm69cw, rfm69pi base and FunkyV3 with rfm69 all located in exactly the same positions as rfm12b units yet I cannot achieve reliable reception unless I swap back to rfm12b.
I am running all the sketches with #define RF69_COMPAT 1 as the first line and with (I think) the latest Jeelib library suitable for each unit. Emonhub is not reporting any problems (emonhub debug mode and rfm69 quiet mode) but the data is still not getting through. Rssi is -37 for emontx to rfm69pi 1m apart and -55 for emontx to FunkyV3 4m and two walls apart. The emontx payload is 58 bytes so quite large, but would this be enough to cause the problem?
Any suggestions as to where to look next to solve this?
Re: RFM69cw data transmissions not getting through
I can think of two conditions when that makes some sense:
1. You have not exactly the same frequency and your receiver is now in a dead spot (more precisely, the dead spot has moved to where the receiver is!)
2. The greater transmitted power is actually overloading the receiver. I don't know what the RSSI numbers actually mean in practical terms (i.e. where the AGC can no longer cope!).
Re: RFM69cw data transmissions not getting through
I could move the rfm69pi further away from the emontx, which may cure the condition if No.2 is the cause. I'll give that a try tomorrow. Thanks for the suggestions.
Re: RFM69cw data transmissions not getting through
I'd also see if smaller payloads get through better; 58 byte payload could be more subjective to noise/interference.
Jeelib puts the RFM69CW in RFM12B compatibility mode, I am not sure how this may contribute to the issue you experience and would two RFM69CWs talk better among themselves than a RFM69CW to RFM12B.
I've been meaning to test Felix's native RFM69 library and compare performance against Jeelib; https://github.com/LowPowerLab/RFM69
Re: RFM69cw data transmissions not getting through
I've got that (LowPowerLab/RFM69) too, but not used it/tested it yet, because we've got problems with the 3-phase sketches ever since JeeLib had the RFM69 capability added. I've no proof, but I strongly suspect that the expanded JeeLib has created memory issues. I made an RFM12B version of the sketch using SPI to send raw commands to the RFM12B, and the problem went away.
My intention was to do the same with the RFM69CW, but it might well be worth trying the library first/as well.
Re: RFM69cw data transmissions not getting through
I tried LowPowerLab's library with couple Funky V3s equipped with RFM69CWs, works very well. I had the transmitting one in my kitchen and walked with the receiving one in and around the house and was able to get reception in a shack at the far end of the yard. Imressed. RFM12B could never go that far.
Here is the code I used:
https://github.com/mharizanov/new_Funky/tree/master/examples/LowPowerLab...
Re: RFM69cw data transmissions not getting through
I'd read a blog post by 'TheArduinoGuy' who had switched to the LowPowerLabs library after having data transmission problems with the rfm69cw using jeelib library. I still have a couple of FunkyV2's with rfm12b's running in low power mode so would need to keep the RFM69pi running in COMPAT mode. Would I be able to switch the emontx and FunkyV3 that were on RFM69cw's to full RFM69 mode using the LowPowerLab library whilst still running the RFM12pi in COMPAT mode with the RFM12b FunkyV2's?
Today I put the emontx sketch payload temporarily up to 66 bytes to try and debug it and then read Martins post about trying a smaller payload. It seems to be working ok at 66 bytes with rfm12b system and I've decreased the rf transmission interval of the emon tx to every second which may be helping reduce the number of 30 second gaps in successful receives or it could just be due to better conditions today, difficult to tell.
Re: RFM69cw data transmissions not getting through
LowPowerLabs and JeeLib do not use the same message format, therefore you cannot use both on the same network.
However, I think it would not be too difficult to add a function LowPowerLabs library to construct a message in JeeLib format, for compatibility.