Aim
1. To use connectivity device(nrf52840) PCA10056 to program field devices(nrf52840) PCA 10056 using BLE transport.
2. To have a provision to update the connectivity device firmware using USB-serial transport.
The connectivity device has PIN RESET feature which is used to put it into USB-serial bootloader mode.
We have developed all our application code based on the SDK v15.3.0 and SoftDevice S140 v6.1.1 and have no plans to port it into another version anytime soon.
Process followed to achieve the Aim 1 and 2
1. Installed the nrfutil v6.1.0, this generates the connectivity firmware for SD API v2 and v5.
2. Programed the SD "s132_nrf52_5.1.0_softdevice.hex" and open BL "open_bootloader_usb_mbr_pca10056_debug.hex" from SDK v15.0.0 using nrfConnect desktop application.
3. The device goes into bootloader mode because there is no valid application and opens COM port "nRF52 SDFU USB", created a zip package with the hex file present at path "C:\Python38\Lib\site-packages\pc_ble_driver_py\hex\sd_api_v5\connectivity_4.1.4_usb_for_s132_5.1.0.hex" and successfully reprogrammed it using nrfutil dfu usb-serial command.
4. Using the connectivity COM port "USB CDC ACM" with nrfutil dfu ble command we can successfully program the target(field) devices which has SD v6.1..1, bootloader and application based on SDK15.3.0.
5. We are also able to update the same connectivity device firmware again and again by putting it into usb-bootloader mode using pin reset.
Please note that in the above processes we used the BL based on SDK v15.0.0 and SD S132 v5.1.0.
Problem
6. Created a zip package with the application firmware that we developed based on SDK 15.3.0 and S140 v6.1.1 and programmed it using nrfutil, is this case he bootloader debug says "valid app" but the application doesn't seem to work, please let us know why it doesn't work?
7. we would like to have all the firmware in the connectivity device including the connectivity firmware, softdevice and bootloader based on the SDK v15.3.0 and SD s140 v6.1.1, please let us know if this is possible and how?
To achieve the above functionality we tried the following options in the connectivity board.
1. Programmed SD S132 v5.1.0 using nrf connect, programed open bootloader from SDK v15.3.0 by overwriting its MBR region with "C:\nRF5_SDK_15.3.0_59ac345\nRF5_SDK_15.3.0_59ac345\components\softdevice\mbr\nrf52840\hexmbr_nrf52_2.4.1_mbr.hex" file using nRF connect desktop application.
2. The device goes into USB-bootloader mode because there is no valid application found, successfully updated the connectivity firmware "connectivity_4.1.4_usb_for_s132_5.1.0.hex" and using connectivity firmware successfully updated the target devices.
Please note that in the above point 1 and 2 processes we replaced the MBR block of the bootloader with the nRf52840 MBR hex file.
3. We repeated the point 6 process with no luck and similar output as in point 6.
Please let us know how we can achieve the above requirement?
Also as per this compatibility document https://infocenter.nordicsemi.com/index.jsp?topic=%2Fug_gsg_ses%2FUG%2Fgsg%2Fsoftdevices.html ,does this mean nRf52840 is only compatible with S140?
Also we were able to successfully compile the PC-BLE driver for modifying the "config.py" config file for sd_api_v6 but post compilation the nrfutil dfu commands doesn't work and gives errors.
Thanks and Regards,
Sakib