Getting "CRC does not match!" in nRF Connect iOS mobile application

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)

  • Unfortunately, I have only this nRF chip device, nRF52DK.

  • You can try nRF5_SDK_17.1.0_ddde560\nRF5_SDK_17.1.0_ddde560\examples\dfu\secure_dfu_test_images\ble\nrf52832\sd_s132_bootloader_buttonless_with_setting_page_dfu_secure_ble_debug_without_bonds.hex.

    Best regards,

    Charlie

  • Got the same error with that file: "Part of the HEX regions are out of the device memory size, but you can still proceed write operation".

  • I followed your steps, loaded sd_s132...hex using Programmer app on nRF52 DK, and loaded hrs_application_s132.zip using my iPod nRF Connect app, it worked. Below is the log file:

    File Name: hrs_application_s132.zip
    Parts: 1
    Size: 91 KB
    Soft Device Size: Zero KB
    Bootloader Size: Zero KB
    [Callback] Central Manager did update state to: Powered ON
    Connecting to Nordic_Buttonless...
    centralManager.connect(peripheral, options: nil)
    [Callback] Central Manager did connect peripheral
    Connected to Nordic_Buttonless
    Discovering services...
    peripheral.discoverServices(nil)
    Services discovered
    Starting Secure DFU...
    Connected to Nordic_Buttonless
    Services discovered
    Secure DFU Service found
    Discovering characteristics in DFU Service...
    peripheral.discoverCharacteristics(nil, for: FE59)
    DFU characteristics discovered
    Enabling indications for 8EC90003-F315-4F60-9FB8-838830DAEA50...
    peripheral.setNotifyValue(true, for: 8EC90003-F315-4F60-9FB8-838830DAEA50)
    Indications enabled for 8EC90003-F315-4F60-9FB8-838830DAEA50
    Buttonless DFU indications enabled
    Application with buttonless update found
    Trying setting bootloader name to Dfu31671
    Writing to characteristic 8EC90003-F315-4F60-9FB8-838830DAEA50...
    peripheral.writeValue(0x02084466753331363731, for: 8EC90003-F315-4F60-9FB8-838830DAEA50, type: .withResponse)
    Data written to 8EC90003-F315-4F60-9FB8-838830DAEA50
    Indication received from 8EC90003-F315-4F60-9FB8-838830DAEA50, value (0x):200201
    Response (Op Code = 2, Status = 1) received
    Bootloader name changed successfully
    Writing to characteristic 8EC90003-F315-4F60-9FB8-838830DAEA50...
    peripheral.writeValue(0x01, for: 8EC90003-F315-4F60-9FB8-838830DAEA50, type: .withResponse)
    Data written to 8EC90003-F315-4F60-9FB8-838830DAEA50
    Indication received from 8EC90003-F315-4F60-9FB8-838830DAEA50, value (0x):200101
    Response (Op Code = 1, Status = 1) received
    [Callback] Central Manager did disconnect peripheral
    Disconnected by the remote device
    Scanning for the DFU Bootloader...
    centralManager.scanForPeripherals(withServices, [FE59]
    DFU Bootloader found with name Dfu31671
    Connecting to Dfu09772...
    centralManager.connect(peripheral, options: nil)
    [Callback] Central Manager did connect peripheral
    Connected to Dfu09772
    Discovering services...
    peripheral.discoverServices([FE59])
    Services discovered
    Secure DFU Service found
    Discovering characteristics in DFU Service...
    peripheral.discoverCharacteristics(nil, for: FE59)
    DFU characteristics discovered
    MTU set to 183
    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): 600601000200000000000000000000
    Command object selected (Max size = 512, Offset = 0, CRC = 00000000) received
    Writing to characteristic 8EC90001-F315-4F60-9FB8-838830DAEA50...
    peripheral.writeValue(0x010190000000, 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(0x128d010a4708011243080110341a058102fe950320002800300038a4c305422408031220ea2186d25e0a1b9fdfb9eae9a4d930e64026ae3f9ce4e72603df8cfc3dabf747480152040801120010001a4055ac68b7bff593871828155fce3f6f801169520b5b410ef4455133e6783d5f3b654343efadad4d093a14edae414e520125a0931e021891eb9fd4ada2a7b8c1fc, for: 8EC90002-F315-4F60-9FB8-838830DAEA50, type: .withoutResponse)
    Command object sent (CRC = 2EEF95CD)
    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): 60030190000000cd95ef2e
    Checksum (Offset = 144, CRC = 2EEF95CD) received
    Writing to characteristic 8EC90001-F315-4F60-9FB8-838830DAEA50...
    peripheral.writeValue(0x04, 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): 600401
    Command object executed
    Writing to characteristic 8EC90001-F315-4F60-9FB8-838830DAEA50...
    peripheral.writeValue(0x020c00, 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 enabled (Op Code = 2, Value = 12)
    Writing to characteristic 8EC90001-F315-4F60-9FB8-838830DAEA50...
    peripheral.writeValue(0x0602, 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): 600601001000000000000000000000
    Data object selected (Max size = 4096, Offset = 0, CRC = 00000000) received
    Writing to characteristic 8EC90001-F315-4F60-9FB8-838830DAEA50...
    peripheral.writeValue(0x010200100000, 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
    Data object 1/23 created
    wait(400)
    Uploading firmware...
    Sending firmware to DFU Packet characteristic...
    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): 6003010010000035774202
    Checksum (Offset = 4096, CRC = 02427735) received
    Writing to characteristic 8EC90001-F315-4F60-9FB8-838830DAEA50...
    peripheral.writeValue(0x04, 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): 600401
    Data object executed
    Writing to characteristic 8EC90001-F315-4F60-9FB8-838830DAEA50...
    peripheral.writeValue(0x010200100000, 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
    Data object 2/23 created
    Uploading firmware...
    Sending firmware to DFU Packet characteristic...
    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): 6003010020000034e4591f
    Checksum (Offset = 8192, CRC = 1F59E434) received
    Writing to characteristic 8EC90001-F315-4F60-9FB8-838830DAEA50...
    peripheral.writeValue(0x04, 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): 600401
    Data object executed
    Writing to characteristic 8EC90001-F315-4F60-9FB8-838830DAEA50...
    peripheral.writeValue(0x010200100000, 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
    Data object 3/23 created
    Uploading firmware...
    Sending firmware to DFU Packet characteristic...
    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): 600301003000001d612ea6
    Checksum (Offset = 12288, CRC = A62E611D) received
    Writing to characteristic 8EC90001-F315-4F60-9FB8-838830DAEA50...
    peripheral.writeValue(0x04, 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): 600401
    Data object executed
    Writing to characteristic 8EC90001-F315-4F60-9FB8-838830DAEA50...
    peripheral.writeValue(0x010200100000, 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
    Data object 4/23 created
    Uploading firmware...
    Sending firmware to DFU Packet characteristic...
    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): 60030100400000c05da3e1
    Checksum (Offset = 16384, CRC = E1A35DC0) received
    Writing to characteristic 8EC90001-F315-4F60-9FB8-838830DAEA50...
    peripheral.writeValue(0x04, 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): 600401
    Data object executed
    Writing to characteristic 8EC90001-F315-4F60-9FB8-838830DAEA50...
    peripheral.writeValue(0x010200100000, 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
    Data object 5/23 created
    Uploading firmware...
    Sending firmware to DFU Packet characteristic...
    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): 60030100500000f674b45b
    Checksum (Offset = 20480, CRC = 5BB474F6) received
    Writing to characteristic 8EC90001-F315-4F60-9FB8-838830DAEA50...
    peripheral.writeValue(0x04, 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): 600401
    Data object executed
    Writing to characteristic 8EC90001-F315-4F60-9FB8-838830DAEA50...
    peripheral.writeValue(0x010200100000, 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
    Data object 6/23 created
    Uploading firmware...
    Sending firmware to DFU Packet characteristic...
    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): 60030100600000865ff1f9
    Checksum (Offset = 24576, CRC = F9F15F86) received
    Writing to characteristic 8EC90001-F315-4F60-9FB8-838830DAEA50...
    peripheral.writeValue(0x04, 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): 600401
    Data object executed
    Writing to characteristic 8EC90001-F315-4F60-9FB8-838830DAEA50...
    peripheral.writeValue(0x010200100000, 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
    Data object 7/23 created
    Uploading firmware...
    Sending firmware to DFU Packet characteristic...
    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): 6003010070000002b1498c
    Checksum (Offset = 28672, CRC = 8C49B102) received
    Writing to characteristic 8EC90001-F315-4F60-9FB8-838830DAEA50...
    peripheral.writeValue(0x04, 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): 600401
    Data object executed
    Writing to characteristic 8EC90001-F315-4F60-9FB8-838830DAEA50...
    peripheral.writeValue(0x010200100000, 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
    Data object 8/23 created
    Uploading firmware...
    Sending firmware to DFU Packet characteristic...
    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): 60030100800000c2af1cf8
    Checksum (Offset = 32768, CRC = F81CAFC2) received
    Writing to characteristic 8EC90001-F315-4F60-9FB8-838830DAEA50...
    peripheral.writeValue(0x04, 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): 600401
    Data object executed
    Writing to characteristic 8EC90001-F315-4F60-9FB8-838830DAEA50...
    peripheral.writeValue(0x010200100000, 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
    Data object 9/23 created
    Uploading firmware...
    Sending firmware to DFU Packet characteristic...
    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): 60030100900000d6f5b0f3
    Checksum (Offset = 36864, CRC = F3B0F5D6) received
    Writing to characteristic 8EC90001-F315-4F60-9FB8-838830DAEA50...
    peripheral.writeValue(0x04, 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): 600401
    Data object executed
    Writing to characteristic 8EC90001-F315-4F60-9FB8-838830DAEA50...
    peripheral.writeValue(0x010200100000, 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
    Data object 10/23 created
    Uploading firmware...
    Sending firmware to DFU Packet characteristic...
    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): 60030100a00000efc64773
    Checksum (Offset = 40960, CRC = 7347C6EF) received
    Writing to characteristic 8EC90001-F315-4F60-9FB8-838830DAEA50...
    peripheral.writeValue(0x04, 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): 600401
    Data object executed
    Writing to characteristic 8EC90001-F315-4F60-9FB8-838830DAEA50...
    peripheral.writeValue(0x010200100000, 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
    Data object 11/23 created
    Uploading firmware...
    Sending firmware to DFU Packet characteristic...
    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): 60030100b000006d90aa30
    Checksum (Offset = 45056, CRC = 30AA906D) received
    Writing to characteristic 8EC90001-F315-4F60-9FB8-838830DAEA50...
    peripheral.writeValue(0x04, 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): 600401
    Data object executed
    Writing to characteristic 8EC90001-F315-4F60-9FB8-838830DAEA50...
    peripheral.writeValue(0x010200100000, 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
    Data object 12/23 created
    Uploading firmware...
    Sending firmware to DFU Packet characteristic...
    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): 60030100c00000c0eb4372
    Checksum (Offset = 49152, CRC = 7243EBC0) received
    Writing to characteristic 8EC90001-F315-4F60-9FB8-838830DAEA50...
    peripheral.writeValue(0x04, 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): 600401
    Data object executed
    Writing to characteristic 8EC90001-F315-4F60-9FB8-838830DAEA50...
    peripheral.writeValue(0x010200100000, 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
    Data object 13/23 created
    Uploading firmware...
    Sending firmware to DFU Packet characteristic...
    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): 60030100d00000c2580d2a
    Checksum (Offset = 53248, CRC = 2A0D58C2) received
    Writing to characteristic 8EC90001-F315-4F60-9FB8-838830DAEA50...
    peripheral.writeValue(0x04, 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): 600401
    Data object executed
    Writing to characteristic 8EC90001-F315-4F60-9FB8-838830DAEA50...
    peripheral.writeValue(0x010200100000, 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
    Data object 14/23 created
    Uploading firmware...
    Sending firmware to DFU Packet characteristic...
    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): 60030100e00000be8adceb
    Checksum (Offset = 57344, CRC = EBDC8ABE) received
    Writing to characteristic 8EC90001-F315-4F60-9FB8-838830DAEA50...
    peripheral.writeValue(0x04, 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): 600401
    Data object executed
    Writing to characteristic 8EC90001-F315-4F60-9FB8-838830DAEA50...
    peripheral.writeValue(0x010200100000, 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
    Data object 15/23 created
    Uploading firmware...
    Sending firmware to DFU Packet characteristic...
    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): 60030100f00000800b213a
    Checksum (Offset = 61440, CRC = 3A210B80) received
    Writing to characteristic 8EC90001-F315-4F60-9FB8-838830DAEA50...
    peripheral.writeValue(0x04, 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): 600401
    Data object executed
    Writing to characteristic 8EC90001-F315-4F60-9FB8-838830DAEA50...
    peripheral.writeValue(0x010200100000, 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
    Data object 16/23 created
    Uploading firmware...
    Sending firmware to DFU Packet characteristic...
    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): 60030100000100f732db17
    Checksum (Offset = 65536, CRC = 17DB32F7) received
    Writing to characteristic 8EC90001-F315-4F60-9FB8-838830DAEA50...
    peripheral.writeValue(0x04, 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): 600401
    Data object executed
    Writing to characteristic 8EC90001-F315-4F60-9FB8-838830DAEA50...
    peripheral.writeValue(0x010200100000, 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
    Data object 17/23 created
    Uploading firmware...
    Sending firmware to DFU Packet characteristic...
    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): 6003010010010056df2ab9
    Checksum (Offset = 69632, CRC = B92ADF56) received
    Writing to characteristic 8EC90001-F315-4F60-9FB8-838830DAEA50...
    peripheral.writeValue(0x04, 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): 600401
    Data object executed
    Writing to characteristic 8EC90001-F315-4F60-9FB8-838830DAEA50...
    peripheral.writeValue(0x010200100000, 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
    Data object 18/23 created
    Uploading firmware...
    Sending firmware to DFU Packet characteristic...
    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): 60030100200100142b2ebb
    Checksum (Offset = 73728, CRC = BB2E2B14) received
    Writing to characteristic 8EC90001-F315-4F60-9FB8-838830DAEA50...
    peripheral.writeValue(0x04, 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): 600401
    Data object executed
    Writing to characteristic 8EC90001-F315-4F60-9FB8-838830DAEA50...
    peripheral.writeValue(0x010200100000, 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
    Data object 19/23 created
    Uploading firmware...
    Sending firmware to DFU Packet characteristic...
    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): 60030100300100f74e833b
    Checksum (Offset = 77824, CRC = 3B834EF7) received
    Writing to characteristic 8EC90001-F315-4F60-9FB8-838830DAEA50...
    peripheral.writeValue(0x04, 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): 600401
    Data object executed
    Writing to characteristic 8EC90001-F315-4F60-9FB8-838830DAEA50...
    peripheral.writeValue(0x010200100000, 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
    Data object 20/23 created
    Uploading firmware...
    Sending firmware to DFU Packet characteristic...
    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): 600301004001004e2abd08
    Checksum (Offset = 81920, CRC = 08BD2A4E) received
    Writing to characteristic 8EC90001-F315-4F60-9FB8-838830DAEA50...
    peripheral.writeValue(0x04, 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): 600401
    Data object executed
    Writing to characteristic 8EC90001-F315-4F60-9FB8-838830DAEA50...
    peripheral.writeValue(0x010200100000, 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
    Data object 21/23 created
    Uploading firmware...
    Sending firmware to DFU Packet characteristic...
    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): 600301005001006fbd4cdc
    Checksum (Offset = 86016, CRC = DC4CBD6F) received
    Writing to characteristic 8EC90001-F315-4F60-9FB8-838830DAEA50...
    peripheral.writeValue(0x04, 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): 600401
    Data object executed
    Writing to characteristic 8EC90001-F315-4F60-9FB8-838830DAEA50...
    peripheral.writeValue(0x010200100000, 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
    Data object 22/23 created
    Uploading firmware...
    Sending firmware to DFU Packet characteristic...
    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): 6003010060010057e663bc
    Checksum (Offset = 90112, CRC = BC63E657) received
    Writing to characteristic 8EC90001-F315-4F60-9FB8-838830DAEA50...
    peripheral.writeValue(0x04, 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): 600401
    Data object executed
    Writing to characteristic 8EC90001-F315-4F60-9FB8-838830DAEA50...
    peripheral.writeValue(0x0102a4010000, 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
    Data object 23/23 created
    Uploading firmware...
    Sending firmware to DFU Packet characteristic...
    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): 600301a461010038047536
    Checksum (Offset = 90532, CRC = 36750438) received
    Writing to characteristic 8EC90001-F315-4F60-9FB8-838830DAEA50...
    peripheral.writeValue(0x04, 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): 600401
    Data object executed
    Upload completed in 13.62 seconds
    [Callback] Central Manager did disconnect peripheral
    Disconnected by the remote device

Related