Questions about the Connectivity firmware

Hello,

I'd like to use the pc-ble-driver-py library with nRF52840 dongle and had success running the basic examples. I simply programmed the dongle using the nRF Bluetooth Low Energy app which flashes the Connectivity firmware as I understand it.

According to this and this post the Connectivity firmware used by the Bluetooth Low Energy app is different than the one from the SDK examples. Does that mean there's also a difference between the Connectivity firmware provided by pc-ble-driver and the Bluetooth Low Energy app?

In other words, is it safe to program my hardware through the Bluetooth Low Energy app and use it with pc-ble-driver-py? 

Also, when I install the pc-ble-driver package through vcpkg, I can see the hex files are available in vcpkg\packages\nrf-ble-driver_x86-windows\share\nrf-ble-driver\hex. Are these the same hex files used by the Bluetooth Low Energy app and is there any benefit to build them from source? 

Thanks!

 
  • Hi,

    Due to summer vacation, we are low in staffing.

    While I could dig and find the answers you are looking for, I will go for lazy answers instead.
    That being said, if your end goal is to use the apps with the dongle, this answer should get you there as well.

    In other words, is it safe to program my hardware through the Bluetooth Low Energy app and use it with pc-ble-driver-py? 

    If programming is free, just program it and try this.
    Either it works or it does not.
    If it does not work, you can just reprogram the dongle.

    Also, when I install the pc-ble-driver package through vcpkg, I can see the hex files are available in vcpkg\packages\nrf-ble-driver_x86-windows\share\nrf-ble-driver\hex. Are these the same hex files used by the Bluetooth Low Energy app and is there any benefit to build them from source? 

    Same as above, just see try and see.

    The benefit of building these from source is that if you want to do any changes to them, you can.

    Regards,
    Sigurd Hellesvik

  • Hi Sigurd, and thanks for your answer.


    I think I wasn't very precise in my original post:

    If programming is free, just program it and try this.
    Either it works or it does not.

    I was able to program my dongle and run the examples using both the Bluetooth Low Energy app and the hex file from the library. I am aware that I've only run the basic examples and I'm not sure if this is a good enough assurance that I'm using the best method. I'm trying to avoid a future situation where things don't work only because I flashed my dongle with the wrong app.

    The benefit of building these from source is that if you want to do any changes to them, you can.

    What I meant was, if I build the hex files from source without any changes, would I receive the same images which are already provided by the library? And are these images the same that the Bluetooth Low Energy  app uses? 

  • pavel472 said:
    I was able to program my dongle and run the examples using both the Bluetooth Low Energy app and the hex file from the library. I am aware that I've only run the basic examples and I'm not sure if this is a good enough assurance that I'm using the best method. I'm trying to avoid a future situation where things don't work only because I flashed my dongle with the wrong app.

    Aha.

    The nRF52840Dongle has an immutable bootloader running.

    When you use the nRF Connect For Desktop Programmer, it detects the Dongle, and programes the Dongle in bootloader mode.
    The application can not overwrite the bootloader, as the flash for the Bootloader is locked.
    The only way to overwrite the Bootloader is to use an external debugger.

    pavel472 said:
    What I meant was, if I build the hex files from source without any changes, would I receive the same images which are already provided by the library? And are these images the same that the Bluetooth Low Energy  app uses? 

    As said in  RE: Connectivity Firmware for nrf52820 : "The connectivity firmware used by the pc-ble-driver is quite different compared to the unmodified connectivity firmware from the SDK (these projects are patched with a patch file from the pc-ble-driver repo). To build connectivity firmware for the pc-ble-driver you should follow the instructions under Compiling connectivity HEX files."

    pavel472 said:
    And are these images the same that the Bluetooth Low Energy  app uses? 

    How does knowing this help you?

  • Aha.

    The nRF52840Dongle has an immutable bootloader running.

    When you use the nRF Connect For Desktop Programmer, it detects the Dongle, and programes the Dongle in bootloader mode.
    The application can not overwrite the bootloader, as the flash for the Bootloader is locked.
    The only way to overwrite the Bootloader is to use an external debugger.

    I was talking about the app alone and don't intend to use a different bootloader.

    As said in  RE: Connectivity Firmware for nrf52820 : "The connectivity firmware used by the pc-ble-driver is quite different compared to the unmodified connectivity firmware from the SDK (these projects are patched with a patch file from the pc-ble-driver repo). To build connectivity firmware for the pc-ble-driver you should follow the instructions under Compiling connectivity HEX files."

    Indeed and I'm wondering if the unmodified connectivity firmware from the SDK is what's being flashed when I use the nRF Connect Desktop Bluetooth Low Energy App. My end goal is to use the application to flash the base fw which I can then use with the python module. So far I've been doing just this without issues and am trying to future proof our process. 

    Also, when I install the pc-ble-driver I can see there are pre-built hex and dfu files. So I'm wondering if those are the same files when building from source. I'm actually having trouble building the files from source and hoping to use the pre-built files. 



    How does knowing this help you?

     

    I want to use the Bluetooth Low Energy app to flash my dongle instead of the Programmer app. It's purely from a process point of view.

Related