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

nRF51 OTA DFU: cannot write to DFU control point attribute

I am trying to do over-the-air (OTA) device firmware update (DFU) on a device with bootloader same to the "dfu_dual_bank_ble_s110" example in the latest nRF51 SDK. On the other end, I am using a BLE central module. To my naive understanding (please correct me if I am wrong), the DFU process is essentially comprised of writing to DFU control point (at handle 0x0F) and DFU packet chacteristics (at handle 0x0D) in DFU service (at handle 0x0C). All I need is to write to attributes at handle 0x10 (DFU control point value) and handle 0x0E (DFU packet value).

To start the OTA DFU, I first write 0x0001 to the attribute at handle 0x11 (DFU control point CCCD) to enable CCCD notification, which is completed successfully. And then I write the DFU start opcode 0x01 to the attribute at handle 0x10 to start the DFU process. However, I get error like "write not permitted". Could anyone tell me if I miss anything?

Parents
  • @diode: Could you confirm the issue you mentioned earlier was fixed ?

    I can see that the DFU Control Point has Write property which meant it can be written.

    Regarding the issue you are experiencing, have you tried to do DFU with the nRFToolbox app on iOS or Android ? Could you send the log file on Master Control panel when the error occurs ( you can find the log in File menu)

    For better debugging, I would need a sniffer trace to see what happened over the air. You would need an extra PCA10028 or PCA10031 or PCA10001 to act as the sniffer.

Reply
  • @diode: Could you confirm the issue you mentioned earlier was fixed ?

    I can see that the DFU Control Point has Write property which meant it can be written.

    Regarding the issue you are experiencing, have you tried to do DFU with the nRFToolbox app on iOS or Android ? Could you send the log file on Master Control panel when the error occurs ( you can find the log in File menu)

    For better debugging, I would need a sniffer trace to see what happened over the air. You would need an extra PCA10028 or PCA10031 or PCA10001 to act as the sniffer.

Children
No Data
Related