We are mostly using fake nRF24L01+'s, but worse fakes are emerging.
-
You could buy your modules from Itead. They have promised us to only source genuine Nordic chips. They are a little higher in price/shipping but you could also take the opportunity to buy a MySensors Micro board to support the project :)
The ebay/aliexpress shops is a bit of a chance-taking as they might switch sourcing partner at any time.
@hek said:
You could buy your modules from Itead. They have promised us to only source genuine Nordic chips. They are a little higher in price/shipping but you could also take the opportunity to buy a MySensors Micro board to support the project :)
The ebay/aliexpress shops is a bit of a chance-taking as they might switch sourcing partner at any time.
Fair enough. I just now ordered some allegedly Itead NRF24L01+ modules from an Itead distributor, but I suppose there's a risk the distributor might get greedy and ship me something else. On a different thread, someone mentioned that the Itead modules each come in their own box. Would someone please post a photo of the individualized packaging for the Itead modles? If it's distinctive, it might serve as a kind of "certificate of authenticity." I realize that could be faked also, but it would make it a little harder for someone to fake, and so it's better than nothing.
-
Would the following might work as a way to separate good modules from bad modules, therefore also separate out the fakes?
- Set up a looping ping-pong link between two "known good" modules and measure the % packet losses.
- Unplug a reference module and then plug a test modules into the same setup. If the packet loss percentage is significantly worse, then the test module is either bad or a fake.
-
@hek said:
You could buy your modules from Itead. They have promised us to only source genuine Nordic chips. They are a little higher in price/shipping but you could also take the opportunity to buy a MySensors Micro board to support the project :)
The ebay/aliexpress shops is a bit of a chance-taking as they might switch sourcing partner at any time.
Fair enough. I just now ordered some allegedly Itead NRF24L01+ modules from an Itead distributor, but I suppose there's a risk the distributor might get greedy and ship me something else. On a different thread, someone mentioned that the Itead modules each come in their own box. Would someone please post a photo of the individualized packaging for the Itead modles? If it's distinctive, it might serve as a kind of "certificate of authenticity." I realize that could be faked also, but it would make it a little harder for someone to fake, and so it's better than nothing.
@NeverDie said:
Fair enough. I just now ordered some allegedly Itead NRF24L01+ modules from an Itead distributor, but I suppose there's a risk the distributor might get greedy and ship me something else. On a different thread, someone mentioned that the Itead modules each come in their own box. Would someone please post a photo of the individualized packaging for the Itead modles? If it's distinctive, it might serve as a kind of "certificate of authenticity." I realize that could be faked also, but it would make it a little harder for someone to fake, and so it's better than nothing.
Here's an image:
http://imall.itead.cc/media/catalog/product/cache/1/image/1800x/040ec09b1e35df139433887a97daa66f/i/m/im120606002_2.jpgCheers
Al -
@NeverDie said:
Fair enough. I just now ordered some allegedly Itead NRF24L01+ modules from an Itead distributor, but I suppose there's a risk the distributor might get greedy and ship me something else. On a different thread, someone mentioned that the Itead modules each come in their own box. Would someone please post a photo of the individualized packaging for the Itead modles? If it's distinctive, it might serve as a kind of "certificate of authenticity." I realize that could be faked also, but it would make it a little harder for someone to fake, and so it's better than nothing.
Here's an image:
http://imall.itead.cc/media/catalog/product/cache/1/image/1800x/040ec09b1e35df139433887a97daa66f/i/m/im120606002_2.jpgCheers
Al@Sparkman said:
@NeverDie said:
Fair enough. I just now ordered some allegedly Itead NRF24L01+ modules from an Itead distributor, but I suppose there's a risk the distributor might get greedy and ship me something else. On a different thread, someone mentioned that the Itead modules each come in their own box. Would someone please post a photo of the individualized packaging for the Itead modles? If it's distinctive, it might serve as a kind of "certificate of authenticity." I realize that could be faked also, but it would make it a little harder for someone to fake, and so it's better than nothing.
Here's an image:
http://imall.itead.cc/media/catalog/product/cache/1/image/1800x/040ec09b1e35df139433887a97daa66f/i/m/im120606002_2.jpgCheers
AlThanks! Pooling our information should reveal who the good vendors are.
After I receive the modules I ordered today, I'll post which vendor I purchased them from, the price, and whether or not I think they're real (i.e. what tests I ran to make that determination). I would encourage others to do the same.
-
Judging from the current banter on this other thread, it sounds as though if a module is powered directly from a fully charged battery pack (so that there's no voltage ripple) but it has fewer lost packets after installing a 10uF capacitor, then it's probably a fake.
I'm guessing you could make a test rig by soldering a capacitor across the Vcc and Ground legs of one of these:

Then just plug the module into it, and then it into the usual arduino socket that you'd ordinarily plug the module into.Would that work?
-
-
Explaining to a electronic newbie, how do I test them?
All i can do now is prette much see if they work or not within my house.I would be good if someone could create a little how-to so all can participate in these test.
Regards
Andreas -
Explaining to a electronic newbie, how do I test them?
All i can do now is prette much see if they work or not within my house.I would be good if someone could create a little how-to so all can participate in these test.
Regards
Andreas@sundberg84 said:
Explaining to a electronic newbie, how do I test them?
All i can do now is prette much see if they work or not within my house.I would be good if someone could create a little how-to so all can participate in these test.
Regards
AndreasSo far, I've mainly compared packet loss rates (as well as packet roundtrip times) for different types of modules. I think both are important, but if I had to pick just one or the other, I would pick packet loss rates.
I'm defining packet loss rate as: (# lost packets) divided by (total packets sent)
Anyone have ideas/opinions/thoughts/suggestions/recommendations as to whether there are better discriminating metrics to measure?
In terms of test setup, it would be ideal if the two arduinos running the test were screwed down to their test locations so that they couldn't be budged, so that almost the only thing that can change when testing different NRF modules is which NRF module is plugged into it. That way the antenna orientation will hopefully be effectively the same, or at least as close to that as we can hope to get without using an anachoic chamber--something which probably no one here would have access to.
-
I'm trying to get gc_supermarket to refund me or send working ones.. the nrf's I got from them, marked "GOOD QUALITY" has a range of a few meters in open space. Cap adds another meter or so.
I've ordered nrf's from itead too, hopefully good ones.@Stric said:
I'm trying to get gc_supermarket to refund me or send working ones.. the nrf's I got from them, marked "GOOD QUALITY" has a range of a few meters in open space. Cap adds another meter or so.
That sounds awful. Have you tried other channels and locations and power supplies to rule out heavy interference or noise? If none of that makes any difference, would you please post a photo? Perhaps someone will notice something distinctively different that we can then all use to hopefully avoid a similar disappointment.
Also, I suggest ordering a minimum of 3 modules (from whomever you order), rather than only two, just to rule out the chance possibility that a botched module is to blame. This is what I did on my most recent order. It wouldn't rule out the possibility of getting 2 botched modules in the same order, but the odds of that should be very small if only random luck is involved.
-
I also ordered those "good quality" from gc_supermarket. I havent made any test yet but on the chip it says NRF M, 24L01+ 1429AF
On my other radios it says 1242AF. -
It's a manufacturing date stamp. 29th week of 2014
Don't know what AF stands for. Anyone know?
-
@sundberg84 said:
Explaining to a electronic newbie, how do I test them?
All i can do now is prette much see if they work or not within my house.I would be good if someone could create a little how-to so all can participate in these test.
Regards
AndreasSo far, I've mainly compared packet loss rates (as well as packet roundtrip times) for different types of modules. I think both are important, but if I had to pick just one or the other, I would pick packet loss rates.
I'm defining packet loss rate as: (# lost packets) divided by (total packets sent)
Anyone have ideas/opinions/thoughts/suggestions/recommendations as to whether there are better discriminating metrics to measure?
In terms of test setup, it would be ideal if the two arduinos running the test were screwed down to their test locations so that they couldn't be budged, so that almost the only thing that can change when testing different NRF modules is which NRF module is plugged into it. That way the antenna orientation will hopefully be effectively the same, or at least as close to that as we can hope to get without using an anachoic chamber--something which probably no one here would have access to.
@NeverDie said:
@sundberg84 said:
Explaining to a electronic newbie, how do I test them?
All i can do now is prette much see if they work or not within my house.I would be good if someone could create a little how-to so all can participate in these test.
Regards
AndreasSo far, I've mainly compared packet loss rates (as well as packet roundtrip times) for different types of modules. I think both are important, but if I had to pick just one or the other, I would pick packet loss rates.
I'm defining packet loss rate as: (# lost packets) divided by (total packets sent)
Anyone have ideas/opinions/thoughts/suggestions/recommendations as to whether there are better discriminating metrics to measure?
In terms of test setup, it would be ideal if the two arduinos running the test were screwed down to their test locations so that they couldn't be budged, so that almost the only thing that can change when testing different NRF modules is which NRF module is plugged into it. That way the antenna orientation will hopefully be effectively the same, or at least as close to that as we can hope to get without using an anachoic chamber--something which probably no one here would have access to.
Hi @NeverDie,
As mentioned in another thread I'm (slowly) re-writing the RFToy code to use the MySensor lybrary instead. By doing so I believe that we can do a direct relation between MySencor configs and performance. (It will take a while as I'm waiting for the sensors to test the code)
Anyway I would like to make some question to better understand the tests being made and the scenarios.
Here it goes:- Does the RFToy code have the ACK messages activated?
- It is possible to detect when an ACK is received? (RFToy or MySensor libraries)
- How was defined the timeout of 8 micro seconds?
At the moment my concerns with the current code are:
- The value used for timeout (above mentioned 8ms)
- The measure of the RTT (Round trip time), by it's definition if the ACK messages are used the RTT should be the time difference between the first bit of the message sent and the first bit of the received ACK message
- The payload used being the max allowed of 32bit for one packet, does it not overflow? does this cause problems? (need to test)
- Is useless to compare if the received message is equal to the message sent as this (most probably) is handled by hardware (CRC check?)
- Is there a way to be sure that there is enough time for the receiver node to switch between modes (receiving/transmitting)?
Sorry for the long post and for the possible inaccuracy of my statements but this is my first contact with arduino so far, so I just hope to help and to learn with it.
Regards
-
@NeverDie said:
@sundberg84 said:
Explaining to a electronic newbie, how do I test them?
All i can do now is prette much see if they work or not within my house.I would be good if someone could create a little how-to so all can participate in these test.
Regards
AndreasSo far, I've mainly compared packet loss rates (as well as packet roundtrip times) for different types of modules. I think both are important, but if I had to pick just one or the other, I would pick packet loss rates.
I'm defining packet loss rate as: (# lost packets) divided by (total packets sent)
Anyone have ideas/opinions/thoughts/suggestions/recommendations as to whether there are better discriminating metrics to measure?
In terms of test setup, it would be ideal if the two arduinos running the test were screwed down to their test locations so that they couldn't be budged, so that almost the only thing that can change when testing different NRF modules is which NRF module is plugged into it. That way the antenna orientation will hopefully be effectively the same, or at least as close to that as we can hope to get without using an anachoic chamber--something which probably no one here would have access to.
Hi @NeverDie,
As mentioned in another thread I'm (slowly) re-writing the RFToy code to use the MySensor lybrary instead. By doing so I believe that we can do a direct relation between MySencor configs and performance. (It will take a while as I'm waiting for the sensors to test the code)
Anyway I would like to make some question to better understand the tests being made and the scenarios.
Here it goes:- Does the RFToy code have the ACK messages activated?
- It is possible to detect when an ACK is received? (RFToy or MySensor libraries)
- How was defined the timeout of 8 micro seconds?
At the moment my concerns with the current code are:
- The value used for timeout (above mentioned 8ms)
- The measure of the RTT (Round trip time), by it's definition if the ACK messages are used the RTT should be the time difference between the first bit of the message sent and the first bit of the received ACK message
- The payload used being the max allowed of 32bit for one packet, does it not overflow? does this cause problems? (need to test)
- Is useless to compare if the received message is equal to the message sent as this (most probably) is handled by hardware (CRC check?)
- Is there a way to be sure that there is enough time for the receiver node to switch between modes (receiving/transmitting)?
Sorry for the long post and for the possible inaccuracy of my statements but this is my first contact with arduino so far, so I just hope to help and to learn with it.
Regards
- It is possible to detect when an ACK is received? (RFToy or MySensor libraries)
When ACK/autoretry (ESB mode) is enabled, the transmit is not indicated as complete until an ACK is received or all retries are exhausted.
- The measure of the RTT (Round trip time), by it's definition if the ACK messages are used the RTT should be the time difference between the first bit of the message sent and the first bit of the received ACK message
People could define RTT in several ways for different purposes. You describe one way one could define it. For the most part tho people are going to measure the times between two events that are visible in the chip registers. So if you want the RTT for a message with an ACK (and no retries), you might measure the time from when the transmit is triggered, to the time that the chip considered it complete (ack received), which will be shortly after the last bit of the ACK is processed.
Another way to define RTT would involve a software ACK at a higher network level being received - master uC sends to slave uC, slave parses and sends a new packet to the master uC. Again, it's going to tend to be measured via the visible registered (from transmit fired to packet received).
- The payload used being the max allowed of 32bit for one packet, does it not overflow? does this cause problems? (need to test)
The nRF24L01+ has a maximum payload of 32 bytes (a protocol layered on top of that, like MySensors, may have it's own smaller maximum payload at that level, after its own protocol overhead). Not sure what you are asking but maybe NeverDie will.
- Is there a way to be sure that there is enough time for the receiver node to switch between modes (receiving/transmitting)?
If you are using hardware ACK, that switchover (primary transmitter into receive mode temporarily for receiving the ACK, primary receiver into transmit mode temporarily for sending the ack) is handled automatically, including the 130 uS or so needed to switch the radio. If you are using a software ACK, you would need appropriate delays and/or timeouts.
-
@Stric said:
I'm trying to get gc_supermarket to refund me or send working ones.. the nrf's I got from them, marked "GOOD QUALITY" has a range of a few meters in open space. Cap adds another meter or so.
That sounds awful. Have you tried other channels and locations and power supplies to rule out heavy interference or noise? If none of that makes any difference, would you please post a photo? Perhaps someone will notice something distinctively different that we can then all use to hopefully avoid a similar disappointment.
Also, I suggest ordering a minimum of 3 modules (from whomever you order), rather than only two, just to rule out the chance possibility that a botched module is to blame. This is what I did on my most recent order. It wouldn't rule out the possibility of getting 2 botched modules in the same order, but the odds of that should be very small if only random luck is involved.
-
@NeverDie Yes, I've tried various things. The modules from gc_supermarket were crap. I ordered 10, so it's not an "oops, you got a bad one".


1420JB.
In the ebay shop, the module PCB had markings. The ones I got had none.
@Stric Interesting as the ones I ordered from them are working great with good range. Mine do have the markings on the back. The problem with all of the eBay sellers (and likely the AliExpress ones too), is that they are just resellers and sometimes they change suppliers or will use multiple suppliers at the same time. I found gc_supermarket good to deal with. Did you ask them to refund your money or send replacements?
Cheers
AlPS My chips have the 1420JB markings as well, but the board itself is different and looks much higher quality than the ones you received so I'm wondering if the difference in performance that you are seeing is is actually caused by the board, rather than the chip.
-
@NeverDie said:
@sundberg84 said:
Explaining to a electronic newbie, how do I test them?
All i can do now is prette much see if they work or not within my house.I would be good if someone could create a little how-to so all can participate in these test.
Regards
AndreasSo far, I've mainly compared packet loss rates (as well as packet roundtrip times) for different types of modules. I think both are important, but if I had to pick just one or the other, I would pick packet loss rates.
I'm defining packet loss rate as: (# lost packets) divided by (total packets sent)
Anyone have ideas/opinions/thoughts/suggestions/recommendations as to whether there are better discriminating metrics to measure?
In terms of test setup, it would be ideal if the two arduinos running the test were screwed down to their test locations so that they couldn't be budged, so that almost the only thing that can change when testing different NRF modules is which NRF module is plugged into it. That way the antenna orientation will hopefully be effectively the same, or at least as close to that as we can hope to get without using an anachoic chamber--something which probably no one here would have access to.
Hi @NeverDie,
As mentioned in another thread I'm (slowly) re-writing the RFToy code to use the MySensor lybrary instead. By doing so I believe that we can do a direct relation between MySencor configs and performance. (It will take a while as I'm waiting for the sensors to test the code)
Anyway I would like to make some question to better understand the tests being made and the scenarios.
Here it goes:- Does the RFToy code have the ACK messages activated?
- It is possible to detect when an ACK is received? (RFToy or MySensor libraries)
- How was defined the timeout of 8 micro seconds?
At the moment my concerns with the current code are:
- The value used for timeout (above mentioned 8ms)
- The measure of the RTT (Round trip time), by it's definition if the ACK messages are used the RTT should be the time difference between the first bit of the message sent and the first bit of the received ACK message
- The payload used being the max allowed of 32bit for one packet, does it not overflow? does this cause problems? (need to test)
- Is useless to compare if the received message is equal to the message sent as this (most probably) is handled by hardware (CRC check?)
- Is there a way to be sure that there is enough time for the receiver node to switch between modes (receiving/transmitting)?
Sorry for the long post and for the possible inaccuracy of my statements but this is my first contact with arduino so far, so I just hope to help and to learn with it.
Regards
@Daniel-Oliveira said:
@NeverDie said:
@sundberg84 said:
Explaining to a electronic newbie, how do I test them?
All i can do now is prette much see if they work or not within my house.I would be good if someone could create a little how-to so all can participate in these test.
Regards
AndreasSo far, I've mainly compared packet loss rates (as well as packet roundtrip times) for different types of modules. I think both are important, but if I had to pick just one or the other, I would pick packet loss rates.
I'm defining packet loss rate as: (# lost packets) divided by (total packets sent)
Anyone have ideas/opinions/thoughts/suggestions/recommendations as to whether there are better discriminating metrics to measure?
In terms of test setup, it would be ideal if the two arduinos running the test were screwed down to their test locations so that they couldn't be budged, so that almost the only thing that can change when testing different NRF modules is which NRF module is plugged into it. That way the antenna orientation will hopefully be effectively the same, or at least as close to that as we can hope to get without using an anachoic chamber--something which probably no one here would have access to.
Hi @NeverDie,
As mentioned in another thread I'm (slowly) re-writing the RFToy code to use the MySensor lybrary instead. By doing so I believe that we can do a direct relation between MySencor configs and performance. (It will take a while as I'm waiting for the sensors to test the code)
Anyway I would like to make some question to better understand the tests being made and the scenarios.
Here it goes:- Does the RFToy code have the ACK messages activated?
- It is possible to detect when an ACK is received? (RFToy or MySensor libraries)
- How was defined the timeout of 8 micro seconds?
At the moment my concerns with the current code are:
- The value used for timeout (above mentioned 8ms)
- The measure of the RTT (Round trip time), by it's definition if the ACK messages are used the RTT should be the time difference between the first bit of the message sent and the first bit of the received ACK message
- The payload used being the max allowed of 32bit for one packet, does it not overflow? does this cause problems? (need to test)
- Is useless to compare if the received message is equal to the message sent as this (most probably) is handled by hardware (CRC check?)
- Is there a way to be sure that there is enough time for the receiver node to switch between modes (receiving/transmitting)?
Sorry for the long post and for the possible inaccuracy of my statements but this is my first contact with arduino so far, so I just hope to help and to learn with it.
Regards
You're asking the right questions. :smile:
I don't know to what extent ACK's played a role in Mirf, at least as far as the defaults were concerned as used in the RFToy Example. I suspect there were ACK's and retries too, but I never delved into, for instance, how many retries might be the default. On some other thread Zeph gave a good argument for doing the tests without any ACK's, and I believe he's right. Therefore, I wouldn't worry about how Mirf did it. Rather, consider how TBRH20 should do it instead.
The 8ms figure was simply a "magic number" I threw in based on initial observations. It was long enough that if there were going to be an echo packet received at all, it would be received in under 8ms. A smaller figure like 4ms or 5ms might have sufficed, but I threw in some extra headroom just to be sure, as I didn't want the next packet being sent, and possibly colliding with the previous echo packet. If after 8ms no echo packet is received, then the sent packet is declared lost and the lost packet counter is incremented. If ACK's are eliminated, then the timeout value could probably be driven much lower.
Hardware CRC checks can fail, and (I'm assuming they were turned on by Mirf as a default) definitely did. When they did, the packet difference counter got incremented and the binary representation of both the sent data and the received data were displayed for comparison. I don't know whether Mirf defaulted to CRC-8 or CRC-16. I'd suggest CRC-16, but that's me, and perhaps there's a good argument for something else that I'm not aware of.
-
@Stric Interesting as the ones I ordered from them are working great with good range. Mine do have the markings on the back. The problem with all of the eBay sellers (and likely the AliExpress ones too), is that they are just resellers and sometimes they change suppliers or will use multiple suppliers at the same time. I found gc_supermarket good to deal with. Did you ask them to refund your money or send replacements?
Cheers
AlPS My chips have the 1420JB markings as well, but the board itself is different and looks much higher quality than the ones you received so I'm wondering if the difference in performance that you are seeing is is actually caused by the board, rather than the chip.
-
@Sparkman I asked them what to do about the situation, and they said "we'll send 10 new". Should arrive soon..
@Stric Thanks, let us know what they send and how well they work. From what they told me, they are currently shipping the ones with the markings, so if your experience will show that as well, I'll order another batch or two from them.
Cheers
Al -
Hi,
I just received five NRF24L01+ clones (Si24R1) but on website it is reported and I did not realize it when I bought these modules...anyway is there a 'recipe' to have a Si24R1 working with MySensors ?
I tested them with ping-pong examples and they work fine... but if I try to use a Si24R1 with MySensors libraries it does not work..Starting sensor (RNNNA-, 2.0.0)
TSM:INIT
TSM:RADIO:OK
TSP:ASSIGNID:OK (ID=1)
TSM:FPAR
TSP:MSG:SEND 1-1-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc:
TSM:FPAR
TSP:MSG:SEND 1-1-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc:
TSM:FPAR
TSP:MSG:SEND 1-1-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc:
TSM:FPAR
TSP:MSG:SEND 1-1-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc:
!TSM:FPAR:FAIL
!TSM:FAILURE
TSM:PDT
TSM:INIT
TSM:RADIO:OK
TSP:ASSIGNID:OK (ID=1)
TSM:FPARThanks in advance,
Gennaro