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

For Legacy DFU, what actually happens when the firmware is uploaded?

I am currently looking into the Legacy DFU process. Currently the only way to actually conduct a Legacy DFU is via the nRF Connect Mobile App. After conducting a successful Legacy DFU procedure, looking at the logs shows what is being written and read to and from the device.

For example, I can clearly see where the init file is sent by the following log:

12:44:34.469	[DFU] Data written to 00001532-1212-efde-1523-785feabcd123, value (0x): FF-FF-FF-FF-FF-FF-FF-FF-01-00-FE-FF-1E-C7
12:44:34.469	[DFU] Writing to characteristic 00001531-1212-efde-1523-785feabcd123
12:44:34.470	[DFU] gatt.writeCharacteristic(00001531-1212-efde-1523-785feabcd123)
12:44:34.536	[DFU] Data written to 00001531-1212-efde-1523-785feabcd123, value (0x): 02-01
12:44:34.537	[DFU] Initialize DFU Parameters completed

However, when it comes to the actual firmware image itself, this is all the log shows:

12:44:34.595	[DFU] Data written to 00001531-1212-efde-1523-785feabcd123, value (0x): 03
12:44:34.596	[DFU] Receive Firmware Image request sent
12:44:34.645	[DFU] Uploading firmware...
12:44:34.645	[DFU] Sending firmware to characteristic 00001532-1212-efde-1523-785feabcd123...
12:44:39.098	[DFU] Notification received from 00001531-1212-efde-1523-785feabcd123, value (0x): 10-03-01
12:44:39.098	[DFU] Response received (Op Code = 3, Status = 1)
12:44:39.098	[DFU] Upload completed in 3760 ms

Here I can see that 0x03 is written to the UUID 00001531-1212-efde-1523-785feabcd123 indicating to the target device that a firmware image is about to be sent. However, the following line merely indicates that the firmware is being uploaded.

My question is how exactly is the firmware upload done? Are all of the hex values in the .bin file written manually? Or is the file itself transferred to the target device? Any help would be appreciated.

Parents Reply Children
No Data
Related