NRF24L01+ range of only few meters
-
[Update for future generation]
I think I found my issue. It was the large transceiver see image below, with power amplifier and external antenna.
Once I replaced both receiver and transmitter with identical units, range got significantly better.
60m clear sight and almost whole house through multiple walls.For whatever reason small unit can't hear ACK from the PA unit. I tried to reduce power on the PA end to
radio.setPALevel(RF24_PA_MIN);but it did not seem to have any effect. My best guess now is that oscillator on the PA unit is slightly off. PCB antenna unit is battery powered.
Power source to arduino UNO that drives PA unit is good, 5V less that 2mV ripple. The transceiver is powered via 3V3 output (onboard regulator) of UNO though, could it be the problem?@Igor-Katkov said:
I think I found my issue. It was the large transceiver see image below, with power amplifier and external antenna.
I have had issues with my NRF radio like the one you mention here. I'm not sure about range issues but it totally stopped my Z-Wave network from communicating. It was easier for me to just use one of the smaller radios instead of doing further troubleshooting. I know there are some other threads (that I can't think of off the top of my head) where users have found that shielding it has helped. Also, as @Oitzu said, try powering it from a separate 3.3v source instead of from the Uno.
-
@petewill about shielding: you should have looked on the link http://blog.blackoise.de/2016/02/fixing-your-cheap-nrf24l01-palna-module/ . I explained it that often that i decided to write a blog article about it. :P
@Oitzu Awesome! I have one of these sitting in a drawer because of all the issues it caused me. :) I may need to pull it out and try your method one of these days. For now I have been getting by with the external hack but I'm sure I'll want further range at some point...
-
This is great info. I actually had great luck with the chip antenna version with a mini pro and an UNO, and the range I wanted was just not there. I moved to the one with the PA+ ext antenna, and having a strange issue. If I swap out the chip antenna version for the PA+ ext antenna version on the mini pro, it only sends packets if I am physically touching the nRF board itself with my finger. The one connected to the UNO does not have this issue. It seems to be grounded sufficiently (only the GND pin on the nRF connector), and I changed the power source from the FTDI module to a separate 3.4V source with no difference in this behavior. Any ideas?
-
This is great info. I actually had great luck with the chip antenna version with a mini pro and an UNO, and the range I wanted was just not there. I moved to the one with the PA+ ext antenna, and having a strange issue. If I swap out the chip antenna version for the PA+ ext antenna version on the mini pro, it only sends packets if I am physically touching the nRF board itself with my finger. The one connected to the UNO does not have this issue. It seems to be grounded sufficiently (only the GND pin on the nRF connector), and I changed the power source from the FTDI module to a separate 3.4V source with no difference in this behavior. Any ideas?
@pkjjneal said:
it only sends packets if I am physically touching the nRF board itself with my finger.Also read: http://blog.blackoise.de/2016/02/fixing-your-cheap-nrf24l01-palna-module/
Its a typical behaviour i observed on badly shielded modules. -
Typically you point it up. It gives you vertical polarization.
You point both transmitter and received wire antennas same directions.
It's possible that your chips are at fault, if non of other tricks worked (capacitors, clear power, enough current, short wires, lo-noise rf spectrum channel) try other transceivers. -
@pkjjneal said:
it only sends packets if I am physically touching the nRF board itself with my finger.Also read: http://blog.blackoise.de/2016/02/fixing-your-cheap-nrf24l01-palna-module/
Its a typical behaviour i observed on badly shielded modules.@Oitzu So I covered the nRF module in plastic and foil to create the shield. Previously, I had to touch a specific part of the board. Now I just touch any part of the foil, and it starts working. Makes sense, but I still cannot get transmissions without touching with my finger. I did try grounding the foil to the Arduino ground, but no change. The behavior makes me think I am on the correct path. Any other suggestions?
-
@pkjjneal would try to let the foil touch the ground from the antenna socket.
Grounding the foil on the arduino probably creates a ground loop.May also try to add a filter.
@Oitzu
I though antenna ground and MCU ground is the same thing -
Typically you point it up. It gives you vertical polarization.
You point both transmitter and received wire antennas same directions.
It's possible that your chips are at fault, if non of other tricks worked (capacitors, clear power, enough current, short wires, lo-noise rf spectrum channel) try other transceivers.@Igor-Katkov said:
It's possible that your chips are at fault, if non of other tricks worked (capacitors, clear power, enough current, short wires, lo-noise rf spectrum channel) try other transceivers.
I've tried the cling wrap and tin foil trick - this seems to have worked. Was getting 5m or so, now I"m getting constant readings from one side of the house to the other (through multiple walls!). 20m
Update: Just as I posted this the sensor stopped working :(
I'm really having major reliability issues with these sensors and am thinking of scrapping them altogether now. Its a pity these are such a hit and miss affair.
-
@Igor-Katkov said:
It's possible that your chips are at fault, if non of other tricks worked (capacitors, clear power, enough current, short wires, lo-noise rf spectrum channel) try other transceivers.
I've tried the cling wrap and tin foil trick - this seems to have worked. Was getting 5m or so, now I"m getting constant readings from one side of the house to the other (through multiple walls!). 20m
Update: Just as I posted this the sensor stopped working :(
I'm really having major reliability issues with these sensors and am thinking of scrapping them altogether now. Its a pity these are such a hit and miss affair.
My guess is if the sensors work and suddenly stop, you have something else interfering with the radios. Could be a microwave, AC unit, etc.
I about gave up on this project last year. I had several units built that worked fine and then one day all of them quit. After several frustrating weeks, I discovered my wifi router somehow was interfering with the units. It was an old unit and I needed to replace it. After it was gone, everything went back to working correctly.
-
@gmccarthy don't give up. You seem to be on the right track and already got great results. :+1:
Maybe go bare bones and try the rf24 scanner,
https://maniacbug.github.io/RF24/scanner_8pde-example.html
to find the best nrf24 channel for your. :) -
@gmccarthy don't give up. You seem to be on the right track and already got great results. :+1:
Maybe go bare bones and try the rf24 scanner,
https://maniacbug.github.io/RF24/scanner_8pde-example.html
to find the best nrf24 channel for your. :) -
@Oitzu said:
@gmccarthy don't give up. You seem to be on the right track and already got great results.
Maybe go bare bones and try the rf24 scannerThanks. This looks interesting. Will give it a shot.
@gmccarthy As far as I know, NRF channels above 100 should not have interference from Wifi 2.4 Ghz. I was getting 2-3 meters at best. I changed the channel to 110 and corrected the power supply a little. I am yet to implement cling wrap.
I get 10-15 meters between two standard modules inside an apartment. The apartment is like a faraday cage and sometimes I cannot get wifi on the outer extremes while router is in the middle. I am getting sensor readings from one end to the other now, passing through the area where I have the router. So, I think interference is critical in distance.
-
Hey guys I seem to have similar (but even worse) problems here. I am building a rgbwController and have huge problems connecting that to my gateway although it's only ~3m and no obstacle away.
I am using 4,7uF caps on both sides. Stepdown from 12V + another cap on the rgbwController's side and the arduino uno's 3.3V on the other side. I also tried another external 3.3V power source here (but that did not help either).
I tried changing the channel to 111 but that seems to have made it even worse.Any ideas how to debug that or what to change?
It's really sad to have the setup up and running and then being unable to really use it due to radio problems ;( -
@LastSamurai Which nrf24l01+ modules are you using on which side?
Whats the typical error pattern you get? (Failed transmission from gw to node or from node to gw?)
Need to know your exact construction, before guessing what could be wrong. -
@LastSamurai Which nrf24l01+ modules are you using on which side?
Whats the typical error pattern you get? (Failed transmission from gw to node or from node to gw?)
Need to know your exact construction, before guessing what could be wrong.@Oitzu
I am using the "standard" ones on both sides ("sodial" ones. I think these). My logs from the controller from my thread look like this:0;0;3;0;9;send: 0-0-123-123 s=1,c=1,t=2,pt=0,l=1,sg=0,st=fail:1 0;0;3;0;9;read: 123-123-0 s=1,c=1,t=2,pt=0,l=1,sg=0:1 123;1;1;1;2;1 0;0;3;0;9;send: 0-0-123-123 s=1,c=1,t=2,pt=0,l=1,sg=0,st=fail:1 0;0;3;0;9;send: 0-0-123-123 s=1,c=1,t=2,pt=0,l=1,sg=0,st=fail:0 0;0;3;0;9;send: 0-0-123-123 s=1,c=1,t=2,pt=0,l=1,sg=0,st=fail:1 0;0;3;0;9;send: 0-0-123-123 s=1,c=1,t=2,pt=0,l=1,sg=0,st=fail:1 0;0;3;0;9;send: 0-0-123-123 s=1,c=1,t=2,pt=0,l=1,sg=0,st=fail:0 0;0;3;0;9;send: 0-0-123-123 s=1,c=1,t=2,pt=0,l=1,sg=0,st=ok:1 0;0;3;0;9;send: 0-0-123-123 s=1,c=1,t=2,pt=0,l=1,sg=0,st=fail:0 0;0;3;0;9;read: 123-123-0 s=1,c=1,t=2,pt=0,l=1,sg=0:0 123;1;1;1;2;0 0;0;3;0;9;send: 0-0-123-123 s=1,c=1,t=2,pt=0,l=1,sg=0,st=fail:1 0;0;3;0;9;send: 0-0-123-123 s=1,c=1,t=2,pt=0,l=1,sg=0,st=ok:0 0;0;3;0;9;read: 123-123-0 s=1,c=1,t=2,pt=0,l=1,sg=0:0 123;1;1;1;2;0 0;0;3;0;9;send: 0-0-123-123 s=1,c=1,t=2,pt=0,l=1,sg=0,st=ok:1 0;0;3;0;9;read: 123-123-0 s=1,c=1,t=2,pt=0,l=1,sg=0:1 123;1;1;1;2;1 0;0;3;0;9;send: 0-0-123-123 s=1,c=1,t=2,pt=0,l=1,sg=0,st=fail:0 0;0;3;0;9;read: 123-123-0 s=1,c=1,t=2,pt=0,l=1,sg=0:0 123;1;1;1;2;0 0;0;3;0;9;send: 0-0-123-123 s=1,c=1,t=2,pt=0,l=1,sg=0,st=fail:1 0;0;3;0;9;send: 0-0-123-123 s=1,c=1,t=2,pt=0,l=1,sg=0,st=fail:0 0;0;3;0;9;send: 0-0-123-123 s=1,c=1,t=2,pt=0,l=1,sg=0,st=fail:1 0;0;3;0;9;send: 0-0-123-123 s=1,c=1,t=2,pt=0,l=1,sg=0,st=fail:0 0;0;3;0;9;send: 0-0-123-123 s=1,c=1,t=2,pt=0,l=1,sg=0,st=fail:1 0;0;3;0;9;send: 0-0-123-123 s=1,c=1,t=2,pt=0,l=1,sg=0,st=fail:0 0;0;3;0;9;send: 0-0-123-123 s=1,c=1,t=2,pt=0,l=1,sg=0,st=fail:1 0;0;3;0;9;send: 0-0-123-123 s=1,c=1,t=2,pt=0,l=1,sg=0,st=fail:0 0;0;3;0;9;read: 123-123-0 s=1,c=1,t=2,pt=0,l=1,sg=0:0 123;1;1;1;2;0 0;0;3;0;9;send: 0-0-123-123 s=1,c=1,t=2,pt=0,l=1,sg=0,st=fail:1 0;0;3;0;9;send: 0-0-123-123 s=1,c=1,t=2,pt=0,l=1,sg=0,st=ok:0 0;0;3;0;9;read: 123-123-0 s=1,c=1,t=2,pt=0,l=1,sg=0:0 123;1;1;1;2;0 0;0;3;0;9;send: 0-0-123-123 s=1,c=1,t=2,pt=0,l=1,sg=0,st=fail:1 0;0;3;0;9;read: 123-123-0 s=1,c=1,t=2,pt=0,l=1,sg=0:1 123;1;1;1;2;1 0;0;3;0;9;send: 0-0-123-123 s=1,c=1,t=2,pt=0,l=1,sg=0,st=fail:1 0;0;3;0;9;send: 0-0-123-123 s=1,c=1,t=41,pt=0,l=9,sg=0,st=fail:#00000 0;0;3;0;9;read: 123-123-0 s=1,c=1,t=41,pt=0,l=9,sg=0:#000000FF 123;1;1;1;41;#000000FF 0;0;3;0;9;send: 0-0-123-123 s=1,c=1,t=3,pt=0,l=3,sg=0,st=fail:100 0;0;3;0;9;send: 0-0-123-123 s=1,c=1,t=2,pt=0,l=1,sg=0,st=fail:0 0;0;3;0;9;read: 123-123-0 s=1,c=1,t=2,pt=0,l=1,sg=0:0 123;1;1;1;2;0 0;0;3;0;9;send: 0-0-123-123 s=1,c=1,t=2,pt=0,l=1,sg=0,st=fail:1 0;0;3;0;9;read: 123-123-0 s=1,c=1,t=2,pt=0,l=1,sg=0:1 123;1;1;1;2;1Sometimes I get a fail message but the lights are reacting (so I guess the ack didn't reach the gateway). I wasn't able to debug the rgbw controller in its position yet because it's sitting on top of a cupboard.
If you need more infos just tell me.I'll try out another arduino as gateway later.
PS according to this post they might be "fake" though ;) Although others seemed to have used them for mysensors too (comments)