Possible Bug using Authentic Nordic nRF24L01+ Module



  • I've been using the nRF24L01+ modules I purchased from China (which are most likely clones) along with the Sense Bender Micro as Temperature Sensor Nodes for a few months and they seem to be working ok.

    I recently received some "official samples" of the nRF24L01+ modules directly from a Nordic Rep here in the U.S. When I replace the Chinese modules with the Nordic modules they do not work - No response from the Node while monitoring the gateway. I am running the exact same software for the SenseBender Micro.

    I spoke to the Nordic rep and he indicated that there are some subtle differences between the authentic and clone versions and suspects that it is a software issue on the Sensbender PCB.

    For testing, I hooked up the Nordic module to my gateway Arduino and it worked fine. So I would assume the same conclusion that there is a bug in the SenseBender code.


  • Mod

    @tcontrada could very well be that the modules are simply incompatible. 2 authentic nRF modules will work correctly and 2 fake ones, but when you start to mix them things won't work.
    I tested a combination of fakes and authentic modules and it worked flawlessly with MySensors, but your mileage may vary.
    If you have some spare time, take a look at these two threads:
    https://forum.mysensors.org/topic/1664/which-are-the-best-nrf24l01-modules
    https://forum.mysensors.org/topic/1153/we-are-mostly-using-fake-nrf24l01-s-but-worse-fakes-are-emerging



  • I can use the Nordic as a Gateway and it works fine with the Chinese that are running the code on the SenseBender module....That's not the issue.

    The issue is, in my opinion, that there is a minor bug in the SenseBender code as that is where the Nordic modules are failing. Basically the code works with the Chinese version, but does not with the authentic Nordic.

    -Tony


  • Mod

    @tcontrada what does the serial debug output on the node say when you use the genuine radios?



  • The debug looks normal as far as I can tell.
    But appears nothing is getting transmitted??

    any suggestions?

    -Tony


  • Admin

    @tcontrada

    Have you updated the firmware on the sensebender? (they still ship with mysensors 1.4, because someone has been very "lazy" :))



  • I will check tomorrow morning. What is the latest version?
    And do any of the libraries need updating?



  • @tbowmo Where is the link to download the updated sketch??



  • @tbowmo OK, I got ver 1.5.4 loaded and it's still failing with the authentic Nordic module.
    Here is the output from the serial debug.

    Sensebender Micro FW 1.3send: 4-4-0-0 s=255,c=3,t=15,pt=2,l=2,sg=0,st=fail:0
    send: 4-4-0-0 s=255,c=0,t=17,pt=0,l=5,sg=0,st=fail:1.5.4
    send: 4-4-0-0 s=255,c=3,t=6,pt=1,l=1,sg=0,st=fail:0
    sensor started, id=4, parent=0, distance=1

    • Online!
      send: 4-4-0-0 s=255,c=3,t=11,pt=0,l=17,sg=0,st=fail:Sensebender Micro
      send: 4-4-0-0 s=255,c=3,t=12,pt=0,l=3,sg=0,st=fail:1.3
      send: 4-4-0-0 s=7,c=0,t=6,pt=0,l=0,sg=0,st=fail:
      find parent
      send: 4-4-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,st=bc:
      send: 4-4-0-0 s=8,c=0,t=7,pt=0,l=0,sg=0,st=fail:
      send: 4-4-0-0 s=199,c=0,t=13,pt=0,l=0,sg=0,st=fail:
      isMetric: 0
      TempDiff :181.00
      HumDiff :146.00
      T: 76.59
      H: 46
      send: 4-4-0-0 s=7,c=1,t=0,pt=7,l=5,sg=0,st=fail:76.6
      Battery: 4850
      send: 4-4-0-0 s=199,c=1,t=38,pt=4,l=4,sg=0,st=fail:4850
      TempDiff :4.41
      HumDiff :0.00
      T: 76.59
      H: 46
      send: 4-4-0-0 s=7,c=1,t=0,pt=7,l=5,sg=0,st=fail:76.6


  • @tbowmo Also, here is some info that I got from Nordic Tech Support

    "The re-marked nRF24L01P (+) clones are not 100% register compatible. The issue with the counterfeit devices is that when they enabled “Dynamic Payload Length” (EN_DPL) in the “FEATURE” register, one bit get’s activated in the on-air payload (the NO_ACK bit) This bit should be active high (according to the Nordic datasheet), but it’s actually implemented the other way around. When EN_DPL is activated, the NO_ACK bit get reversed in the real nRF-devices. They did such a good job of cloning they cloned the datasheet error into the device!!!
    If someone is using the fake parts on both ends it will work to some degree. In a mixed environment where you may have both real L01P and the fake ones you will have issues. But don’t look to be fully “compatible” with the real nRF24L01P firmware wise. And on a side note, As the nRF24LE1 and nRF24LU1P both use the nRF24L01P radio this makes the counterfeit parts incompatible with those as well.


  • Mod

    @tcontrada that's exactly the point I made in my post.
    Anyway, all modules I have work together, fake and genuine ones, so that statement certainly isn't true for all fakes.
    Furthermore the on-air format cannot be controlled from register settings, so IMHO configuration of nRF by MySensors library is according to spec.



  • @Yveaux Are you using the code for the SenseBender Micro?

    why is the debug above indicating failure in 5 of the debug outputs for the genuine Nordic modules and no failures for the Chinese modules?


  • Admin

    The error you're seeing means node doesn't hear the ack message sent back from the receiver. As @Yveaux said, you might have to switch to genuine radios on both places to get a correct ack-behaviour.



  • I can try a Nordic Module on my Gateway. But I am actually using one of the high power radios on the gateway, which I may assume it has the Chinese chip instead of the Nordic one.

    If it does work, then I will need a high power radio with an authentic Nordic chip, it that is even available. If so let me know..

    I will get back with the test shortly...



  • @hek I did the test here is the result.

    While the Nordic radio is connected to the gateway it receives the data from all the Chinese radios, no problem.

    When I connect the Nordic module to one of the SenseBender modules I do not receive any data according to the gateway debug whether it has the Nordic or Chinese module.

    So it appears that the Nordic and the Chinese can communicate, but the Nordic appears not to work when only connected to the Sensebender module. So I suspect something going on there?


  • Mod

    @tcontrada said:

    So it appears that the Nordic and the Chinese can communicate,

    At least that rules out the bull from the Nordic guys 😆



  • @Yveaux I'm not a big fan of companies stealing the design of another company which has put time and resources into the development of a chip.

    I only want to use genuine Nordic products in my sensor network. That said, I think that some work needs to be done on why the SenseBender appears to have an issue operating with the Nordic module. I hope that the responsible folks will step up and make this work.

    Let me know if I can do any other testing as I'd like to get this issue resolved ASAP.

    Thanks,
    Tony



  • @hek One should be able to change the Auto ACK register on one of the sides to make it work correctly. (If that is the type of clone being used as various clones have various differences) But that would mean tight control of what modules are being used with what firmware on what side of the link.

    RF Digital makes a real nRF24L01P based module however it is more pricey then the Chinese knock offs. But if you only need a few of them then at least you know you are getting the real McCoy.

    Has header and SMA connector
    RFD21711

    Has PCB antenna and header
    RFD21712

    This has no header and no SMA connector
    RFD21716
    The Nordic Website has all the Gerbers for this module in case you wish to roll your own.
    http://www.nordicsemi.com/eng/nordic/download_resource/9620/7/13918708

    If one wanted to make a tester out of a example this would work. http://www.nordicsemi.com/eng/nordic/download_resource/10638/11/57367651
    However to run this example stock a nRF24LU1P dev kit is also required.


  • Mod

    @tcontrada Don't get me wrong: I'm also against shameful copying of others work, but I've worked closely with Nordic in the past, trying to figure out a way to distinguish fake from genuine chips. I started this discussion, to enable the maker community to buy modules with genuine chips from China, without having to pay the distributor prices from the West (starting at €30 a piece!)
    But either Nordic themselves don't know how to tell if a module is a fake (apart from x-ray, which they used on 3 of my modules) or they just don't want to share this information with us.
    Feel free to buy only original ones from approved suppliers, but they come at a price.



  • @Yveaux If the Chinese module has a genuine Nordic part on it then why would it not work? However there has been enough info put out there on the difference in the cloned parts and the genuine nRF24L01P device to know that there are incompatibilities in certain situations, like use of Auto-ACK on some of the clones. (Check out the hackaday posts on this activity. It is one thing when they sell the clones with the part number intact. It is another when they remove the markings and put nRF24L01+ on them. That is plain old Fraud and becomes counterfeiting.



  • The genuine Nordic chips can be purchased for less than $3 in the U.S.
    That is just the chip and not the module.
    The actual parts which make up the module cost about $3-4.

    If you are concerned about battery operation you'd want the genuine chips as they have a lower sleep current which would extend battery life, which is critical in my application. So cost of batteries is a factor as well.


  • Mod

    @Jokgi said:

    If the Chinese module has a genuine Nordic part on it then why would it not work?

    Of course they will work. In fact I did it myself by swapping the nRF chip on a Chinese module.

    The discussion on hackaday that states the ack bit is inverted has no mentioning of a decent source, iirr.
    I did a lot of research on the subject (see first link in my top post) but did never encounter a fake chip that has an inverted ack bit. I wish I had, then we would have had a bulletproof counterfeit detector by now.
    I doubt if these fakes with inverted ack bits actually exist, or if they are just made up by Nordic to get us to buy original chips.
    I'm in favor of open communication above all!



  • @Yveaux

    I believe the hackaday reference was from Nordic. I just found this as well and is worth reading.
    https://ncrmnt.org/2015/03/13/how-do-i-cost-optimize-nrf24l01/

    "Looks like the answer why was at the very bottom of the comments of the Hack-A-Day comment feed discussing those fake ASICs. And the very comment was made made by someone from Nordic. Turns out that those clowns who made that ripoff ASIC brought a typo from the original specs to silicon, so the NO_ACK bit in the packet control field is inverted in the fake chips. Testing a little bit more – no matter whether the dynamic payloads are enabled or not, fakes will not be able to properly ack packets received from genuine devices, as well as those from nrf24lu1, nrf24le1. The reverse (surprise!) works!

    If you thought that this is good news (we have a good way to distinguish fake and non-fakes) you are quite mistaken. Googling the internets I found at least 2 ‘compatible’ chips: SI24R01 and SE8R01. And forum threads indicate some differences in default pipe addresses after reset, so there may be even more of them. Maybe even those modules I have and consider ‘good’ are just better clones.


  • Admin

    @tcontrada said:

    I hope that the responsible folks will step up and make this work.

    The sketch works. We can rule out that. I suspect the power requirement might differ from the clone. You could play around width extra capacitors on the module.



  • @tcontrada
    You can purchase this part from Symmetry Electronics on line store for $1.78. That is single piece pricing. You may be certain that quantity pricing will be MUCH lower if you speak to a inside sales person.


  • Mod

    @Jokgi Quote from hackaday:

    Jay Tyzzer says:
    March 11, 2015 at 3:56 pm
    Let me start by saying that I do have a dog in this fight as I work for Nordic Semiconductor.
    
    The re-marked nRF24L01P (+) clones are not 100% register compatible. The issue with the counterfeit devices is that when they enabled “Dynamic Payload Length” (EN_DPL) in the “FEATURE” register, one bit get’s activated in the on-air payload...
    

    Let's wrap it up that this statement is far too generic then:

    • nRF24L01P (+) clones are not 100% register compatible -- I have quite a lot of clones (confirmed by Nordic) that are register compatible. No issues whatsoever in any setup.
    • The closes I own do not have an issue with the ack bit; they behave just as genuine ones.

  • Mod

    @tcontrada said:

    The genuine Nordic chips can be purchased for less than $3 in the U.S.

    The majority of the makers in the MySensors community do not want to, or have the capability to build their own nRF24 modules.
    If you want the cheapest solution then you should probably buy the nRF modules from China, and swap the fakes with genuine chips.



  • @hek

    @hek said:

    The sketch works. We can rule out that. I suspect the power requirement might differ from the clone. You could play around width extra capacitors on the module.

    Well, not sure how you can say the sketch works when I have it here and it does not work with the Nordic module.

    Have you tested the SensBender sketch with the genuine Nordic module?

    Since these are battery powered adding a capacitor will not make a difference and it will further drain the battery over time.

    Again, there is something else going on...



  • @Yveaux Yeah, no other modules available, except from China.
    However, that might change. I think there may be a manufacturer in the U.S. that is going to make official modules at a reasonable price soon and pretty much duplicate the Nordic module.

    I think that Nordic may have shot themselves in the foot by not making the module more available and at a much lower price. This opened the door for the fake chip market.


  • Mod

    @tcontrada Finally we agree 😉



  • I kind of got it working by manipulating the nRF24L01.h file.

    By changing these two params:
    #define EN_ACK_PAY 1
    #define EN_DYN_ACK 0

    to:
    #define EN_ACK_PAY 0
    #define EN_DYN_ACK 1

    The Nordic module registered on the gateway and reported battery voltage, but failed on temperature.

    Anyway, I am not an expert on this software, so maybe someone might be able to help, especially the folks which wrote it.

    Thanks,
    Tony



  • @tbowmo Hi Thomas, I am still having an issue with the authentic Nordic module and the mysensors software.

    I was wondering if you has access to one of these modules and could test the software?

    Or, if there is someone else that could help out?

    If needed, I could ship a Nordic module out for testing as I have several that I got from a Nordic rep in the U.S.

    Thanks,
    Tony


  • Admin

    @tcontrada

    I only have China modules :). Right now I don't have the bandwidth for debugging nrf problems, and I have almost decided to go with rfm69 for my sensors instead of the nrf module (mostly due to theoretical better rf coverage)



  • @tbowmo Understand, any suggestions on another person to help. I think that in all honesty we should make this work and resolve the issue.


  • Admin

    @tcontrada

    This is not only related to the sensebender, it's the core library. So any one could look into it.. 🙂



  • @tcontrada said:

    @hek

    @hek said:

    The sketch works. We can rule out that. I suspect the power requirement might differ from the clone. You could play around width extra capacitors on the module.

    Well, not sure how you can say the sketch works when I have it here and it does not work with the Nordic module.

    I would definitely back up @hek on this. It works for 99% people on this forum. We all are sourcing Nordic modules from Aliexpress / eBay (read China). Personally, I have not seen a single genuine module (not chip) built by Nordic so every test is based on chinese modules.
    I believe that the issue you have is related to a radio stack and not related to the sensebender sketch.



  • @alexsh1 I believe the sketch works for the Chinese chips, as you say, but not for the genuine Nordic chips.

    That said, I contacted ITead yesterday and asked if the Nordic Module they sell uses the genuine Nordic chip or another chip from a 3rd party. The response I got back was that the supplier they get the Nordic chips says they are authentic. Although, they did not indicate which supplier. So I replied back to ask which supplier they use and I am still waiting for a response from ITead on this question.

    Let's say that ITead is using an authentic chip. I run the sketch with their module and it works. I replace the module with the Nordic sample I have and the sketch does not work. So now what?
    Is ITead actually using the authentic chip or not?



  • @tcontrada The problem is to identify whether the a chip is genuine. Personally, I am not going to spend days on this. If modules are working - fine. If not I get my money back and move on to the next reseller. Unfortunately, that's the way it is with these modules.
    BTW, I do not think ITead will provide you its supplier. I wouldn't not. As you can appreciate they are resellers so putting their customer directly to suppliers is not in their best interest



  • @alexsh1 I think that the folks that are getting unknown Nordic fakes are actually shortchanging themselves. First there is no way the Chinese can make an exact duplicate of the Nordic chip, all they can do is make a cheap facsimile (which is what they do best anyway). If you're like me an seriously want to utilize the work that the guys did on the SensBender module and get the longest battery life and best RF performance then you'd want to use the genuine Nordic chip.
    Second, Nordic does not manufacture those chips in China anyway (according to Nordic). So if a reseller says they get them from a Chinese manufacturer then they are fake, no doubt.

    I also received an email from Seeed Studio indicating they get their chips from a Chinese manufacturer...So probably fake as well.



  • @alexsh1 Of course there is no requirement that they say who they are using. However If the parts are Genuine Nordic nRF24L01P then releasing the source of the Nordic devices should not be a issue as the authorized worldwide Nordic Semiconductor distributors are listed on the Nordic Semiconductor Web Site. So if the Manufacture of the modules were not forthcoming with the distributor used this would raise questions in my mind as to the history of the parts.



  • @tcontrada The flow of Nordic materials are as following : Wafer fabrication, packaging (QFN or WLCSP) test, then packaging (Tape & Reel or Tray). None of this is done in China. The finished goods are then sent to the authorized distributors worldwide for sale to manufactures. There are authorized distribution channels in China.



  • @Jokgi So then why would these companies not use the authentic Nordic chips if there are distributors in China? Seems like a lot of trouble to go and produce fake chips when the real chips are readily available there already?



  • @tcontrada I cannot say what their motivation is. I would imagine that the parts being made in China are still cheaper to manufacture. I am not hip to all the ways the Chinese government (State Capitalism) assists their companies but that may enter into the equations. (incentives, etc).



  • @Jokgi Hi Jokgi, do you think you can have a rep from Nordic send out some sample authentic modules to the MySensors community to those that can help solve the deficiency between the fake and authentic modules? I think that might help.

    If there are community members that might want to work with the authentic module maybe reply here if interested.


 

462
Online

7.9k
Users

8.8k
Topics

93.7k
Posts