Skip to content

Add BT-W6 support together with BT LE Audio and LC3 - #1

Open
tomash wants to merge 3 commits into
RaphaelWimmer:mainfrom
tomash:btw6-support
Open

Add BT-W6 support together with BT LE Audio and LC3#1
tomash wants to merge 3 commits into
RaphaelWimmer:mainfrom
tomash:btw6-support

Conversation

@tomash

@tomash tomash commented Jun 19, 2026

Copy link
Copy Markdown

Love the project! As someone who uses all three operating systems (MacOS at work laptop, Linux on personal machines, Windows on gaming rig) and dislikes that Creative app is available only on two of those, and I'm allowed to install it only on the Windows machine.

I've spent an evening with my recently bought Creative BT-W6, Aurvana Ace 2 headphones, Wireshark and AI Agent (playing around with OpenClacky and various models via OpenRouter) because I don't know much about using Wireshark. So this PR is mostly slop. The PR description is human written!

My Aurvana Ace 2 can connect with BT-W6 dongle using at least 3 protocols: Bluetooth Classic AptX Low-Latency (teal / light-blue LED on dongle), AptX High/Lossless (pink LED on dongle) OR Bluetooth LE Audio with LC3 codec (white LED).

Add BT-W6 support with LE Audio / LC3 and Bluetooth Classic modes

To the point.

This PR extends btw5-switch to support the Creative BT-W6 dongle (041e:3132), adding two new modes: LE Audio (LC3) and Bluetooth Classic.

Note

I wasn't sure if I should edit the original btw5 script or create a new one, btw6, alongside. So the support is right now as extension to btw5 script.

What's changed

  • Auto-detection: The script now finds either BT-W5 (0x3130) or BT-W6 (0x3132) by product ID, with BT-W5 checked first for backward compatibility.
  • New modes (BT-W6 only):
    • le — LE Audio with LC3 codec (03 5a 6b 03 0a 06 02)
    • classic — Bluetooth Classic (03 5a 6b 03 0a 06 00)
  • Guarded mode dispatch: LE Audio and Classic modes are rejected with a clear message on BT-W5.
  • Usage help on by default: Running without arguments now prints the available modes (including le/classic when a BT-W6 is detected).
  • README updates: Mode support matrix table, BT-W6 description, and a link to the reference Wireshark capture.
  • Reference capture: bt-w6.pcapng — a USBPcap recording of the Creative Windows app switching through HQ → LL → LE.

How it was reverse-engineered

No public documentation exists for the BT-W6's HID protocol. The command payloads were extracted from Wireshark USBPcap captures of the official Creative Windows app, parsed with a custom Python pcapng reader (/tmp/parse_pcap2.py) since tshark/wireshark wasn't available on the Linux machine. Multiple captures confirmed the same byte patterns across different switching paths.

Verification

Actually pending, I'm going to test it on my Linux laptop and report back 🤞

tomash added 2 commits June 19, 2026 20:59
- Auto-detect BT-W5 (0x3130) vs BT-W6 (0x3132) via USB product ID
- Add 'le' mode: LE Audio with LC3 codec (BT-W6 only)
- Add 'classic' mode: Bluetooth Classic fallback (BT-W6 only)
- Keep full backward compatibility with BT-W5 for 'll' and 'hq'
- Update README with mode table and BT-W6 documentation
@tomash

tomash commented Jun 19, 2026

Copy link
Copy Markdown
Author

Edit: the pink LED is AptX High. AptX Lossless makes LED yellow. The mode and command is the same 03 20, the change is driven by the change in sampling rate and I think it's way out of scope for this scipt and change. Added a note in readme about this.

@tomash

tomash commented Jun 20, 2026

Copy link
Copy Markdown
Author

Tested on my Linux laptop and it works! Recorded a short video showing this (it's uploading as I write this).

https://youtu.be/cY4BIxmaXkg

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