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

OTA DFU: CRC Error Fixed after re-program bootloader

situation:

We are developing an nRF51 application with OTA DFU. we use SDK 9.0.0 and the DFU bootloader version is v8. We have prepared different two packages. Single OTA DFU works with the each package. Other conditions are as follows:

  • IC: nRF51822 CEAA
  • softdevice: s110
  • bootloader: built ourselves based on SDK 9.0.0 example with gcc
    • Difference with example code: RAM layout, GPIO pin layout, Clock source to internal, BLE Tx power
  • OTA DFU packaging: pc-nrfutil
  • Controller of OTA DFU: iOS nRF Toolbox

symptoms:

  • When we try OTA DFU with one package after other package is already updated, CRC error is responded. And OTA DFU does not work any more even with the first package.
    • works: Package A -> Package A -> Package A -> ...
    • works: Package B -> Package B -> Package B -> ...
    • not works: Package A -> Package B, not work any more even with A
    • not works: Package B -> Package A, not work any more even with B
  • After erase the all images and re-program bootloader via JLink, we can use OTA DFU.

Because of this symptoms, we can update the firmware only once with OTA. Do you have any ideas?

Parents
  • It seems to have failed that the bootloader erase flash for preparing swap before receiving application or bootloader image.

    Reason I think so:

    When I edit bootloader code to skip CRC check and I do OTA DFU with packages that just different device name with three characters, it almost works but the device name is strange. The device name become close from "ZZZ" to "AAA".

Reply
  • It seems to have failed that the bootloader erase flash for preparing swap before receiving application or bootloader image.

    Reason I think so:

    When I edit bootloader code to skip CRC check and I do OTA DFU with packages that just different device name with three characters, it almost works but the device name is strange. The device name become close from "ZZZ" to "AAA".

Children
No Data
Related