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

Have a firmware version able to be sent over the air

Hi all,

I've developed a firmware solution for one of my clients. I've compiled using Keil, testing it on a board which previously had SD110. Then I delivered .hex file to him, waiting for his feedback.

He is only able to download the firmware over the air, and when he tried to do so, MCP stated that there was not DFU on the firmware.

I've tried with mergehex utility, to merge my app hex file with DFU.hex file, and then MCP stated "Data Size Exceeds Limits". I've tried several mergings, including bootloader, SD110 and DFU... MCP always states "Data Size Exceeds Limits".

Can anyone help us with this issue?

What should be done after compiling in order to be able to perform an OTA update?

Thank you in advance.

  • Hi,

    What SDK is the bootloader based on? If it's from SDK v7.x.x. or later you need to make a DFU distribution packet (.zip) of the .hex file as explained here. This is due to additional safety check on the image. However, with SDKs prior to version 7 you must send the .hex only, using nRFtoolbox/Master Control Panel on Android or iOS. PC version of MCP is not backwards compatible.

    For DFU updates you can only combine bootloader and Softdevice. Application update needs to be separate. So if DFU.hex is you bootloader, it needs to be updated separately. Also, the UICR section needs to be stripped from the .hex if you're converting it to .bin.

Related