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

nRF Toolbox DFU not working with sdk9

Hi,

We have updated our code to the last sdk version (nRF51_SDK_9.0.0_2e23562) and we cannot upload the application code anymore with the nRF Toolbox on our iPad. However, we can get it to work with the MCP. If a 0x0104 comand is written on the DFU Control Point the device goes into 'DFUTarg' mode and then it can be updated using the DFU Tab and selecting the application code on the MCP. These are the code and tools we are using:

SDK: nRF51_SDK_9.0.0_2e23562 Softdevice: s110_nrf51_8.0.0_softdevice.hex nRF Toolbox under iOS 9.1 and iPad 3 Master Control Panel 3.9.0.6 Keil uVision: v 5.10.0.0 with the following merge instructions:

mergehex.exe -m .......\components\softdevice\s110\hex\s110_nrf51_8.0.0_softdevice.hex ._build\ble_app_piano.hex -o ._build\ble_app_piano_plus_stack.hex

mergehex.exe -m ._build\ble_app_piano_plus_stack.hex .....\dfu\bootloader\pegleg_3_1\dual_bank_ble_s110\arm4_build\bootloader_pegleg_3_1.hex -o ._build\ble_app_piano_plus_stack_plus_bootloader.hex

The main code implements the standard DFU service and (ble_dfu.c) and the handler files (bootloader_util.c and dfu_app_handler.c). Also we are using the standard bootloader and we have only modified the GPIOs for the LEDs to match with our board.

On the nRF Toolbox I select the fiole and the file type. Then select the device and it does connect to the iPad. Once the device is selected, I can't tap the 'Upload' button (it appears grey rather than blue). I have attached a capture image with this issue. IMG_0111.PNG

Any suggestion or follow-up question is welome.

Thanks Nacho

  • The PC version of master control panel creates a generic init packet 'under the hood' whereas the ios app needs this to be provided by the user.

    Instructions on how to create a distribution packet with the init file is given here. E.g., nrfutil dfu genpkg piano.zip --application .hex --softdevice .hex --application-version 0xFFFFFFFF --dev-revision 0xFFFF --dev-type 0xFFFF --sd-req 0xFFFE.

    Note, the softdevice you update to must be compatible with the bootlaoder present, otherwise you need to update the bootloader and softdevice in the same step to ensure compatibility (SoftDevice with bootloader update).

  • Vidar, thanks for your reply. I believe that issue lies on the app malfunctioning. I would much appreciate if you could test these steps before you post your next reply.

    First, I have flashed the following Nordic code(in order) using nRFgo Studio and the pca10028 dev board:

    Softdevice: s110_nrf51_8.0.0_softdevice.hex Bootloader: nrf51422_xxac.hex (from C:\Keil_v5\ARM\Device\Nordic\nRF51_SDK_9.0.0_2e23562\examples\dfu\bootloader\pca10028\dual_bank_ble_s110\arm4_build) Application: nrf51422_xxac_s110.hex (from C:\Keil_v5\ARM\Device\Nordic\nRF51_SDK_9.0.0_2e23562\examples\ble_peripheral\ble_app_hrs\pca10028\s110_with_dfu\arm4_build)

    The code will advertise by default. Once all this is flashed, upload the following file to you iOS device:

    dfu_test_app_hrm_s110.zip (from C:\Keil_v5\ARM\Device\Nordic\nRF51_SDK_9.0.0_2e23562\examples\dfu\ble_dfu_send_hex\test_images_update)

    In the nRF Toolbox, select this file and file type as application. Select the device and try to upload. I can only see the 'Upload' text with the classic 'disabled grey'. It does connect to the device but the correct information is not reaching to the DFU control point(0x0104) and it keeps running the application code rather than entering the bootloader 'DFUTarg' mode. I am supposing all this should work 'out of the box' as these are the examples provided by Nordic to test. Could you try this and let me know if you find the same?

  • Hi, it should work "out of the box" when using the default bootloader and the "test image", but I verified it to be sure by doing the same approach you described above. Please go to settings->bluetooth on your ipad and make sure that the device is not bonded, and toggle bluetooth enable afterwards. Then try again to see if it makes any difference.

  • Hi Vidar,

    I made sure all the bonds were deleted from the iPad. Have you tried on your side the exact same procedure as I described? Did it work for you?

    Thanks

  • Yes almost, used Iphone 6 plus with ios 9.1.0 and nRF toolbox version 2.4. Did you use the same toolbox version?

Related