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

DFU Peripheral to Central?

Hi all

Is possible have DFU in the peripheral side to update a Central app program? Is there example doing it?

I have a Peripheral (custom board nRF52 dongle) connected to a PC, and I want to update the application program in the Central side (remote battery powered) using DFU.

Is possible to do a DFU Periphera-to-Central role instead of Central-to-Peripheral?

Thanks

Parents
  • Hi Arepa,

    Does it have to be the remote device running in central mode when you are doing DFU ?

    We currently don't have an example for that.

    But please be noted that the S132 is capable of running in both central and peripheral. So there is an option that you run your device in central mode, then you send a command from the peripheral connected PC that the remote device switch to bootloader and starts as a peripheral. You then can also switch the peripheral into central mode to do DFU update.

    With this solution you only need to make the DFU master part which run on the PC. (We don't have this part yet). Alternatives are you can update using a phone or from PC via nrfutil tool (if you run the dongle with connectivity firmware).

    If you really have to keep the remote device in central role, then you need to implement your own bootloader. You can reuse many parts from the default bootloader, you can set up a GATT server on the central side and receive image to that server. Only difference here is the DFU master advertise, the DFU target connects instead of the other way around.

  • Hi Hung,

    I have only one peripheral advertising all the time (it is attached to a PC), and I have a variable number the remote central devices monitoring the temperature and self-battery state. Every 10 mins each central wake up from system_off starts to scan for 1 sec for a connectable peripheral and sent the temperature and seft battery level over BLE.

    Setup:

    Advertising interval 20ms

    Peripheral power 4dBm

    payload 10bytes

    battery 3v

    DCDC enabled on the Central side(remote)

    Connection every 10mins and scanning window for 1 second

    Connection event: send the payload and close the connection as quicky as possible.

    The central scan for 1 sec, in a testing scenario the time is lower around 50-100ms to detect the peripheral and send the payload and it goes to system off.

    My concern is if in this setup the battery can actually have a longer life. If it is otherwise I could switch the central and peripheral roles

    Thanks

Reply
  • Hi Hung,

    I have only one peripheral advertising all the time (it is attached to a PC), and I have a variable number the remote central devices monitoring the temperature and self-battery state. Every 10 mins each central wake up from system_off starts to scan for 1 sec for a connectable peripheral and sent the temperature and seft battery level over BLE.

    Setup:

    Advertising interval 20ms

    Peripheral power 4dBm

    payload 10bytes

    battery 3v

    DCDC enabled on the Central side(remote)

    Connection every 10mins and scanning window for 1 second

    Connection event: send the payload and close the connection as quicky as possible.

    The central scan for 1 sec, in a testing scenario the time is lower around 50-100ms to detect the peripheral and send the payload and it goes to system off.

    My concern is if in this setup the battery can actually have a longer life. If it is otherwise I could switch the central and peripheral roles

    Thanks

Children
No Data
Related