Node can present to gateway, but not pass data?

  • I have a project that I have spent a fruitless day trying to make work.
    Its a simple (or so I thought) Water Tank monitor that uses a Analog input from a Water level sensor and a BMP085 for Pressure and Temperature.

    I can get the unit to register with the gateway and send the Present message (which I can see in the gateway), but I cannot pass data to the gateway.
    I either get NACKs or it looses the Parent and re-requests.

    I have tries a heap of NRF24L01+ modules that I have on hand I have added 4.7uF with 0.1uF in parallel to the radios. I am currently using a known good radio that I previously used on a different sensor. Its an Ebyte (Red PCB series) - I bought them as they seemed to be the 'least fake' and the date codes don't match any of the known dodgy lots, together with good reviews. I also have a selection of Ebay specials, and some AliExpress black PCB units.

    At first I though it was an issue with my controller - IOBroker on Ubuntu, but I connected my Serial gateway directly to a WIN10 machine and ran MYSController and see the same issues.

    I am running on a Leonardo clone where the USB startup time means I miss a bit of the debugging traffic at the start.

    4020 TSM:FPAR
    4023 ?TSF:MSG:SEND,3-3-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
    4055 TSF:MSG:READ,0-0-3,s=255,c=3,t=8,pt=1,l=1,sg=0:0
    4056 TSF:MSG:FPAR OK,ID=0,D=1
    6025 TSM:FPAR:OK
    6025 TSM:ID
    6025 TSM:ID:OK
    6025 TSM:UPL
    6028 TSF:MSG:SEND,3-3-0-0,s=255,c=3,t=24,pt=1,l=1,sg=0,ft=0,st=OK:1
    6039 TSF:MSG:READ,0-0-3,s=255,c=3,t=25,pt=1,l=1,sg=0:1
    6040 TSM:UPL:OK
    6040 TSM:READY:ID=3,PAR=0,DIS=1
    6042 TSF:MSG:SEND,3-3-0-0,s=255,c=3,t=15,pt=6,l=2,sg=0,ft=0,st=OK:0100
    6054 TSF:MSG:READ,0-0-3,s=255,c=3,t=15,pt=6,l=2,sg=0:0100
    6057 TSF:MSG:SEND,3-3-0-0,s=255,c=0,t=17,pt=0,l=5,sg=0,ft=0,st=OK:2.3.2
    6061 TSF:MSG:SEND,3-3-0-0,s=255,c=3,t=6,pt=1,l=1,sg=0,ft=0,st=OK:0
    6105 TSF:MSG:READ,0-0-3,s=255,c=3,t=6,pt=0,l=1,sg=0:M
    6108 TSF:MSG:SEND,3-3-0-0,s=255,c=3,t=11,pt=0,l=18,sg=0,ft=0,st=OK:Water Tank Monitor
    6111 TSF:MSG:SEND,3-3-0-0,s=255,c=3,t=12,pt=0,l=3,sg=0,ft=0,st=OK:1.0
    6114 TSF:MSG:SEND,3-3-0-0,s=2,c=0,t=10,pt=0,l=0,sg=0,ft=0,st=OK:
    6166 TSF:MSG:SEND,3-3-0-0,s=0,c=0,t=6,pt=0,l=0,sg=0,ft=0,st=OK:
    6227 TSF:MSG:SEND,3-3-0-0,s=1,c=0,t=8,pt=0,l=0,sg=0,ft=0,st=OK:
    6228 MCO:REG:REQ
    6231 TSF:MSG:SEND,3-3-0-0,s=255,c=3,t=26,pt=1,l=1,sg=0,ft=0,st=OK:2
    6242 TSF:MSG:READ,0-0-3,s=255,c=3,t=27,pt=1,l=1,sg=0:1
    6242 MCO:PIM:NODE REG=1
    6243 MCO:BGN:STP
    START CODE - WifiWaterLevelWeather_BC_v5 - 25.01.21
    7249 MCO:BGN:INIT OK,TSP=0
    temperature = 30.70, pressure = 1010.31
    9796 !TSF:MSG:SEND,3-3-0-0,s=1,c=1,t=4,pt=7,l=5,sg=0,ft=0,st=NACK:1010.31
    12378 !TSF:MSG:SEND,3-3-0-0,s=0,c=1,t=0,pt=7,l=5,sg=0,ft=1,st=NACK:30.7
    16010 !TSF:MSG:SEND,3-3-0-0,s=2,c=1,t=6,pt=2,l=2,sg=0,ft=2,st=NACK:0
    temperature = 30.80, pressure = 1010.40
    48557 !TSF:MSG:SEND,3-3-0-0,s=1,c=1,t=4,pt=7,l=5,sg=0,ft=3,st=NACK:1010.40
    51139 !TSF:MSG:SEND,3-3-0-0,s=0,c=1,t=0,pt=7,l=5,sg=0,ft=4,st=NACK:30.8
    54771 !TSF:MSG:SEND,3-3-0-0,s=2,c=1,t=6,pt=2,l=2,sg=0,ft=5,st=NACK:0
    84773 TSM:FPAR
    87305 ?TSF:MSG:SEND,3-3-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=6,st=OK:
    temperature = 30.80, pressure = 1010.34
    87320 !TSF:SND:TNR
    87371 !TSF:SND:TNR
    88470 !TSF:SND:TNR
    118471 !TSM:FPAR:NO REPLY
    118471 TSM:FPAR
    121003 ?TSF:MSG:SEND,3-3-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
    121019 !TSF:SND:TNR
    121069 !TSF:SND:TNR
    122168 !TSF:SND:TNR
    152168 !TSM:FPAR:NO REPLY
    152169 TSM:FPAR
    154700 ?TSF:MSG:SEND,3-3-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
    temperature = 30.70, pressure = 1010.40
    154717 !TSF:SND:TNR
    154767 !TSF:SND:TNR
    155866 !TSF:SND:TNR
    185866 !TSM:FPAR:NO REPLY
    185866 TSM:FPAR
    188398 ?TSF:MSG:SEND,3-3-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
    temperature = 30.70, pressure = 1010.34
    188413 !TSF:SND:TNR
    188464 !TSF:SND:TNR
    189562 !TSF:SND:TNR
    219565 !TSM:FPAR:FAIL
    219565 TSM:FAIL:CNT=1
    219565 TSM:FAIL:DIS
    219566 TSF:TDI:TSL
    temperature = 30.70, pressure = 1010.43
    219580 !TSF:SND:TNR
    219630 !TSF:SND:TNR
    220729 !TSF:SND:TNR
    250730 TSM:FAIL:RE-INIT
    250730 TSM:INIT
    temperature = 30.70, pressure = 1010.46
    250744 !TSF:SND:TNR

    It looks like to loses the Parent Node as it tries to send to ID255 which I understand is a broadcast node.
    What I don't understand is how can do the presentation transaction to the parent node, but then cannot send find it to send the data?

    I have been tearing my hair out all day around this must be missing something obvious, but I can't seem to see it.
    Running v.2.3.2 of MySensors Library. Programming in the Arduino Web App v6.10.

    Thanks for any pointers,

  • Contest Winner

    @bcdaus it's always difficult to discover what is wrong. But 9 out of 10 radio issues are always power related. I'm by no means an expert in electronics. But based upon what I learned in here, the capacitor values you use are too low. You say you tried 4.7uF and 0.1uF. But the value I use is a 100uf capacitor. And I think that is what is being promoted to use. I've used 10uf capacitors in the past, but I think that was before MS 2.0. 100uf hasn't given me any troubles.

    I do notice sometimes, that sending multiple consecutive messages gives some troubles. So when I add a small delay in between it solves it. But I have to see your Sketch first to see if that might be a problem.

    Also how do you power the radio, do you use a separate regulator, or do you take the 3.3V from the arduino?

  • Thanks @TheoL - I'll try a larger Cap. There is a lot of different sized caps listed around the site and on people's projects.
    I just don't understand how it can register with the controller using 9 messages in a fast sequence with replies intertwined, and then fail when sending the general messages, which have delays of 50ms between the first two and 100ms between the third and the 4th.


  • Contest Winner

    @bcdaus my advise would be to try a larger capacitor. 100uf is working fine for me. Regarding to the differences in the projects. When I started out, 4.7uf was what most people used. But 10uf worked for all. If I'm not mistaking something has changed in the MS library years ago, which caused the radio to use a bit more power, but it made the communication better. So from that point on it is 100uf that most use. But not really sure if that is because of the change. As said I think I use 100uf for at least 4 years now.

    If it still doesn't work I need the schematic and the sketch. It is hard to help you without those,

  • @TheoL Agree with the others. I use 47uF on small nrf24l01+ and 100uF on the pa/lna ones. Also I always add wait(100); petween presentation and vetween message send functions. It gives the power a chance to stablilse and recharge the caps. This seems stable apart from occasional wiring working loose on dupont pins!

  • I am going to rework the system so it uses an Easy Pcb and a Pro Mini rather than the Leonardo board.
    I think I might be seeing a voltage drop in my point to point dupont wiring from the Arduino to the Radio.

    I'll update you all once I get a chance to make the change.


Suggested Topics

  • 3
  • 6
  • 37
  • 73
  • 3
  • 11
  • 4