This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

SDK12 ble_app_buttonless_dfu

Hi,

Im tryin to use the ble_dfu service example from SDK12, I get DFU SERVICE NOT FOUND when trying to update from Android. Any suggestions what to look for?

I use S132v3, bootloader is flashed and I performed successful upload of the application via BLE when there was no app loaded.

  • How does nrfutil decide if the device is in DFU mode? Is the control point characteristic supposed to have the same UUID in both the app and boot, or are they supposed to be different?

  • I don't clearly know it. Perhaps analyzing the init fucntions in both application and bootloader project can help to understand.

        nrf_ble_dfu.c\ble_dfu_init() - bootloader project uses following
    // This is a 16-bit UUID.
    #define BLE_DFU_SERVICE_UUID                 0xFE59
    
    #define BLE_DFU_CTRL_PT_UUID                 0x0001 
    #define BLE_DFU_PKT_CHAR_UUID                0x0002 
    const ble_uuid128_t base_uuid128 =
            0x50, 0xEA, 0xDA, 0x30, 0x88, 0x83, 0xB8, 0x9F,
            0x60, 0x4F, 0x15, 0xF3,  0x00, 0x00, 0xC9, 0x8E
        
    
    ble_dfu.c\ble_dfu_init() - buttonless example
    
        #define BLE_UUID_DFU_SERVICE 0x0001
    
        #define BLE_DFU_BASE_UUID   {{0x50, 0xEA, 0xDA, 0x30, 0x88, 0x83, 0xB8, 0x9F, 0x60, 0x4F, 0x15, 0xF3, 0x00, 0x00, 0x40, 0x8E}} /**< Used vendor specific UUID. */
    
  • Hi all, present I'm working on sdk11.0.0 now I need to move all my projects to sdk12.1.0 . And all my custom projects have dfu support. In sdk11.0.0. when I select board for dfu using "nRF Toolbox" it jumps from application to bootloader and it connects in bootloader automatically based on the bonding infromation saved from application to bootloader, but in sdk12 their no implementation for sharing bonding information from application to bootloader and it needs write 0x01 manually to control point characterstic and it jumps to bootloader and advertise as another device as "DfuTarg". Is their any special reason for not implementing sharing bonding information from appilication to bootloader from nordic side? If no how can I implement that is their any documentation for it?

Related