-
Notifications
You must be signed in to change notification settings - Fork 274
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
dfu update failed (device disconnected) #376
Comments
Hello,
I wonder why. In Legacy DFU, unless you use Are you sending the same fw using 2.3.0 and 1.11.0? Could you share log from 1.11.0? |
Hello, yes same FW. I used the same FW and same phone Redmi 9C.
Yes same fw, I bumped on my project the DFU library from 1.11.0 to 1.12.0 and it work well too How I initialize the DfuServiceInitiator // Kick off DFU
final DfuServiceInitiator starter = new DfuServiceInitiator(bleAddress)
.setDeviceName(bluetoothManager.getAdapter().getRemoteDevice(bleAddress).getName())
.setForceDfu(true)
.setNumberOfRetries(DFU_NUMBER_OF_RETRIES)
.setPacketsReceiptNotificationsEnabled(true)
.setPacketsReceiptNotificationsValue(PACKETS_RECEIPT_NOTIFICATIONS_VALUE)
.setKeepBond(keepBond); Logs DFU lib 2.3.0
DFU lib 1.12.0
|
Did you try disabling MTU request when using 2.3.0? |
I disabled the MTU request with 2.3.0 but I got the same behavior. DfuServiceInitiator
Logs 2.3.0
|
Hmm.. I see that 1.11 spends almost 7 seconds erasing the secondary slot:
but 2.3.0 gets a disconnection after just 4:
|
Still have the issue with some mobiles with the latest app DFU 2.3.1
|
This, actually, indeed may be due to the remote not sending any packets while it erases the slot. Have a look at the log I pasted before:
The Supervision Timeout was set to 400, which translates to 4 seconds. And exactly after 4 seconds the connection is terminated. If it is possible to modify the fw to request longer connection interval, that would help. Or, we can add a Connection Priority request from Android just before sending the sizes. Starting from Android 8+ Android requests 5 seconds Supervision Timeout, but seems like you need almost 7. I wonder why 1.11 works... |
The logs from 1.11 you pasted above also have 4 seconds Supervision Timeout:
|
Perhaps it's not the Supervision Timeout, after all. |
I tried on an other phone (samsung a15) with the latest version (2.5.0) of DFU lib but I still have an issue with the latest one and I notice that with an old version (2.1.0) the update works I tested both versions on the same phone, same application I only changed the used version of the dfu library. DFU Bootloader version:
Device information:
With Android DFU lib 2.5.0 (not working)
With Android DFU lib 2.1.0 (working)
How I initialize the DfuServiceInitiator
|
Hi, |
DFU Bootloader version (please complete the following information):
Device information (please complete the following information):
Your question
DFU doesn't work , I get errors:
I notice when my phones are bonded to the nRF device the DFU is working.
DFU library 1.11.0 is working on Redmi 9C with or without bonding.
Logs
On Redmi 9C
on Samsung S20 FE
The text was updated successfully, but these errors were encountered: