Skip to content

feat: add Bose QC Earbuds (1st Gen) device support#23

Open
doncollins1985 wants to merge 1 commit into
aaronsb:mainfrom
doncollins1985:main
Open

feat: add Bose QC Earbuds (1st Gen) device support#23
doncollins1985 wants to merge 1 commit into
aaronsb:mainfrom
doncollins1985:main

Conversation

@doncollins1985

Copy link
Copy Markdown

Add full device config for QC Earbuds (codename 'lando', firmware 2.0.7) with 4-mode-only profile, direct [1.5] CNC SETGET path (no AudioSettingsConfig), and 44-byte ModeConfig STATUS parser.

Changes:

  • devices/qc_earbuds.py: new device module with feature map, parsers, builders
  • devices/parsers.py: add build_cnc() and parse_mode_config_44()
  • connection.py: fall back to direct CNC [1.5] SETGET when audio_settings absent
  • catalog.py: wire QC Earbuds (0x402F) to qc_earbuds config
  • devices/init.py: register qc_earbuds in DEVICES and PRODUCT_IDS
  • tests: add catalog entry test and device module tests
  • completion/_bosectl: add zsh tab completion for bosectl CLI

Summary

Changes

Device Impact

  • QC Ultra 2
  • QC35
  • New device: ___

Checklist

  • Python, Rust, and C++ implementations stay in sync
  • Tests pass (make test)
  • Protocol notes updated in NOTES.md (if applicable)
  • Architecture docs updated (if applicable)

Add full device config for QC Earbuds (codename 'lando', firmware 2.0.7)
with 4-mode-only profile, direct [1.5] CNC SETGET path (no AudioSettingsConfig),
and 44-byte ModeConfig STATUS parser.

Changes:
- devices/qc_earbuds.py: new device module with feature map, parsers, builders
- devices/parsers.py: add build_cnc() and parse_mode_config_44()
- connection.py: fall back to direct CNC [1.5] SETGET when audio_settings absent
- catalog.py: wire QC Earbuds (0x402F) to qc_earbuds config
- devices/__init__.py: register qc_earbuds in DEVICES and PRODUCT_IDS
- tests: add catalog entry test and device module tests
- completion/_bosectl: add zsh tab completion for bosectl CLI
@doncollins1985
doncollins1985 requested a review from aaronsb as a code owner July 12, 2026 09:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant