RFM69hcw (arduino pro mini) not finding parent (esp8266)
-
I'm hoping someone can help me out. I've been using mysensors for some time now, but decided on switching to RFM69 transmitters because my nRF24 have been dropping signal intermittently (my guess: too many 2.4ghz wifi-networks in the area).
I have:
- a mqtt-gateway running on a ESP8266
- a node running on a Arduino Pro Mini that is battery powered (3v3)
Both are programmed using Arduino IDE 1.8.2. and are using the same Adafruit RFM69HCW breakout board.
My problem is that node cannot find it's parent. The GW seems to be receiving and answering the FPAR-request from the node. But the GW's answer isn't being received by the node.
The hardware should be fine. I've tested this exact setup with example code from the RadioHead-library and the two units can exchange messages with each other in both directions.
The logging on the GW:
16541 TSF:MSG:READ,2-2-255,s=255,c=3,t=7,pt=0,l=0,sg=0: 16599 TSF:MSG:BC 16617 TSF:MSG:FPAR REQ,ID=2 16646 TSF:PNG:SEND,TO=0 16671 TSF:CKU:OK 16689 TSF:MSG:GWL OK pm open,type:2 0 20558 !TSF:MSG:SEND,0-0-2-2,s=255,c=3,t=8,pt=1,l=1,sg=0,ft=0,st=NACK:0 20746 TSF:MSG:READ,2-2-255,s=255,c=3,t=7,pt=0,l=0,sg=0: 20804 TSF:MSG:BC 20822 TSF:MSG:FPAR REQ,ID=2 20851 TSF:CKU:OK,FCTRL 20875 TSF:MSG:GWL OK 24835 !TSF:MSG:SEND,0-0-2-2,s=255,c=3,t=8,pt=1,l=1,sg=0,ft=0,st=NACK:0 24953 TSF:MSG:READ,2-2-255,s=255,c=3,t=7,pt=0,l=0,sg=0: 25011 TSF:MSG:BC 25029 TSF:MSG:FPAR REQ,ID=2 25058 TSF:CKU:OK,FCTRL 25082 TSF:MSG:GWL OK 29153 !TSF:MSG:SEND,0-0-2-2,s=255,c=3,t=8,pt=1,l=1,sg=0,ft=0,st=NACK:0 29227 TSF:MSG:READ,2-2-255,s=255,c=3,t=7,pt=0,l=0,sg=0: 29286 TSF:MSG:BC 29303 TSF:MSG:FPAR REQ,ID=2 29332 TSF:CKU:OK,FCTRL 29356 TSF:MSG:GWL OK
The logging on the node:
__ __ ____ | \/ |_ _/ ___| ___ _ __ ___ ___ _ __ ___ | |\/| | | | \___ \ / _ \ `_ \/ __|/ _ \| `__/ __| | | | | |_| |___| | __/ | | \__ \ _ | | \__ \ |_| |_|\__, |____/ \___|_| |_|___/\___/|_| |___/ |___/ 2.3.2 208 MCO:BGN:INIT NODE,CP=RPNNA---,FQ=8,REL=255,VER=2.3.2 335 TSM:INIT 350 TSF:WUR:MS=0 368 RFM69:INIT 389 RFM69:INIT:PIN,CS=10,IQP=2,IQN=2,RST=9 434 RFM69:PTX:LEVEL=5 dBm 462 TSM:INIT:TSP OK 483 TSM:INIT:STATID=2 505 TSF:SID:OK,ID=2 526 TSM:FPAR 540 RFM69:SWR:SEND,TO=255,SEQ=0,RETRY=0 583 RFM69:CSMA:RSSI=-102 2611 ?TSF:MSG:SEND,2-2-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK: 4685 !TSM:FPAR:NO REPLY 4710 TSM:FPAR 4724 RFM69:SWR:SEND,TO=255,SEQ=1,RETRY=0 4769 RFM69:CSMA:RSSI=-104 6797 ?TSF:MSG:SEND,2-2-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK: 8873 !TSM:FPAR:NO REPLY 8898 TSM:FPAR 8912 RFM69:SWR:SEND,TO=255,SEQ=2,RETRY=0 8957 RFM69:CSMA:RSSI=-100 10985 ?TSF:MSG:SEND,2-2-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK: 13060 !TSM:FPAR:NO REPLY 13084 TSM:FPAR 13101 RFM69:SWR:SEND,TO=255,SEQ=3,RETRY=0 13146 RFM69:CSMA:RSSI=-101 15175 ?TSF:MSG:SEND,2-2-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK: 17250 !TSM:FPAR:FAIL 17270 TSM:FAIL:CNT=1 17293 TSM:FAIL:DIS 17313 TSF:TDI:TSL 17332 RFM69:RSL 27351 TSM:FAIL:RE-INIT 27373 TSM:INIT 27389 RFM69:INIT 27414 RFM69:INIT:PIN,CS=10,IQP=2,IQN=2,RST=9 27461 RFM69:PTX:LEVEL=5 dBm 27490 TSM:INIT:TSP OK 27514 TSM:INIT:STATID=2 27539 TSF:SID:OK,ID=2 27564 TSM:FPAR 27578 RFM69:SWR:SEND,TO=255,SEQ=0,RETRY=0 27625 RFM69:CSMA:RSSI=-105 29655 ?TSF:MSG:SEND,2-2-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK: 31729 !TSM:FPAR:NO REPLY 31754 TSM:FPAR 31770 RFM69:SWR:SEND,TO=255,SEQ=1,RETRY=0 31815 RFM69:CSMA:RSSI=-103 33845 ?TSF:MSG:SEND,2-2-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK: 35919 !TSM:FPAR:NO REPLY 35944 TSM:FPAR 35960 RFM69:SWR:SEND,TO=255,SEQ=2,RETRY=0 36005 RFM69:CSMA:RSSI=-99 38035 ?TSF:MSG:SEND,2-2-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK: 40110 !TSM:FPAR:NO REPLY 40134 TSM:FPAR 40151 RFM69:SWR:SEND,TO=255,SEQ=3,RETRY=0 40196 RFM69:CSMA:RSSI=-102 42225 ?TSF:MSG:SEND,2-2-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK: 44300 !TSM:FPAR:FAIL 44320 TSM:FAIL:CNT=2 44343 TSM:FAIL:DIS 44363 TSF:TDI:TSL 44382 RFM69:RSL
Relevant part of the node source-code:
#define MY_RADIO_RFM69 #define MY_RFM69_NEW_DRIVER #define MY_IS_RFM69HW #define MY_RFM69_FREQUENCY RFM69_433MHZ // Set your frequency here #define MY_RFM69_IRQ_PIN 2 #define MY_RFM69_IRQ_NUM MY_RFM69_IRQ_PIN #define MY_RFM69_CS_PIN 10 #define MY_RFM69_RST_PIN 9 #define MY_DEBUG // Enable debug prints to serial monitor #define MY_DEBUG_VERBOSE_RFM69 #define MY_RFM69_NETWORKID 101 #define MY_NODE_ID 2
Relevant part of the GW source-code:
// Enable debug prints to serial monitor #define MY_DEBUG // Use a bit lower baudrate for serial prints on ESP8266 than default in MyConfig.h #define MY_BAUD_RATE 9600 // Enables and select radio type (if attached) #define MY_RFM69_NEW_DRIVER #define MY_RADIO_RFM69 #define MY_RFM69_FREQUENCY RFM69_433MHZ #define MY_IS_RFM69HW #define MY_RFM69_IRQ_PIN D1 #define MY_RFM69_IRQ_NUM MY_RFM69_IRQ_PIN #define MY_RFM69_CS_PIN D8 #define MY_RFM69_RST_PIN D4 #define MY_RFM69_NETWORKID 101 #define MY_GATEWAY_MQTT_CLIENT #define MY_GATEWAY_ESP8266 #include <ESP8266WiFi.h>
I'm hoping that it's something I've overlooked. Any ideas?
-
@lvw are you really using the HW version of the RFM 69? If you don't, the TSP will init, but transmitting/receiving will not work.
It could be difficult to see on the module so that is something to check
Edit: and I guess you have checked if you really have the 433 MHz version
-
Hi Electrik, thanks for helping out.
For as far as I can see it's not indicated clearly on the RFM which frequency it operates. I did order a 433 mhz version, because I'm in Europe. And I set the demo-code I tried earlier on 433mhz and that worked. So should be fine indeed
Strange thing is also that the GW seems to receive the FPAR. That would also indicate that there is some successful transmitting/receiving going on.
It says on the breakout board that its a RFM69HCW. But nevertheless I tried disabling the MY_IS_RFM69HW option. But that didn't help also.
I'm very happy with the Mysensors infrastructure, so I would really like to keep using it. But currently I'm a bit at a loss
-
@lvw said in RFM69hcw (arduino pro mini) not finding parent (esp8266):
Strange thing is also that the GW seems to receive the FPAR. That would also indicate that there is some successful transmitting/receiving going on.
You're right about that. Do you have the possibility to change the module?
What kind of antennas are you using?
-
I only have these two modules, as it is my first try at using the rfm69's. I did try swapping them between GW and Node.
You could argue that if the node-transceiver is unable to receive, so that after swapping the GW would not be able to receive. But the result is the same: the GW seems to be able to receive the signal of the node, but the GW-response doesn't seem to be received by the node.
And also: if I flash the same setup with the TX- and RX-demo of the Radiohead library they can both send and receive each others messages. So that would seem to rule out a hardware problem, right?
So far it is unclear to me if either:
- the GW is failing to send correctly
- or the node is unable to receive (or interpret) correctly
I use a solid core antenna which I rolled around a pen to make it into a spring shape. See included pictures. The're about 16,5 mm in length.
The node:
!** The gateway **
-
I don't think this is a hardware issue like you said as well. I have no other ideas I'm afraid.
Maybe as last try, try a basic example to rule out your software?
-
Hello
Where is connected the RST pin of the radio board ? It seems to be connected to pin 9 of arduino.
On the connecting radio page, it's said : "* Adafruit modules need RST connected to GND".
Have you try it ?You could also try to add RFM69 trace.
#define MY_DEBUG_VERBOSE_RFM69 #define MY_DEBUG_VERBOSE_RFM69_REGISTERS
But I don't know how to read those debug traces...
Editing : I've not seen that it's already activated, sorryHope it could help, I'm still mysensors newbie
-
No luck so far. Thanks for all the advice!
For now I have decided to try something else end keep using nRF24 but switch from a ESP8266 gateway to one running on a Raspberry Pi.