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

OTA DFU CRC check taking too long

Hello,

I have implemented OTA DFU for Xamarin based on the implementation of Nordic's official library for Android. It works in general, but I'm seeing a bottleneck in CRC checking. Namely, after each batch is sent (4kB in my case), command 0x03 is sent to the control point characteristic. Command 0x03 returns the CRC for the precious batch. It takes 1.5 - 2 seconds to execute this command, which is a lot considering it's just 1 message.

Any idea why this is the case?

Parents
  • Hi Aleksandar, 

    which SDK version are you using? Which connection interval are you using?

    1.5 - 2 seconds for calculating the CRC of a 4kB chunk sounds way to much. The 4kB chunk will be divided into smaller chunks that will fit inside the MTU of the bluetooth packet. The CRC of each of these packets will be calculated on the fly, so when the 0x03 command is sent to the DFU target, the CRC calculation should be ready. 

    Would it be possible for you to capture a sniffer trace of the on air packets? 

    Best regards

    Bjørn 

Reply
  • Hi Aleksandar, 

    which SDK version are you using? Which connection interval are you using?

    1.5 - 2 seconds for calculating the CRC of a 4kB chunk sounds way to much. The 4kB chunk will be divided into smaller chunks that will fit inside the MTU of the bluetooth packet. The CRC of each of these packets will be calculated on the fly, so when the 0x03 command is sent to the DFU target, the CRC calculation should be ready. 

    Would it be possible for you to capture a sniffer trace of the on air packets? 

    Best regards

    Bjørn 

Children
Related