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

Bootloader hangs after sending filesize

I have a problem with the new SDK11 Bootloader. With SDK 0.9.2. everything worked fine, but with SDK11 not. The strangest thing is that if i use the precompiled hex file in /dfu/bootloader/hex it works. Compiling the program without any change it did not work. What i'm doing is connecting to the bootloader and sending 0x0104 (Start DFU) ,Till now no problem. Next step is sending the filesize of the new Application. After that the bootloader hangs. Debugging the bootloader shows that i goes to start_data_process() in dfu_transport_ble.c. This function starts with:

  uint32_t err_code;

    dfu_start_packet_t  start_packet  = {.dfu_update_mode = m_update_mode};
    dfu_update_packet_t update_packet =
    {
        .packet_type         = START_PACKET,
        .params.start_packet = &start_packet
    };

After that he s gone. If i stop, Dissassembly shows SEV all the time.

Please can you help me? What is the difference between the precompiled and the source-files?

  • @Bjørn: Yes, and the precompiled Bootloader worked on my custom board too. But i have no time at the moment to find out the problem.

  • I am facing the same issue, may I ask Nordic to list all possible check points. I am using a custom board with NRF51822-QFAC-R7 and Master Control panel on Android. The DFU is working with test images. I build an application image with noridc_sdk_11/examples/ble_peripheral/ble_app_hrs/pca10028/s130_with_dfu/armgcc with _MINOR ver as 0x05 and flashed SD, BL and App. It worked and have seen the advertisement. Then I re-build my app with _MINOR as 0x06 and created .zip file with below options: $ sudo nrfutil dfu genpkg --application _build/nrf51422_xxac_s130.bin --application-version 0xFFFFFFFF nrf51422_xxac_s130_hrs_ver6.zip It didn't worked! Few logs copied here: D 23:23:58.986 [DFU] wait(1000) V 23:23:59.839 [DFU] Writing to characteristic 00001531-1212-efde-1523-785feabcd123 D 23:23:59.899 [DFU] gatt.writeCharacteristic(00001531-1212-efde-1523-785feabcd123) I 23:23:59.932 [DFU] Data written to 00001531-1212-efde-1523-785feabcd123, value (0x): 01-04 A 23:23:59.964 [DFU] DFU Start sent (Op Code = 1, Upload Mode = 4) V 23:24:00.041 [DFU] Writing to characteristic 00001532-1212-efde-1523-785feabcd123 D 23:24:00.076 [DFU] gatt.writeCharacteristic(00001532-1212-efde-1523-785feabcd123) I 23:24:00.106 [DFU] Data written to 00001532-1212-efde-1523-785feabcd123, value (0x): 00-00-00-00-00-00-00-00-E8-80-00-00 A 23:24:00.171 [DFU] Firmware image size sent (0b, 0b, 33000b) E 23:24:00.249 [DFU] Error (0x13): GATT CONN TERMINATE PEER USER D 23:24:00.362 [DFU] gatt.refresh() (hidden) D 23:24:00.396 [DFU] gatt.close()

    Thanks in advance!

  • @KingKarl237 or @ggotta : Have you been able to find the cause of the issue?

  • This not working with Android Application, but it working with windows based MCP. Not sure what was wrong with Android app, have not tried after due to some other priority stuff.

  • After A few weeks i have retried it and it worked... I'm not sure what it was, but it was very strange that the precompiled Hexfile worked and the compiled without changes does not.

Related