I am trying to integrate GitHub - NordicSemiconductor/IOS-DFU-Library: OTA DFU Library for Mac and iOS, compatible with nRF5x SoCs library in one of the SwiftUI mobile application. The integration was easy due to really well documentation instructions on the library page.
I went ahead and tried to load my ZIP file, but it gave me "CRC does not match!" error in the logs, and then DFU process just stuck at aero progress.
Then I tried to load DFU using your app, which is currently on AppStore - nRF Connect for Mobile on the App Store (apple.com), but I got the same log
I am trying to integrate GitHub - NordicSemiconductor/IOS-DFU-Library: OTA DFU Library for Mac and iOS, compatible with nRF5x SoCs (v4.11.1) pod library in one of the SwiftUI mobile application project. The integration was seamless due to really well documentation instructions on the library page.
I went ahead and tried to load my ZIP file, but it gave me "CRC does not match!" error in the logs, and then DFU process just stuck at zero progress.
Then I tried to load DFU using your app, which is currently on AppStore - nRF Connect for Mobile on the App Store (apple.com), but I got the same error in log (attached TXT version log from nRF iOS app)
File Name: myDfuFile.zip Parts: 1 Size: 118 KB Soft Device Size: Zero KB Bootloader Size: Zero KB [Callback] Central Manager did update state to: Powered ON Connecting to ABDC617280049... centralManager.connect(peripheral, options: nil) [Callback] Central Manager did connect peripheral Connected to ABCD617280049 Discovering services... peripheral.discoverServices(nil) Services discovered Starting Secure DFU... Connected to ABCD617280049 Services discovered Secure DFU Service found Discovering characteristics in DFU Service... peripheral.discoverCharacteristics(nil, for: FE59) DFU characteristics discovered MTU set to 43 Enabling notifications for 8EC90001-F315-4F60-9FB8-838830DAEA50... peripheral.setNotifyValue(true, for: 8EC90001-F315-4F60-9FB8-838830DAEA50) Notifications enabled for 8EC90001-F315-4F60-9FB8-838830DAEA50 Secure DFU Control Point notifications enabled Writing to characteristic 8EC90001-F315-4F60-9FB8-838830DAEA50... peripheral.writeValue(0x0601, for: 8EC90001-F315-4F60-9FB8-838830DAEA50, type: .withResponse) Data written to 8EC90001-F315-4F60-9FB8-838830DAEA50 Notification received from 8EC90001-F315-4F60-9FB8-838830DAEA50, value (0x): 600601000100000000000000000000 Command object selected (Max size = 256, Offset = 0, CRC = 00000000) received Writing to characteristic 8EC90001-F315-4F60-9FB8-838830DAEA50... peripheral.writeValue(0x010143000000, for: 8EC90001-F315-4F60-9FB8-838830DAEA50, type: .withResponse) Data written to 8EC90001-F315-4F60-9FB8-838830DAEA50 Notification received from 8EC90001-F315-4F60-9FB8-838830DAEA50, value (0x): 600101 Writing to characteristic 8EC90001-F315-4F60-9FB8-838830DAEA50... peripheral.writeValue(0x020000, for: 8EC90001-F315-4F60-9FB8-838830DAEA50, type: .withResponse) Data written to 8EC90001-F315-4F60-9FB8-838830DAEA50 Notification received from 8EC90001-F315-4F60-9FB8-838830DAEA50, value (0x): 600201 Packet Receipt Notif disabled (Op Code = 2, Value = 0) Writing to characteristic 8EC90002-F315-4F60-9FB8-838830DAEA50... peripheral.writeValue(0x0a410801123d080110888ef9371a028c0120002800300038b097074224080312203d06d39007b6f8, for: 8EC90002-F315-4F60-9FB8-838830DAEA50, type: .withoutResponse) Writing to characteristic 8EC90002-F315-4F60-9FB8-838830DAEA50... peripheral.writeValue(0xb6af2ee12083d0e564d22e9a734e6d00201d98841f830d4a604800, for: 8EC90002-F315-4F60-9FB8-838830DAEA50, type: .withoutResponse) Command object sent (CRC = AAF6B2D4) Writing to characteristic 8EC90001-F315-4F60-9FB8-838830DAEA50... peripheral.writeValue(0x03, for: 8EC90001-F315-4F60-9FB8-838830DAEA50, type: .withResponse) Data written to 8EC90001-F315-4F60-9FB8-838830DAEA50 Notification received from 8EC90001-F315-4F60-9FB8-838830DAEA50, value (0x): 6003010000000000000000 Checksum (Offset = 0, CRC = 00000000) received CRC does not match! Retrying... Writing to characteristic 8EC90001-F315-4F60-9FB8-838830DAEA50... peripheral.writeValue(0x010143000000, for: 8EC90001-F315-4F60-9FB8-838830DAEA50, type: .withResponse) Data written to 8EC90001-F315-4F60-9FB8-838830DAEA50 Notification received from 8EC90001-F315-4F60-9FB8-838830DAEA50, value (0x): 600101 Writing to characteristic 8EC90002-F315-4F60-9FB8-838830DAEA50... peripheral.writeValue(0x0a410801123d080110888ef9371a028c0120002800300038b097074224080312203d06d39007b6f8, for: 8EC90002-F315-4F60-9FB8-838830DAEA50, type: .withoutResponse) Writing to characteristic 8EC90002-F315-4F60-9FB8-838830DAEA50... peripheral.writeValue(0xb6af2ee12083d0e564d22e9a734e6d00201d98841f830d4a604800, for: 8EC90002-F315-4F60-9FB8-838830DAEA50, type: .withoutResponse) Command object sent (CRC = AAF6B2D4) Writing to characteristic 8EC90001-F315-4F60-9FB8-838830DAEA50... peripheral.writeValue(0x03, for: 8EC90001-F315-4F60-9FB8-838830DAEA50, type: .withResponse) Data written to 8EC90001-F315-4F60-9FB8-838830DAEA50 Notification received from 8EC90001-F315-4F60-9FB8-838830DAEA50, value (0x): 6003010000000000000000 Checksum (Offset = 0, CRC = 00000000) received CRC does not match! Retrying... Writing to characteristic 8EC90001-F315-4F60-9FB8-838830DAEA50... peripheral.writeValue(0x010143000000, for: 8EC90001-F315-4F60-9FB8-838830DAEA50, type: .withResponse) Data written to 8EC90001-F315-4F60-9FB8-838830DAEA50 Notification received from 8EC90001-F315-4F60-9FB8-838830DAEA50, value (0x): 600101 Writing to characteristic 8EC90002-F315-4F60-9FB8-838830DAEA50... peripheral.writeValue(0x0a410801123d080110888ef9371a028c0120002800300038b097074224080312203d06d39007b6f8, for: 8EC90002-F315-4F60-9FB8-838830DAEA50, type: .withoutResponse) Writing to characteristic 8EC90002-F315-4F60-9FB8-838830DAEA50... peripheral.writeValue(0xb6af2ee12083d0e564d22e9a734e6d00201d98841f830d4a604800, for: 8EC90002-F315-4F60-9FB8-838830DAEA50, type: .withoutResponse) Command object sent (CRC = AAF6B2D4) Writing to characteristic 8EC90001-F315-4F60-9FB8-838830DAEA50... peripheral.writeValue(0x03, for: 8EC90001-F315-4F60-9FB8-838830DAEA50, type: .withResponse) Data written to 8EC90001-F315-4F60-9FB8-838830DAEA50 Notification received from 8EC90001-F315-4F60-9FB8-838830DAEA50, value (0x): 6003010000000000000000 Checksum (Offset = 0, CRC = 00000000) received CRC does not match! Writing to characteristic 8EC90001-F315-4F60-9FB8-838830DAEA50... peripheral.writeValue(0x0c, for: 8EC90001-F315-4F60-9FB8-838830DAEA50, type: .withResponse) Data written to 8EC90001-F315-4F60-9FB8-838830DAEA50
I also tried nRF Connect Android app from Play Store, with same BLE device and same ZIP file, it worked!
I am not sure why iOS DFU library or nRF Connect iOS app giving CRC error.
Any help would be appreciated.
I have tested this on iPod Touch (iOS 14.8)