System Setup:
SDK 15.2.0, SD 6.1.1, iOS 12.3.1, IOS-Pods-DFU-Library 4.4.1
Target device: FanStel BC840M (nRF 52840)
Bootloader: examples/dfu/secure_bootloader
We are using buttonless DFU. The application was based on ble_app_buttonless_dfu from SDK 15.2.0. We create two ZIP packages that contain identical application image, then upgrade from one to the other and so on. With iPhone 7 we see only one error in over 40 upgrades. With iPhone XR the first upgrade after power-up works but all subsequent upgrades fail until we power cycle the target device. The ZIP package contains the application only and is 44KB is size. The error usually happens near the start but sometimes happens after several packets are transferred. The DFU secure_bootloader comes from SDK 15.2 and we use SoftDevice 6.1.1. Target device is 52840. We do NOT use bonding. See the log output below. I plan to increase the log verbosity and do another capture soon. Any ideas how to debug this?
Here is the command to build the ZIP package: nrfutil pkg generate --hw-version 52 --application-version 1 --sd-req 0xB6 --key-file private.key --application app.hex app.zip
2019-07-02 08:50:59.400 > DFU state: Connecting
2019-07-02 08:51:00.831 > DFU state: Starting
2019-07-02 08:51:01.012 > DFU:Buttonless DFU indications enabled
2019-07-02 08:51:01.012 > DFU:Application with buttonless update found
2019-07-02 08:51:01.013 > DFU state: Enabling DFU Mode
2019-07-02 08:51:01.072 > DFU:Response (Op Code = 2, Status = 1) received
2019-07-02 08:51:01.072 > DFU:Bootloader name changed successfully
2019-07-02 08:51:01.101 > DFU:Response (Op Code = 1, Status = 1) received
2019-07-02 08:51:04.943 > DFU state: Starting
2019-07-02 08:51:04.971 > DFU:Secure DFU Control Point notifications enabled
2019-07-02 08:51:05.002 > DFU:Command object info (Max size = 256, Offset = 0, CRC = 00000000) received
2019-07-02 08:51:05.064 > DFU:Packet Receipt Notif disabled (Op Code = 2, Value = 0)
2019-07-02 08:51:05.065 > DFU:Command object sent (CRC = 2AF5FA37)
2019-07-02 08:51:05.092 > DFU:Checksum (Offset = 141, CRC = 2AF5FA37) received
2019-07-02 08:51:05.137 > DFU:Command object executed
2019-07-02 08:51:05.166 > DFU:Packet Receipt Notif enabled (Op Code = 2, Value = 12)
2019-07-02 08:51:05.287 > DFU:Data object info (Max size = 4096, Offset = 0, CRC = 00000000) received
2019-07-02 08:51:05.287 > DFU state: Uploading
2019-07-02 08:51:05.317 > DFU:Uploading firmware...
2019-07-02 08:51:05.513 > DFU:Checksum (Offset = 3660, CRC = 91858F4F) received
2019-07-02 08:51:05.631 > DFU:Error 8: Operation not permitted
2019-07-02 08:51:05.632 > DFU:Data object executed
2019-07-02 08:51:05.663 > DFU:Uploading firmware...
2019-07-02 08:51:05.730 > DFU error: DFUError 7024 bytes were sent while 0 bytes were reported as received