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

ios nrf loader timeout during upload

I have the nRF Loader app installed on an iPad Mini. I have the dfu_dual_bank_ble firmware from SDK V5.0.0 and SoftDevice V6.0.0.1-beta loaded on my nRF51822.

The app is able to see the device named "DfuTarg" and pair with it, the status becomes "ready", but when it tries to upload, it will hang for a minute and then report an unexpected timeout error.

The LED that indicates connection establishment is on when DfuTarg is selected, but it goes off when the timeout error arrives.

How do I make DFU work? What is causing the timeout?

Parents
  • You can change how many packets the iOS app sends between receiving a confirmation, which may help NO_MEMORY issues, by tuning the setting of the notificationPacketInterval in setFirmwareURL of the DFUController.

    The algorithm to set this number was chosen based on getting a reasonable amount of updates over an application upload, but doesn't check the size it ends up at. May I ask how large the binary you're trying to upload is? It could be that this number simply becomes too big for the buffers on the nRF51822 side if the binary itself is big.

  • I am just trying out ble_app_rscs, 17260 bytes

    changing notificationPacketInterval to 1 worked! it seems to transfer 20 (which is max packet size) bytes per notification now.

    should I just increase it until it stops working?

    Also although it seems to detect a valid application because it attempts to launch it, the application itself seems to be self-resetting... How do I go about generating a .bin file from my own .hex file?

    I realize the above question is actually very simple to answer myself, but hex files specify addresses, bin files do not, I need to know the proper way of doing the conversion because of the address offset.

Reply
  • I am just trying out ble_app_rscs, 17260 bytes

    changing notificationPacketInterval to 1 worked! it seems to transfer 20 (which is max packet size) bytes per notification now.

    should I just increase it until it stops working?

    Also although it seems to detect a valid application because it attempts to launch it, the application itself seems to be self-resetting... How do I go about generating a .bin file from my own .hex file?

    I realize the above question is actually very simple to answer myself, but hex files specify addresses, bin files do not, I need to know the proper way of doing the conversion because of the address offset.

Children
No Data
Related