Beware that this post is related to an SDK in maintenance mode
More Info: Consider nRF Connect SDK for new designs

OTA DFU cant find bootloader

nRF5 SDK SD140

Using the nRF Connect Android app with the DFU utility, looking at the log I send the Enter Bootloader request and get a thumbs up back (op code = 1, status = 1), then the following occur:

[DFU] gatt.refresh()
[DFU] gatt.dsconnect()
[DFU] gatt.close()
[DFU] Sanning for the DFU Bootloader... (timeout 5000ms)
[Callback] Connection state changed with status: 8 and new state: DESCONNECTED (0)

So presumably it's not finding the DFU bootloader. Is this referring to something on the board or something in the DFU package?

Parents
  • Hi,

    1) What SDK version?

    2) Are you using the ble_app_buttonless_dfu example?

    3) Any log output? Either RTT or UART backend

    4) DK or custom board?

    5) If it's a custom board, do you have a LF crystal on your board?

    6) What nRF52 device?

    7) Have you done any changes to the bootloader?

  • 1) SDK 17.1.0
    2) I am using my own customized ble_app_uart and adding on buttonless DFU capability from the provided examples.
    3) I get RTT output until "<info> app: Device is preparing to enter bootloader mode" then it cuts off after and is stuck
    4) Custom board using nRF52840
    5) (This might be an issue) On the application I have the LF source set to RC, but on the bootloader I had it set to XTAL.
    6) nRF52840
    7) I tried changing the WDT timout_ticks in nrf_bootloader_wdt_feed_timer_start to 60000 given other threads on DevZone to no avail. I also changed the contents of the public key.

  • JGusler said:
    5) (This might be an issue) On the application I have the LF source set to RC, but on the bootloader I had it set to XTAL.

    Yes, if you don't have LF crystal on your custom board, make sure to set LF source to RC in the bootloader project as well.

  • I have implemented that change and tried again but I am still getting the same issue where it eventually disconnects with a GATT CONN TIMEOUT error. That being said, the behavior leading up to that was slightly different in repeated cases.

    It begins the timeout for scanning for the DFU bootloader

    Connection parameters updated

    No DFU bootloader found

    DFU service started

    Firmware file opened succesfully

    Two 1 second waits

    Connecting to DFU target...

    Connection (with autoconnect = false) 

    gatt.discoverServices()

    DISCONNECT 5 seconds after the parameters update but 8 seconds after the scanning begins

Reply
  • I have implemented that change and tried again but I am still getting the same issue where it eventually disconnects with a GATT CONN TIMEOUT error. That being said, the behavior leading up to that was slightly different in repeated cases.

    It begins the timeout for scanning for the DFU bootloader

    Connection parameters updated

    No DFU bootloader found

    DFU service started

    Firmware file opened succesfully

    Two 1 second waits

    Connecting to DFU target...

    Connection (with autoconnect = false) 

    gatt.discoverServices()

    DISCONNECT 5 seconds after the parameters update but 8 seconds after the scanning begins

Children
Related