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

dfu service not getting discovered

I have used sofdevice v7.1.0 and nrf51 sdk 6.1.0 the ble_app_hrs project which has support of dfu is not discovering the dfu services. i have enabled the BLE_DFU_APP_SUPPORT flag , then also facing same issue.

Parents
  • @komal: Which project have you used? Have you used the ble_app_hrs_dfu.uvproj project ? The project should have the following file included : bootloader_util_arm.c, ble_dfu.c, dfu_app_handler.c

    You can check if ble_dfu_init() is called.

    bootloader.hex

    ble_app_hrs_dfu.hex

  • @kormal: From the log it seems that services discovery of DFUtag if not completed, a read request for handle 0x000E is not responded. This happens if the CCCD value has not been set. Usually when BLE_GATTS_EVT_SYS_ATTR_MISSING has not been handled properly.

    I have attached in my answer my bootloader hex file and the ble_app_hrs_dfu. Could you try to test using the hex files ? (Note: make sure you erase the whole chip before you flash the new bootloader)

    As you can find in the bootloader source code if BUTTON7 (Pin P0.07) is hold when reseting the chip, it will enter bootloader mode. Could you try that and update the firmware using your bootloader?

Reply
  • @kormal: From the log it seems that services discovery of DFUtag if not completed, a read request for handle 0x000E is not responded. This happens if the CCCD value has not been set. Usually when BLE_GATTS_EVT_SYS_ATTR_MISSING has not been handled properly.

    I have attached in my answer my bootloader hex file and the ble_app_hrs_dfu. Could you try to test using the hex files ? (Note: make sure you erase the whole chip before you flash the new bootloader)

    As you can find in the bootloader source code if BUTTON7 (Pin P0.07) is hold when reseting the chip, it will enter bootloader mode. Could you try that and update the firmware using your bootloader?

Children
No Data
Related