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:NO REPLY 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 6039 TSF:MSG:PONG RECV,HP=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:READY:UPL FAIL,SNP 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,
Bill
-
@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.bill
-
@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.
Bill