DFU OTA suddenly fails on "non secure" bootloaders but works on "secure" bootloaders.

Suddenly DFU OTA fails most of the time while trying to update units with code & "not secure" bootloader that has been working for years. The FW upload stops at 2% to 8% but if i restart my phone sometimes it reaches 15% and on happy days I can update the unit after rebooting the phone.

With the same DFU app DFU update works well with another unit with "secure" bootloader.

I am NOT trying to update a unit with "not secure" bootloader with code made for units with "secure bootloader" and vice versa.

What can suddenly be the problem?

Phone: Samsung Galaxy S21 Ultra 5G

Android version: 14

DFU app version: 2.9.0 (build 24123065)

Parents Reply Children
  • Hi again.

    The problem has also been encounteed by our customers who can no longer update our products.

    - The "legacy" DFU bootloader has been the same and working in our product for several years, the DFu bootloader can't be the   problem.

    - The same "Update file" that has been working for years can't no longer be sent to the "product". The "Update file" can't be the problem.

    Devices with secure DFU bootloaders can be updated without problem.

    Devices with legacy DFU bootloaders can't be updated.

    I have found on Internet 2 possible reasons to this problem and they are:

    1. MTU Size Mismatch: DFU libraries, such as the Nordic DFU Library, often default to setting the Maximum Transmission Unit (MTU) size to 247 bytes. However, legacy bootloaders typically support a smaller MTU size of 23 bytes. This discrepancy can lead to upload failures, where the DFU process stalls or does not complete successfully. A user reported that reducing the MTU size to 23 bytes resolved the issue in their case. GitHub
    1. Secure DFU Service Blocking: Some platforms, like Google's Web Bluetooth API, have blacklisted the UUID associated with Nordic's legacy DFU service due to its lack of security features. This blacklist prevents web applications from utilizing this DFU method, leading developers to seek alternative solutions, such as implementing the Secure DFU Service or using different bootloader configurations. RAKwireless Forum

    Can you please help me find a solution to our problem?

     

  • Hi yet again.

    Do you have any windows application for DFU OTA update?

  • Do you have any windows application for DFU OTA upd

    We had a program called "Master Control Panel" that supported legacy DFU, but it was deprecated several years ago and is not tested on modern Windows systems.

  • Hi,
    When it comes to Samsung Galaxy A tab you need to disable the MTU request in DFU Service Initiator. The chipset present on the device (and perhaps some other) fails negotiating Data Length Extension and claims it can only send 27-byte long packets (and received 251), but then it starts sending 251-byte long packets, and the connection is terminated.

    Solution is to disable MTU > 23 in the DFU library, so all packets sent from the Android side are short enough for the target to not notice the failure. DFU will take longer, but it will work.

    You may try using nRF DFU app, where you can disable MTU in Settings.

  • Thanks for the suggestion but it doesn't help unchecking the "Request high MTU" checkbox.

Related