nRF52840 dongle : no response from device message error, using the pc_ble_driver_py library

Hello everyone.

So, I recently tried to use a nRF52840 dongle : I plugged it into my computer and was able to connect to it using the 'nRF Connect For Desktop Bluetooth Low Energy' v4.04 app (with the default programmer). I was also successfully scanning with it and seeing other bluetooth devices.

But then, I tried to exploit my dongle using the standard pc_ble_driver_py library on python (windows 10 OS), the last current version : 

I tried at first to simply execute the heart_rate_collector.py example located in pc_ble_driver_py\examples directory. But then, a timeout error exception is being thrown, and I have trouble understanding why, I just followed the default steps.

Here's my trial :

I tried to look more carefully where was the error being thrown. Turns out that it comes from a function _nrf_ble_driver_sd_api_v5.sd_rpc_close(adapter) defined in the nrf-ble-driver-sd_api_v5-mt-4_1_4.dll file, and I can't look at it since it is compiled already...

The problem happens at the following line of the heart_rate_collector.py program example, when I'm calling the open function of the library :

A colleague of mine with seemingly the same setup than mine (same python which was 37-32 but python310 should work the same, same nRF software version, same dongle, ...)  successfully executed the program example. Here's what he got, but that I can't get :

I'm pretty sure that my dongle is well plugged in.

I am a bit out of ideas. I would be thankful if someone could help me on that.

Ask me if you need any more details,

Thanks,

LeCraps.

  • Hello LeCraps,

    I would like to know about the version of connectivity FW you programmed to the dongle. 

    Thanks.

    Best Regards,

    kazi Afroza Sultana

  • Hello Kazi, thanks for answering, and sorry for the delay of my reply.


    About the connectivity FW I used, I tried multiple things. At first, I used the default configuration given with the nRF BLE app (see image below) :


    So I'm not exactly sure where to check what hex files it is concretely using. Do you know where I can check it ?
    But ! I do know that the heart_rate_collector.py example script is using the _nrf_ble_driver_sd_api_v5.pyd file in my case, so I suppose it is referring to the sd_api_v5 version folder of the hex files.

    I have this when opening the nRF Programmer app once the dongle is configured by default :


    At some point, because it was not working (getting the 'No response from device' message error), I did try to program it myself with the nRF Programmer app. I tried kind of randomly to use the hex files you can see in the image below.



    But I do not know exactly how it works. And so, it was not working as well (the example script), no matter the hex files, but there's a possibility I did it wrong.
    No matter what I did, it was not working. But shouldn't the default programmer be enough anyway ?
    On top of that, my colleague was able to make the same dongle work with the default configuration as well.

    Did that anwer your question ? 


    Still stuck...
    Thanks in advance for your help,
    LeCraps.

  • Hello LeCraps,

    You can download the connectivity firmware (nrf-ble-driver-4.1.4-win_x86_64.zip) from here  https://github.com/NordicSemiconductor/pc-ble-driver/releases/tag/v4.1.4 and then pre-compiled connectivity hex (choose this hex file connectivity_4.1.4_usb_with_s140_6.1.1.hex) are located in this folder. 

    Thanks.

  • Hello Kazi and thanks again for answering,


    So as you asked, I used the connectivity_4.1.4_usb_with_s140_6.1.1.hex file issued from the link you gave me to program the dongle. I didn't put it in the pc_ble_driver_py library (since you didn't tell me to touch it), I took it directly in my downloads in the nRF Programmer app. During the whole Programmer session, the red led flashes. It looks like this before writing :



    When the writing operation is done, it looks as following :


    Then, the red light (of the physical dongle) turns off.
    Is that the expected behaviour ?

    Then I tried multiple things just in case.
    When I try to execute directly the heart_rate_collector.py program example, I get the same error as before from my terminal (that I'm running in administrator mode on windows). Then I tried to see if I was able to at least scan with it directly on the nRF BLE app. But the dongle seems to be unstable there.
    Sometimes When I try to open it directly, I get the following message error :

    Sometimes I simply can't select my dongle, it disappears from the list, and I have to enter into programmer mode again to be able to use it again (which hex file is used at this point ? I'm not sure).

    Also sometimes I was able to select it (sometimes going into reset mode again), but the nRF BLE app is asking me to reprogram it. 2 different things from there : either I say yes and it is reprogramming indefinitely (so I have to plug out manually the dongle or close the nRF BLE app to stop it...), either I say yes and it successfully reprograms it, but it gives me the following output :


    I'm even more confused than at the beginning. Could you describe more precisely the steps you want me to do please next time so that I'm sure I'm giving you a good/accurate feedback ?

    Also, again, without touching anything and with seemingly the same setup, it was working for a colleague of mine. Can modifying the .hex file really be the cause of this ?


    Still stuck...
    Thanks in advance again for your help,
    LeCraps.

  • Hello ?
    Are you still there Kazi ? Someone else maybe ?
    The problem is still not resolved

Related