InfiniTimeOrg / InfiniTimeOrg/InfiniTime

DFU fails with "Android DFU library" for version > 1.11.1

Open
#1,933 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
Dominant language
C
Stars
3.4k
Forks
1.1k
PR merge metrics
No merged PRs in 30d

Description

Verification
  • I searched for similar bug reports (including closed issues) and found none was relevant.
What happened?

Firmware update failed with error message: "Disconnected from GATT server"

What should happen instead?

Firmware should be updated

Reproduction steps

Create a flutter app
Install dependency:
nordic_dfu: 6.0.1

Add code for DFU with this library.
Build the flutter application

Try updating the infinitime image with the new built firmware.
The firmware update fails with error message:

Disconnected from GATT server

More details?

Logs for DFU failure:

2023-12-22 13:13:20.835 11446-16181 DfuImpl         com.project.project         I Sending Start DFU command (Op Code = 1, Upload Mode = 4)
2023-12-22 13:13:20.924 11446-16181 DfuImpl         com.project.project         I Sending image size array to DFU Packet (0b, 0b, xxxxxxb)
2023-12-22 13:13:26.100 11446-16181 DfuImpl         com.project.project         I Sending the Initialize DFU Parameters START (Op Code = 2, Value = 0)
2023-12-22 13:13:26.189 11446-16181 DfuImpl         com.project.project         I Sending 14 bytes of init packet
2023-12-22 13:13:26.189 11446-16181 DfuImpl         com.project.project         I Sending init packet (Value = xx-xx-xx-xx-xx-xx-xx-xx-xx-xx-xx-xx-xx-xx)
2023-12-22 13:13:26.194 11446-16181 DfuImpl         com.project.project         I Sending the Initialize DFU Parameters COMPLETE (Op Code = 2, Value = 1)
2023-12-22 13:13:27.231 11446-16181 DfuImpl         com.project.project         I Sending Receive Firmware Image request (Op Code = 3)
2023-12-22 13:13:27.323 11446-16181 DfuImpl         com.project.project         I Uploading firmware...
2023-12-22 13:13:32.410 11446-11464 BluetoothGatt      com.project.project         D onClientConnectionState() - status=0 clientIf=5 device=xx:xx:xx:xx:xx:xx
2023-12-22 13:13:32.410 11446-11464 DfuBaseService     com.project.project         I Disconnected from GATT server
2023-12-22 13:13:32.411 11446-16181 DfuImpl         com.project.project         E Disconnected while sending data

The android-dfu-library version used in the project is: 2.3.0.
The latest working stable version of android-dfu-library for updating the firmware is 1.11.1.

For same chip with this flutter application (with newer android-dfu-library version), DFU works for firmwares other than Infinitime.
URL for Android DFU library: https://github.com/NordicSemiconductor/Android-DFU-Library

Version

main

Companion app

No response

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No repository file or test is named. Start by reproducing the failure with nordic_dfu 6.0.1 and android-dfu-library 2.3.0, then compare it with the working 1.11.1 setup using the supplied GATT and DFU logs. Done means identifying the compatibility cause and verifying a firmware update with the newer library.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, flutter
Domain
embedded-iot, mobile-dev
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.