nRF52840 dongle BLE/ZigBee radio problem

I have recently purchased nRF52840 dongle which I wanted to use as a ZigBee sniffer. I bought it on AliExpress and it supposed to be original Nordic board, but it turned out to be a copy made in China. After programming it with Sniffer firmware I saw that no packets are received - the led is flashing that it is in packet capturing mode.

Then I tried to compile (with a difficulty) some BLE sample programs included in SDK to see whether BLE is working, but it doesn't work as well. 

My assumption is that the radio peripheral is not working. I am not sure how else I could check the radio. I have never used nRF products before.

I had a look at the dongle board and there is one thing that I am not sure of. I measured resistance between R0 (antenna input) and the ground - see the picture below. The resistance is 0 Ohms. Since there are only capacitors that are connected to the ground from the antenna to the IC pin, I don't know why the resistance is 0.  Unless there is something internal (inductor) inside that chip that would create this value.

Could anyone advise what resistance should I expect at this point? If 0 Ohms resistance is correct what else can be the problem with the radio?

I would appreciate any help.

Parents
  • Hi,

     

    There is an inductor internally, connected to ground, so measuring 0 ohm (or close to), is expected on the ANT pin.

     

    Can you try setting this, which enables internal 32k RC oscillator?

    CONFIG_CLOCK_CONTROL_NRF_K32SRC_RC=y

     

    This is usually the main reason why custom designs will not fully boot up, along with missing DCDC inductors in the design.

    However, since you are able to debug; it means that dcdc components are highly likely in place in your design.

     

    still have issues? Please share the link/schematic of the dongle.

     

    Kind regards,

    Håkon

  • Hello Håkon,

    Thank you for your response.

    I have tried your suggestion (again). I saw this suggestion on the internet before. Unfortunately the problem is still there.

    When you said "custom design", I know it is not original Nordic board but it is built on the same pcb layout and schematic as information provided with the original dongle.

    My debugging options are very limited. The only way I could do it is to put the line below before the call to bt_enable():

    dk_set_led(USER_LED, 1);

    And this led and another led are flashing fast. I don't know what sets this other led though. Thatt's why I believe MCU is rebooting.

    When I comment out everything from the call to bt_enable()  up to the "for" loop, this led is on and RUN_STATUS_LED is flashing slowly.

  • And I had a look at the board and it has X2 (32kHz) crystal.

  • Can you please share a schematic, link or similar related to the board itself?

    A picture of the dongle, both front + back, will help.

     

    Kind regards,

    Håkon

  • I had a look at the schematic and original board layout that are available on your website and compared it with this board. I have attached the pictures of the board. They were taken with the phone camera so they are not the best.

    As you can see they have everything that is printed on original dongle. The only thing that is missing is a label with MAC address. That's why I had another question. Is the MAC address programmed into the chip during production process? How about BLE device address?

    How can I read/check this address?

  • Hi,

     

    It is hard to say what the problem could be in this case. This could be a soldering problem around the nRF itself, or a incorrect value/reference schematic.

    Given that there is no label in the backside, it does indicate that this PCB was not produced by Nordic.

     

    I am unable to see the markings itself of the nRF. What does this one state? N52840?

     

    Wes0 said:
    The only thing that is missing is a label with MAC address. That's why I had another question. Is the MAC address programmed into the chip during production process? How about BLE device address?

    MAC address is, by default, a random static address which is read out from NRF_FICR, and this is present on all nRF52 devices.

     

    Wes0 said:
    After spending more time when trying to use sample peripheral_lbs

    This sample, when compiled for nrf52840dongle/nrf52840, and flashed via nRF connect for desktop; should work.

    Ie. you should see "Nordic_LBS" advertise on your phone, and LED should blink every 1 second.

     

    If not; I suspect that your dongle has either been damaged, or there is a soldering/component issue.

     

    Kind regards,

    Håkon

  • I am unable to see the markings itself of the nRF. What does this one state? N52840?

    Yes it is N52840.

    Ie. you should see "Nordic_LBS" advertise on your phone, and LED should blink every 1 second.

    Using this sample i found out that it fails on the call to bt_enable(). 

    Why doesn't it return from the call with an error number but crashes?

    Why would it fail like this? Since there is no source code for bt_enable() I can't find out where it fails.

    I started with Zigbee sniffer firmware - that's what I need it for. And it didn't crash like with ble example, but I didn't receive any packets in Wireshark, and red led was not on. It responded to "receive", "sleep" and "channel #" commands and the led was flashing as it should. So I assumed that the radio was not working.

    If not; I suspect that your dongle has either been damaged, or there is a soldering/component issue.

    That's what I suspected. The interesting thing is that it is the second board I bought from different sellers. They all show on the order page Nordic board with a label on the back, but send a copy. The first one had the same issue so I returned it. 

    With this one, I thought, what are the chances that there are 2 boards from different suppliers that are faulty? That's why I spent more time on this one.

    Thanks for your help.

Reply
  • I am unable to see the markings itself of the nRF. What does this one state? N52840?

    Yes it is N52840.

    Ie. you should see "Nordic_LBS" advertise on your phone, and LED should blink every 1 second.

    Using this sample i found out that it fails on the call to bt_enable(). 

    Why doesn't it return from the call with an error number but crashes?

    Why would it fail like this? Since there is no source code for bt_enable() I can't find out where it fails.

    I started with Zigbee sniffer firmware - that's what I need it for. And it didn't crash like with ble example, but I didn't receive any packets in Wireshark, and red led was not on. It responded to "receive", "sleep" and "channel #" commands and the led was flashing as it should. So I assumed that the radio was not working.

    If not; I suspect that your dongle has either been damaged, or there is a soldering/component issue.

    That's what I suspected. The interesting thing is that it is the second board I bought from different sellers. They all show on the order page Nordic board with a label on the back, but send a copy. The first one had the same issue so I returned it. 

    With this one, I thought, what are the chances that there are 2 boards from different suppliers that are faulty? That's why I spent more time on this one.

    Thanks for your help.

Children
Related