tchebb / bose-dfu

Firmware updater for various Bose devices
MIT License
41 stars 4 forks source link

Bose QC35 not entering DFU mode #8

Closed unchiu closed 11 months ago

unchiu commented 12 months ago

Hello! I tried to downgrade Bose QC35 but it seems to me that it can't go into DFU mode. Can you give an advice? Thanks

C:\Users\user\Downloads>bose-dfu-v1.1.0-win-x86_64.exe info
USB serial: 072546Z62705849AE
HW serial: 072546Z62705849AE
Device model: Wolfcastle
Current firmware: Main 2.5.5.828

C:\Users\user\Downloads>bose-dfu-v1.1.0-win-x86_64.exe enter-dfu -f
[INFO  bose_dfu] Note that device may take a few seconds to change mode

C:\Users\user\Downloads>bose-dfu-v1.1.0-win-x86_64.exe info -f
[WARN  bose_dfu] Device has not been tested with bose-dfu; by proceeding, you risk damaging it
[WARN  bose_dfu] Cannot determine device's mode; command may damage devices not in normal mode
USB serial: 072546Z62705849AE
Error: USB transaction error while requesting info field

Caused by:
    hidapi error: A device attached to the system is not functioning.

C:\Users\user\Downloads>
tchebb commented 11 months ago

It looks to me like it did enter DFU mode. info only works for devices in non-DFU mode, which is why it failed when you forced it to run against the DFU-mode device with -f. list is the command that'll show what devices are connected and what mode each one is in. The current release of bose-dfu will report the QC35 II's DFU mode as "unknown mode", but you should still be able to run download if you use -f.

Be aware that the QC35 II seems to have an additional "ext" firmware that bose-dfu isn't able to flash yet, which means it might not work as expected once you downgrade it. See #6 for details. Based on others' reports, it shouldn't brick your device or make it unusable though, so feel free to try and report back. If you run into issues, you can always use bose-dfu to flash 2.5.5 and restore your device to its current state.

unchiu commented 11 months ago

You are right. The device was in DFU mode. I have two QC35 devices, not QC35 II. Anyway, the firmware looks similar, both have the "ext" component. I made downgrade from v3.0.3 to v2.5.5, and then from v2.5.5 to v1.0.6. When downgrading to 1.0.6 the headset lost the pairing list but I did pair again and everything is fine. I don't know about the "ext" component of the firmware (which is almost 10 times bigger than the DFU file), it seems to me that is not needed. Tested with two melodies, sounds good so far. Thank you!

v2.5.5 -> v1.0.6

C:\Kit\BOSE_DFU>bose-dfu-v1.1.0-win-x86_64.exe info
USB serial: 072545Z71115050AE
HW serial: 072545Z71115050AE
Device model: Wolfcastle
Current firmware: Main 2.5.5.828

C:\Kit\BOSE_DFU>bose-dfu-v1.1.0-win-x86_64.exe enter-dfu -f
[INFO  bose_dfu] Note that device may take a few seconds to change mode

C:\Kit\BOSE_DFU>bose-dfu-v1.1.0-win-x86_64.exe list
05a7:400c 072545Z71115050AE Bose QuietComfort 35 [UNTESTED device in unknown mode]

C:\Kit\BOSE_DFU>bose-dfu-v1.1.0-win-x86_64.exe download Wolfcastle_1.0.6_stack_plus_app.dfu -f
[WARN  bose_dfu] Device has not been tested with bose-dfu; by proceeding, you risk damaging it
[WARN  bose_dfu] Cannot determine device's mode; command may damage devices not in DFU mode
[INFO  bose_dfu] Update verified to be for selected device
[INFO  bose_dfu] Beginning firmware download; it may take several minutes; do not unplug device
[INFO  bose_dfu::protocol] Waiting 44.33s, as requested by device, for firmware to manifest

C:\Kit\BOSE_DFU>bose-dfu-v1.1.0-win-x86_64.exe leave-dfu -f
[WARN  bose_dfu] Device has not been tested with bose-dfu; by proceeding, you risk damaging it
[WARN  bose_dfu] Cannot determine device's mode; command may damage devices not in DFU mode

C:\Kit\BOSE_DFU>bose-dfu-v1.1.0-win-x86_64.exe info
USB serial: 072545Z71115050AE
HW serial: 072545Z71115050AE
Device model: Wolfcastle
Current firmware: Main 1.0.6.325

C:\Kit\BOSE_DFU>

and back to v2.5.5 (for regaining noise cancellation setting in Bose Connect app)

C:\Kit\BOSE_DFU>bose-dfu-v1.1.0-win-x86_64.exe info
USB serial: 072545Z71115050AE
HW serial: 072545Z71115050AE
Device model: Wolfcastle
Current firmware: Main 1.0.6.325

C:\Kit\BOSE_DFU>bose-dfu-v1.1.0-win-x86_64.exe enter-dfu -f
[INFO  bose_dfu] Note that device may take a few seconds to change mode

C:\Kit\BOSE_DFU>bose-dfu-v1.1.0-win-x86_64.exe list
05a7:400c 072545Z71115050AE Bose QuietComfort 35 [UNTESTED device in unknown mode]

C:\Kit\BOSE_DFU>bose-dfu-v1.1.0-win-x86_64.exe download Wolfcastle_2.5.5_stack_plus_app.dfu -f
[WARN  bose_dfu] Device has not been tested with bose-dfu; by proceeding, you risk damaging it
[WARN  bose_dfu] Cannot determine device's mode; command may damage devices not in DFU mode
[INFO  bose_dfu] Update verified to be for selected device
[INFO  bose_dfu] Beginning firmware download; it may take several minutes; do not unplug device
[INFO  bose_dfu::protocol] Waiting 47.157s, as requested by device, for firmware to manifest

C:\Kit\BOSE_DFU>bose-dfu-v1.1.0-win-x86_64.exe leave-dfu -f
[WARN  bose_dfu] Device has not been tested with bose-dfu; by proceeding, you risk damaging it
[WARN  bose_dfu] Cannot determine device's mode; command may damage devices not in DFU mode

C:\Kit\BOSE_DFU>bose-dfu-v1.1.0-win-x86_64.exe info
USB serial: 072545Z71115050AE
HW serial: 072545Z71115050AE
Device model: Wolfcastle
Current firmware: Main 2.5.5.828
tchebb commented 11 months ago

Great, thanks for the report! Would you mind also sharing the output of list in non-DFU mode? With that information, I can mark the QC35 as partially supported in the next release just like the QC35 II.

Closing this issue since you were able to downgrade.

unchiu commented 11 months ago

Here is the needed info:

D:\BOSE_DFU>bose-dfu-v1.1.0-win-x86_64.exe info
USB serial: 072546Z62705849AE
HW serial: 072546Z62705849AE
Device model: Wolfcastle
Current firmware: Main 2.5.5.828

D:\BOSE_DFU>bose-dfu-v1.1.0-win-x86_64.exe list
05a7:40fe 072546Z62705849AE Bose QuietComfort 35 [compatible device in normal mode]

D:\BOSE_DFU>

Thank you again for your great work!