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.

Parents
  • I've checked it against clean sdk installation and it works. Here's the diff against freshly unpacked version of the sdk

    diff --git a/nRF5x_SDK12/components/ble/ble_services/ble_dfu/ble_dfu.c b/nRF5x_SDK12/components/ble/ble_services/ble_dfu/ble_dfu.c
    index 266d10c..2ad5d5c 100644
    --- a/nRF5x_SDK12/components/ble/ble_services/ble_dfu/ble_dfu.c
    +++ b/nRF5x_SDK12/components/ble/ble_services/ble_dfu/ble_dfu.c
    @@ -88,6 +88,7 @@ static uint32_t rx_char_add(ble_dfu_t * p_dfu, const ble_dfu_init_t * p_dfu_init
         memset(&char_md, 0, sizeof(char_md));
    
         char_md.char_props.notify = 1;
    +   char_md.char_props.write = 1;
         char_md.p_char_user_desc  = NULL;
         char_md.p_char_pf         = NULL;
         char_md.p_user_desc_md    = NULL;
    

    I use experimental_ble_app_buttonless_dfu as my guinea pig and nRF Connect for Android or PC as the trigger app. After connecting to Nordic_template enable notification on the unknown characteristic (DFU control point) inside unknown service (write 0x01 into it's CCCD) and then write 0x01 as characteristic value. Connection should be dropped and board should reboot. If you enable RTT logging the log will clearly say that it's going into bootloader.

Reply
  • I've checked it against clean sdk installation and it works. Here's the diff against freshly unpacked version of the sdk

    diff --git a/nRF5x_SDK12/components/ble/ble_services/ble_dfu/ble_dfu.c b/nRF5x_SDK12/components/ble/ble_services/ble_dfu/ble_dfu.c
    index 266d10c..2ad5d5c 100644
    --- a/nRF5x_SDK12/components/ble/ble_services/ble_dfu/ble_dfu.c
    +++ b/nRF5x_SDK12/components/ble/ble_services/ble_dfu/ble_dfu.c
    @@ -88,6 +88,7 @@ static uint32_t rx_char_add(ble_dfu_t * p_dfu, const ble_dfu_init_t * p_dfu_init
         memset(&char_md, 0, sizeof(char_md));
    
         char_md.char_props.notify = 1;
    +   char_md.char_props.write = 1;
         char_md.p_char_user_desc  = NULL;
         char_md.p_char_pf         = NULL;
         char_md.p_user_desc_md    = NULL;
    

    I use experimental_ble_app_buttonless_dfu as my guinea pig and nRF Connect for Android or PC as the trigger app. After connecting to Nordic_template enable notification on the unknown characteristic (DFU control point) inside unknown service (write 0x01 into it's CCCD) and then write 0x01 as characteristic value. Connection should be dropped and board should reboot. If you enable RTT logging the log will clearly say that it's going into bootloader.

Children
No Data
Related