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

DFU in Experimental: ATT_MTU Throughput Example

Hello,

I'd like to develop and base on the "Experimental: ATT_MTU Throughput Example" project.

Seems like the example project doesn't implement the DFU (aka, OAD).

How can I add this feature to the project easily? Do you have an example for that? Would you evaluate it as "risky" / "complicated"?

Thanks in advanced,

Amit

  • Hi Edvin,

    Thank you for clarifying and insisting :) It helped.

    So you first need a bootloader, and then you need a way to tell the bootloader to enter DFU mode.
    1. Bootloader -
    Does the bootloader work with the example project "Experimental: ATT_MTU Throughput Example"?
    Can it be added easily?
    No restrictions due to image size, etc'?
    2. Trigger DFU mode-
    Our first stage would be to use a BLE service to trigger DFU mode.
  • Hello,

    Let me insist some more Slight smile did you read the guide from the link?

    The bootloader and application are two separate projects, and two separate .hex files. 

    The reason I am sceptical with regards to the ATT_MTU throughput example is that it is a quite complex setup. There are other examples in the SDK that works both as a central and a peripheral, if that is what you need. You can for example look at the ble_app_hrs_rscs_relay example. 

    So:

    1: Yes. As mentioned the bootloader and your application are two different projects, and two different hex files that are programmed separately. There is a restriction based on the actual flash size of the nRF52840, but it can be quite large. Here is a screenshot of the flash of the nRF52840 containing softdevice, application(which the mouse hovers over), and the bootloader on the top.

    The grey area is free space.

    2: If your first stage is to trigger DFU via a BLE service, I recommend that you look into the ble_app_buttonless_dfu example, which contains a service that does this. This is a peripheral example, but you need to see how the application handles the event that triggers the DFU. 

    Again. Please go through the guide even if it is not exactly what you need. It will make you more familiar with how the bootloader works.

    BR,

    Edvin

Related