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

DFU BLE Service B

I'm new to using micro controllers and for a project i have the nRF52 controller and i am trying to perform an OTA FW update using web bluetooth. When i connect to the board and try to use the DFU BLE service UUID i get an error that its blacklisted. Upon looking into it, i saw that it happened becaause its a legacy non-signed service.

the nRF52 SDK v17 has a new UUID for the BLE service but my board isn't broadcasting that. My question is how to i broadcast that new service 0xFE59? so i can perform the FW update.

  • Hi Oaketi,

    Could you please show a log/screenshot where you see the DFU BLE service UUID being blacklisted ? 
    Please be aware that to be able to support DFU update you would need to implement a bootloader in the NRF52. In addition, you need to put the device into DFU mode, if you want to do that automatically you would need to implement DFU buttonless service in your application. 

  • This is when i use the UUID "00001534-1212-efde-1523-785feabcd123"

  • Ok, so it's the configuration of Web Bluetooth to block the Legacy DFU UUID to avoid the device being updated with malicious web page. This is because the Legacy DFU protocol doesn't have data signing protection to verify that the image is from a trusted source. 

    I assume you are using the bootloader from SDK v11 and above ? 

    If you can update the bootloader (and the application ) to SDK v17 I would suggest to do so. If it's not possible to update the application and bootloader to SDK v17, you can think of modifying the Legacy DFU UUID to something else. You can generate a random 128 bit UUID for this purpose. But note that as mentioned in the documentation  you would risk the device being updated by attacker without any verification of the image. 

Related