Which are the *best* NRF24L01+ modules?
-
Hello,
I'm creating a "ping" sketch to measure the % of packet lost using the tmrh20 library. I will post it once it is finished but it is just a modification of the "GettingStarted" sketch.It is very simple:
- Node 1 send a value to node 2.
- Node 2 receive the message and send it back to node 1.
- Node 1 receive the message.
I'm measuring the number of packets lost and the turnaround time.
But doing some tests, I realised about something very strange that I don't understand...
Based on the sketch described above, both the node 1 and 2 are sending and receiving the same amount of data.
They both use the same commands to send and receive.
I have two hardware sensors/devices (let's call it A and B ) based on arduinos nano.When I use A as Node 1 it gets 0.2% of packets lost. (B is used as Node 2)
When I use B as Node 1 it gets 15% of packets lost!! (A is used as Node 2)Remember: Both nodes are sending and receiving the same amount of data.
I understand that the current, radio, noise, etc. might have an impact on the performance and range but why it is working fine on one way? And not in the other way? This is making me crazy. Both sensors are sending and receiving the same data. If one of them is not sending (or receiving) well, the performance still should be the same independent on who is acting as node 1 or 2.
What I am missing?
Thank you!
-
Hello,
I'm creating a "ping" sketch to measure the % of packet lost using the tmrh20 library. I will post it once it is finished but it is just a modification of the "GettingStarted" sketch.It is very simple:
- Node 1 send a value to node 2.
- Node 2 receive the message and send it back to node 1.
- Node 1 receive the message.
I'm measuring the number of packets lost and the turnaround time.
But doing some tests, I realised about something very strange that I don't understand...
Based on the sketch described above, both the node 1 and 2 are sending and receiving the same amount of data.
They both use the same commands to send and receive.
I have two hardware sensors/devices (let's call it A and B ) based on arduinos nano.When I use A as Node 1 it gets 0.2% of packets lost. (B is used as Node 2)
When I use B as Node 1 it gets 15% of packets lost!! (A is used as Node 2)Remember: Both nodes are sending and receiving the same amount of data.
I understand that the current, radio, noise, etc. might have an impact on the performance and range but why it is working fine on one way? And not in the other way? This is making me crazy. Both sensors are sending and receiving the same data. If one of them is not sending (or receiving) well, the performance still should be the same independent on who is acting as node 1 or 2.
What I am missing?
Thank you!
@afeno
Interesting asymmetry.This sounds basically the same as the sketch I posted earlier. Perhaps post a photo of the two nodes? Maybe something will jump out.
If you really want to solve it, try also
testing the packet loss on the individual links instead of only roundtrip. I suspect it will reveal something. -
Hello,
I thought it might be best to contribute to this thread rather then making a new one. I have some NRF24L01+ for like 2-3 years. Some of them are the normal ones and a few LNA+PA.
The following explanation requires some "advanced" knowledge about the RF24 library and the test-sketch I added. Please forgive me as I was not able to write a more simple sketch and explanation.
From day one I had problems using the modules at 250kbps with autoack. The Reception (RPD) was very poor and I had very high packet loss.
For a few days now I have been tinkering with mysensors and just recently noticed .. wait what???
250kbps + autoack is default.
As mysensors is not ideal for testing modules I used another well known library:
To get access to a very important register to debug autoack issues I modified "RF24.h" to get the low level functions public:
**public:** /** * @name Low-level internal interface. * * Protected methods that address the chip directly. Regular users cannot * ever call these. They are documented for completeness and for developers who * may want to extend this class. */After that I hooked up an single WS2812B-LED to pin 4 and tinkerd together a little test-sketch:
0_1469476423782_getting_started_250kbps_minimum2.zip
Note: You have to write the values 0 and 1 to EEPROM.Address 0 ONCE. 0 is the static pong back node and 1 is the mobile node with the WS2812B LED. This allows moving freely and check reception in your home.
After writing the values to the eeprom you can comment out the code and don't have to worry when uploading the sketch to the "pongback"-node or the mobile "ping" node.
//EEPROM.write(0,0); // 0 = PongBackIf you don't want to use the WS2812B you have to remove some code but that should not be too hard.
The important parts come now:
settings[autoack] = 0;
settings[retry] = 15;
settings[delay_rf] = 15;Disabling autoack I could get an improved reading of RDP and very little PacketLoss. I now can cover distanced much larger like through 2-3 walls more then before.
My modules are all powered from 3,3V dedicated LDO or 3V (2x AA) Battery and run @ 8MHz
Long story short:
If you have reception problems even after checking your Supply and even after trying the "ugly fix" and still got nowhere .. i suggest your try disabling auto ack. Although this it not intiutive on mysensors and would leave you vulnerable to packetloss I suggest you to test it out with this library (http://tmrh20.github.io/RF24/) and my example sketch.
Sorry for not presenting a whole solution but I thought it might be worth to point people having reception problems into one possible "direction".
PS: Autoack works fine on my modules if I switch to 1MBPS so this might be viable too.
-
At current date, is there anybody that can suggest a place to buy good NRF24 modules? I live in Italy so probably US shops would be a little expensive on shipping cost.
@gohan
I would not like to make a suggestion and rather reply my opinion on it:
The worst experience I made was with the probably original ones (greenish on reference design). Not that the reception was bad but 4-5 already broke during testing and had to be exchanged.
Therefore I buy the cheapest ones from GC supermarket or other big ALI-shops.
However if you want a amplified version, I would spent the extra dollar and get a premium one. I posted it here somewhere and really made good experiences with it. -
@gohan
I would not like to make a suggestion and rather reply my opinion on it:
The worst experience I made was with the probably original ones (greenish on reference design). Not that the reception was bad but 4-5 already broke during testing and had to be exchanged.
Therefore I buy the cheapest ones from GC supermarket or other big ALI-shops.
However if you want a amplified version, I would spent the extra dollar and get a premium one. I posted it here somewhere and really made good experiences with it. -
Just to add my 2cent .. I mainly use the LNA+PA ones (cheap from ebay) and complained some time for their "bad" performance.
Just recently I noticed they are quite nice but .. RF24_PA_MIN is your friend! I got nearly zero packet-loss ~20m (one wall between) with RF24_PA_MIN. This might just be a subjective opinion but as they only cost 2-3$ a piece they are a good option (at least for me).
Getting "genuin" chips for a reasonable price is very difficulty in germany.
-
Just to add my 2cent .. I mainly use the LNA+PA ones (cheap from ebay) and complained some time for their "bad" performance.
Just recently I noticed they are quite nice but .. RF24_PA_MIN is your friend! I got nearly zero packet-loss ~20m (one wall between) with RF24_PA_MIN. This might just be a subjective opinion but as they only cost 2-3$ a piece they are a good option (at least for me).
Getting "genuin" chips for a reasonable price is very difficulty in germany.
-
I ordered modules from ITEAD. They seem to have real nordic chips populated. Each module comes in paper box and ESD bag. The modules look like the cheap ebay stuff, but with 0402 components.
With these modules I got rid of my issue with repeated messages.
(https://forum.mysensors.org/topic/5588/multiple-messages-with-same-content-received) -
I ordered modules from ITEAD. They seem to have real nordic chips populated. Each module comes in paper box and ESD bag. The modules look like the cheap ebay stuff, but with 0402 components.
With these modules I got rid of my issue with repeated messages.
(https://forum.mysensors.org/topic/5588/multiple-messages-with-same-content-received) -
I checked the print and it is different to the cheap ones. But, I got genuine NRF24 chips (just the ICs) from mouser and this print is similar to the cheap ones!!??
Edit:
The print quality of cheap modules is not as good as genuine one and more space between dot and first line.
Genuine parts differ in little dot or square.ITEAD

IC from Mouser

Cheap Ali/ebay

-
I checked the print and it is different to the cheap ones. But, I got genuine NRF24 chips (just the ICs) from mouser and this print is similar to the cheap ones!!??
Edit:
The print quality of cheap modules is not as good as genuine one and more space between dot and first line.
Genuine parts differ in little dot or square.ITEAD

IC from Mouser

Cheap Ali/ebay

-
@cimba007
I think I read somewhere in a different thread on this forum that the PA+LNA ones work better if powered from a lower voltage.@NeverDie: In addition to using RF24_PA_MIN I power most of my nodes from 2x AA Alkaline Batteries .. so they have 2.2V - 3,0V VCC. This might contribute to my pretty good reception.
Earlier nodes used 3,3V LDO in connection with lithium-ion batteries. So I can't say what really improved my reception the most ... lowering the voltage or putting the RF24_PA_MIN.
-
@NeverDie: In addition to using RF24_PA_MIN I power most of my nodes from 2x AA Alkaline Batteries .. so they have 2.2V - 3,0V VCC. This might contribute to my pretty good reception.
Earlier nodes used 3,3V LDO in connection with lithium-ion batteries. So I can't say what really improved my reception the most ... lowering the voltage or putting the RF24_PA_MIN.
just for comparison, my "geniune" has also the same logo and the cheap one looks much "better" but one can see the bad production quality
top one is GC supermarket, bottom genuine

-
@NeverDie: In addition to using RF24_PA_MIN I power most of my nodes from 2x AA Alkaline Batteries .. so they have 2.2V - 3,0V VCC. This might contribute to my pretty good reception.
Earlier nodes used 3,3V LDO in connection with lithium-ion batteries. So I can't say what really improved my reception the most ... lowering the voltage or putting the RF24_PA_MIN.
@cimba007 said:
@NeverDie: In addition to using RF24_PA_MIN I power most of my nodes from 2x AA Alkaline Batteries .. so they have 2.2V - 3,0V VCC. This might contribute to my pretty good reception.
Earlier nodes used 3,3V LDO in connection with lithium-ion batteries. So I can't say what really improved my reception the most ... lowering the voltage or putting the RF24_PA_MIN.
Anyone know what the optimal voltage range is for running the PA_LNA versions? It would be good to know for future reference.
-
@karlheinz2000
The first 2 definitely look similar, but the top left logo doesn't look genuine to me. But actually I don't care much about being genuine or not, the import thing is how they perform in terms of reliability and range@gohan said:
@karlheinz2000
But actually I don't care much about being genuine or not, the import thing is how they perform in terms of reliability and rangeAgreed. And it's not just the chip that will determine that, but rather the entire ball of wax.
-
I ordered modules from ITEAD. They seem to have real nordic chips populated. Each module comes in paper box and ESD bag. The modules look like the cheap ebay stuff, but with 0402 components.
With these modules I got rid of my issue with repeated messages.
(https://forum.mysensors.org/topic/5588/multiple-messages-with-same-content-received)@karlheinz2000 @parachutesj @gohan It appeared to be pointless to compare markings of nRF24L01+ IC's to determine if they are genuine or not.
Nordic is fabless and uses different fabs to produce their IC's. Each fab will have a different way of marking the chips.I had a discussion with a Nordic representative in the past and even he could only say for sure if an IC was genuine or not by putting the part in X-Ray.
He had 3 different modules analyzed which I mailed to Nordic (China versions); all 3 appeared to be fakes...The blob ones however are fake for sure.
-
@karlheinz2000 @parachutesj @gohan It appeared to be pointless to compare markings of nRF24L01+ IC's to determine if they are genuine or not.
Nordic is fabless and uses different fabs to produce their IC's. Each fab will have a different way of marking the chips.I had a discussion with a Nordic representative in the past and even he could only say for sure if an IC was genuine or not by putting the part in X-Ray.
He had 3 different modules analyzed which I mailed to Nordic (China versions); all 3 appeared to be fakes...The blob ones however are fake for sure.
-
Since its impossible to determine if a radio is genuine, fake or even working (power consumtion in sleep mode for example) is there a good sketch and/or PCB to test the radio module?