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

How to make beacon connectable

Hi Nordic,

I am trying to implement DFU-OTA in beacon. For that I am trying to make beacon connectable. My requirement is to work the beacon in non-connectable mode during normal operation whereas for implementing DFU, I need to make it connectable by using a button press.

What I have implemented - when a button is pressed, I stop the advertising and start the connectable advertising.

Issue faced- I am not able to perform DFU. My reasoning is that, since I have copied the DFU relevant code snippets from working example code, there is nearly no chance of error in DFU part. So I am guessing the issue lies with transition from non-connectable to connectable mode.

Is my implementation for connectable mode correct?If there is a better way of implementing the following, please suggest..

Parents
  • No, it doesn't matter which UUID you advertise in the advertising packet. The way DFU buttonless works is:

    Device advertises (doesn't matter what in the advertising packet)

    DFU app connect, check if the DFU service is in the Attribute table

    DFU app enable CCCD and send DFU command (0x01) to the DFU control point

    Device disconnects and switchs to Bootloader

    Bootloader advertises.

    DFU app connect again to the bootloader and perform DFU.

    Could you debug and check at which step it's failed ?

    I would assume you have tested DFU with button (to switch to bootloader mode) and it worked, you managed to DFU update your application multiple times ?

Reply
  • No, it doesn't matter which UUID you advertise in the advertising packet. The way DFU buttonless works is:

    Device advertises (doesn't matter what in the advertising packet)

    DFU app connect, check if the DFU service is in the Attribute table

    DFU app enable CCCD and send DFU command (0x01) to the DFU control point

    Device disconnects and switchs to Bootloader

    Bootloader advertises.

    DFU app connect again to the bootloader and perform DFU.

    Could you debug and check at which step it's failed ?

    I would assume you have tested DFU with button (to switch to bootloader mode) and it worked, you managed to DFU update your application multiple times ?

Children
No Data
Related