nrf52832 OTA over ESB based on SDK17.1.0

Hi everyone:    I developed an application based on ESB wireless communication protocol ofr the nRF52832, and I would like to perform an OTA DFU with it.    Do you know any example of some over the air FW upgrade of nRF52832 chip via ESB protocol.

    SDK is 17.1.0.

Best regards,

Lurn.

  • I don't know the standard process but in my test, the log shows it doesn't delete the app, and after the bootloader update, it will enter the old app.

    BR,

    Lurn

  • Hi Edvin

    If I don't want to use nrfutil do you guys have any other example for me to update the version?

    And how can I get or set the firmware version in my program?

    Best Regards

    Lurn

  • Hello Lurn,

    Sorry for the late reply. I have been on vacation. 

    It seems like this ticket got the status "verified answer" before your last reply, meaning it disappeared from my list. Did you solve the issue from about 1 month ago?

    Regarding your last question.

    nrfutil is the only officially supported tool that we have. However, it is open source, and you can find the source code on GitHub.

    We do have an experimental implementation for the DFU master (the device that sends the packet) over UART, so perhaps you can look into that. It is found in the getting started with nRF5 SDK DFU blog post. Search for "DFU Master code".

    However, you probably still want to use nrfutil to generate your images. This is also where you set the firmware version. By default, this version is not stored in the application itself, but in the bootloader settings, which are generated when you do the DFU. So it is part of the DFU image, but not the application (meaning the application is not aware of what version it is running). If you need the application to know, you need to hard code this into your application (as a #define). 

    Best regards,

    Edvin

  • Hi Edvin,

    It seems like this ticket got the status "verified answer" before your last reply, meaning it disappeared from my list. Did you solve the issue from about 1 month ago?

    Yes, I can update via uart now.

    I was found the source code on GitHub, but it is implemented in python and contains library files, I want to use it on ARM, it doesn't seem feasible.

    And yes I still want to use nrfutil because I have to set the firmware version.

    if there is no other way, I will try to use BLE to update.

    If I use BLE to upgrade, and my main application is used ESB, will the two of them conflict?

    Best regards,

    Lurn

  • Lurn_Z said:
    If I use BLE to upgrade, and my main application is used ESB, will the two of them conflict?

    Not other than that the softdevice will have to be present in flash. You don't need to enable it in your application.

    So your first step before trying to perform a DFU would be to make sure that your application runs as intended when the softdevice is present in the flash of the nRF52. Just to make sure that you have the correct start addresses for both RAM and Flash in your application.

    Best regards,

    Edvin

Related