This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

build connectivity firmware softdevice dfu packet for secured usb bootloader

To the kind attention of Nordic support team,

using these commands, like in https://devzone.nordicsemi.com/f/nordic-q-a/58365/doing-dfu-ble-as-a-pca10059-dongle,

I flashed PCA10056 DK with usb open bootloader coming from sdk15.2

Then I used  C:\Users\astella\AppData\Local\Programs\Python\Python38\Lib\site-packages\pc_ble_driver_py\hex\sd_api_v5

connectivity_4.1.1_usb_with_s132_5.1.0_dfu_pkg.zip

Using this dfu file, I was able to program PCA10056:

nrfutil dfu usb-serial -pkg connectivity_4.1.1_usb_with_s132_5.1.0_dfu_pkg.zip -p COM13

After that, connectivity firmware was running properly and I was able to do ota updating in a second board

using this command:

nrfutil dfu ble -ic NRF52 -pkg app26022020.zip -p COM12 -n "DfuTarg"
[####################################] 100%
Device programmed.

So, I managed to have a first idea of what it is needed to get what I need.

I noticed that after a reset, the default openbootloader from sdk15.2 seems to activate itself and connectivity firmware doesn't run anymore.

But, I'd like to signature my dfu package. Is there a way to get a dfu package that is working with secured usb bootloader?

I tried to do something like this:

nrfutil pkg generate --sd-req 0x0 --sd-id 0x0 --hw-version 52 --key-file private.key --application-version 1 --application connectivity_4.1.1_usb_for_s132_5.1.0.hex --softdevice s132_nrf52_5.1.0_softdevice.hex dfu.zip
Zip created at dfu.zip

But after programming PCA10056, connectivity firmware wasn't running.

To me it is important to understand if it is possible to find a way to work with default connectivity files (as it seems to be the case in the open bootloader case) as they are provided in 

C:\Users\astella\AppData\Local\Programs\Python\Python38\Lib\site-packages\pc_ble_driver_py\hex\sd_api_v5 or I need to deeply work with src files to rebuild them.

Thank you for your valuable work and attention

Best regards

Parents
  • Hi Stella, 

    I'm not sure I understand what exactly you are planing to do. 

    If you just want to use a PCA10056 connected to PC to update another NRF52 board. What you need to do is to flash the connectivity firmware on the PCA10056 connected to PC. 

    Then either use nrfutil or nRF Connect Bluetooth Low Energy app to do DFU. 

    On the nRF52 board that you want to update firmware you can flash the secure DFU bootloader. Please refer to my guide here.

    The open bootloader automatically enter DFU mode if there is a pin reset. You can disable it inside dfu_enter_check() in nrf_bootloader.c . But as I mentioned, you don't need to flash this on the board you connect to PC. 

Reply
  • Hi Stella, 

    I'm not sure I understand what exactly you are planing to do. 

    If you just want to use a PCA10056 connected to PC to update another NRF52 board. What you need to do is to flash the connectivity firmware on the PCA10056 connected to PC. 

    Then either use nrfutil or nRF Connect Bluetooth Low Energy app to do DFU. 

    On the nRF52 board that you want to update firmware you can flash the secure DFU bootloader. Please refer to my guide here.

    The open bootloader automatically enter DFU mode if there is a pin reset. You can disable it inside dfu_enter_check() in nrf_bootloader.c . But as I mentioned, you don't need to flash this on the board you connect to PC. 

Children
Related