This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

PC-BLE-DRIVER-PY with NRF52840 Dongle

Hello All,

I've had some success now connecting my 52840 Dev Kit with the NRF52840 Dongle and would now like to use the dongle as a receiver with the PC-BLE-DRIVER-PY library.

Unfortunately, while the 52840 dev kit appears in the heart_rate_collector.py as COM0, I haven't been able to locate NRF52840 Dongle at all. I've even tried running the serial_port_enum.py and nothing appears.

I have followed the advice of other forum posts suggesting the use of the sd_api_v5 with no luck. I have also used the nrfutil tool with the connectivity dfu pkg and still it refuses to appear.

Are there any further steps required? Can anyone provide perhaps a reference I may have overlooked?

Regards,

DM

Parents
  • Hello,

    Have you programmed the connectivity FW to the dongle? This FW is needed to enable the USB stack and make the dongle appear as COM port in windows.

    The easiest way to program the connectivity FW is by using the  Bluetooth Low energy app in nRF connect for desktop. Here are the steps you can use to program it:

    1. Put the dongle into DFU mode by pressing the reset button (the red led will start to blink when it's in dfu mode). The dongle should then appear as "Open DFU bootloader" in the device dropdown in the top left corner.

    2. Open the app, then click yes when prompted to program the device

    3. Exit the app and verify that you have a new COM port.

    Best regards,

    Vidar

  • Hello Vidar,

    Thanks for taking a look. I have programmed the connectivity, I have tried different versions, I can see my NRF52840 dongle on COM Port 5 device manger as shown below.

    NRF connect shows the firmware being used below:

    I can even run the python script for the serial_enum but nothing appears for the dongle. The 52840DK does appear, but the reason I bought the dongle was to try sending data from the 52840DK to the Dongle which is then read using the pc-ble-driver-py for a simple dashboard application.

    I'm sure I've missed something, pc-ble-driver-py seems to be working for other people.

    Regards,

    DM

Reply
  • Hello Vidar,

    Thanks for taking a look. I have programmed the connectivity, I have tried different versions, I can see my NRF52840 dongle on COM Port 5 device manger as shown below.

    NRF connect shows the firmware being used below:

    I can even run the python script for the serial_enum but nothing appears for the dongle. The 52840DK does appear, but the reason I bought the dongle was to try sending data from the 52840DK to the Dongle which is then read using the pc-ble-driver-py for a simple dashboard application.

    I'm sure I've missed something, pc-ble-driver-py seems to be working for other people.

    Regards,

    DM

Children
  • Hello,

    Are you using Windows 10? The COM port should have been named "nRF Connect USB CDC ACM" after the drivers were installed. There should also be another entry for the USB DFU trigger.

  • Hello Vidar,

    Yes I am using Windows 10. I have the nRF Connect DFU Trigger as shown below.

    However, I can't seem to get the "nRF Connect USB CDC ACM" to show up. I pushed the reset button on the dongle, it flashed red, and then I programmed it with nRF connect ble app. It keeps appearing as USB serial device.

    Regards

  • Just a quick update, I decided to try everything on my laptop, the only difference is that nRF connect is 3.9.1 and not the update 3.9.3 on my desktop. The following appears for my nRF52840 Dongle after programming:

    However, the problem persists when trying to run the pc-ble-driver-py examples.

    When I reconnect to the desktop of course, it remains as before, USB Serial Device as expected.

    Finally, in case this helps, my dongle is PCA10059 2.0.1. I'm also running Python version 3.9.

    Regards,

    DM

  • Unlike DKs with the Segger Jlink interface, the nRF52840 Dongle's COM port will not be discovered automatically by driver.  This means you have to specify the port number when invoking the script.

    Does the script work if you include the com port number as an argument like this:

    > python heart_rate_collector.py NRF52 COMx

    ?

    DougMortime said:
    However, I can't seem to get the "nRF Connect USB CDC ACM" to show up.

    I'm not sure why the naming is different, but I don't think it should be a problem either. The main thing is that it shows up as a serial port. 

    Regards,

    Vidar

  • Hello Vidar,

    Thanks so much, it finally works, even on the desktop now. Obviously I'll need to set up Nordic_HRM for it to actually connect but the script runs fine, it even listed the TV nearby.

    To summarize for anyone who wants a stepped approach:

    1. Put the nRF52840 in your usb port and press the side button, its a small button above the push down button. Dongle will blink red light.

    2. Open nRF Connect for Desktop

    3. Open Bluetooth Low Energy

    4. Select the Dongle and press Yes to programming alert.

    5. Make sure you've installed PC-BLE-DRIVER-PY before you run the script (pip install pc-ble-driver-py)

    6. Go to the directory of the examples and then if using the Dongle SPECIFY COMx (e.g COM Port 5 = COM5)

    7. Enjoy thanks to Vidar and the nRF team!

    Regards,

    DM

Related