Skip to content

Commit

Permalink
Mark QuietComfort 35 II as supported
Browse files Browse the repository at this point in the history
Thanks @gaborrell (#4) and James Gregory (email) for testing this
device. Committing this now to record it, but I'm hesitant to include
this entry and the SoundLink Mini II one I added recently in a release
just yet. Two new pieces of information have come to light:

 1. All devices except the SoundLink Color II have additional .xuv
    firmware files that likely need to be flashed somehow to ensure
    correct operation. Without support for those, I don't think it's
    truthful to call ourselves "compatible". See #6.

 2. All three of the tested devices have the same normal mode PID,
    0x40fe. Assuming some untested devices do too, we should stop using
    that alone to mark a device as compatible.
  • Loading branch information
tchebb committed Sep 8, 2023
1 parent f79694c commit af3f244
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 4 deletions.
12 changes: 9 additions & 3 deletions 70-bose-dfu.rules
Original file line number Diff line number Diff line change
@@ -1,7 +1,13 @@
# Bose PIDs

# SoundLink Color II, normal and DFU modes respectively
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="05a7", ATTRS{idProduct}=="40fe|400d", TAG+="uaccess"
# All devices tested so far, normal mode
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="05a7", ATTRS{idProduct}=="40fe", TAG+="uaccess"

# SoundLink Mini II, DFU mode (normal mode shared with Color II)
# SoundLink Color II, DFU mode
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="05a7", ATTRS{idProduct}=="400d", TAG+="uaccess"

# SoundLink Mini II, DFU mode
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="05a7", ATTRS{idProduct}=="4009", TAG+="uaccess"

# QuietComfort 35 II, DFU mode
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="05a7", ATTRS{idProduct}=="4020", TAG+="uaccess"
8 changes: 7 additions & 1 deletion src/device_ids.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,17 @@ use std::fmt::Display;
const BOSE_VID: u16 = 0x05a7;
const BOSE_HID_USAGE_PAGE: u16 = 0xff00;

// TODO: It turns out that many devices share the same normal mode PID, so
// we should at least tweak the wording that currently lists everything with
// a PID in this list as a "compatible device". Perhaps add an additional
// match on product string?
const COMPATIBLE_DEVICES: &[DeviceIds] = &[
// Bose Color II SoundLink
bose_dev(0x40fe, 0x400d),
// Bose SoundLink Mini II
bose_dev(0x40fe, 0x4009), // Same normal PID as Color II, not a typo
bose_dev(0x40fe, 0x4009),
// Bose QC35 II
bose_dev(0x40fe, 0x4020),
];

// Use UsbId instead of DeviceIds since some incompatible devices don't have a concept of DFU mode.
Expand Down

0 comments on commit af3f244

Please sign in to comment.