docs(mic): park BT-mic investigation; document findings + USB workaround
Park the DualSense-microphone-over-Bluetooth feature. Investigation log + diagnostic infrastructure ship as-is for a future contributor who wants to take another crack at it. BLUETOOTH_AUDIO_NOTES.md (new): full hand-off doc covering what we tried, what we found, where Sony / the kernel / the public RE community currently stand on DS5 BT mic. Highlights: - Real DS5 mic works fine over USB; our dongle's UAC1 descriptor matches the DS5's exactly. The data path is correct. - DS5 firmware on the test controller (build date Jul 4 2025) does not stream microphone audio over the standard BT-HID L2CAP channels. Confirmed by: every BT input report is a standard 79- byte 0x31 report with no audio appended; no alternative report IDs ever arrive; no bit of byte 2 correlates with mic-tagged frames; bidirectional-audio hypothesis (aplay + arecord) did not trigger streaming. - Upstream awalol/DS5Dongle 'mic' branch's RE — 71-byte Opus at data + 4 of frames where (data[2] >> 1) & 1 — appears to be firmware-revision-specific; bit 1 of byte 2 is never set on the current firmware. - Linux kernel hid-playstation.c line ~1509 explicitly says "Bluetooth audio is currently not supported" — the kernel maintainers reached the same conclusion. - Our state config (AllowAudioControl=1, MicSelect=Internal, VolumeMic=0x40, MicMute=0, AudioPowerSave=0) matches exactly what the kernel driver sends to enable the mic over USB. The bytes are right; the BT-side trigger we're missing is not in the standard DS5 protocol. Diagnostic infrastructure stays in firmware (mic_diag.sh, vendor feature reports 0xFD/0xFE, OLED Diagnostics rate counters, Opus-decoder + mic_fifo wired but gated behind `if (false)` in on_bt_data). Zero cost when mic-add is disabled; ready to flip back on the moment someone identifies the right trigger. README.md: short "known issue" entry pointing users at USB-direct when they need the mic, and at BLUETOOTH_AUDIO_NOTES.md for the research log. Possible next steps for the curious: - SDP browse the DS5 to discover non-HID L2CAP services - BT sniffer (~$50-200) between a real PS5 and a DS5 during voice chat — would settle the protocol question definitively - Test with an older DS5 firmware revision (pre-2024) to see if the BT mic path used to work and got removed Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.7
parent
72f163ca50
commit
0429bd6703
@@ -144,6 +144,7 @@ To opt out at build time, configure with `-DENABLE_BATT_LED=OFF`. Default is ON.
|
||||
|
||||
- Overclocking to 320 MHz @ 1.20 V is **required** for stable BT pairing. Dropping voltage to 1.10 V or clock to stock breaks the CYW43 PIO SPI bus and BT stops working. A small heatsink on the RP2350 is recommended for sustained gameplay.
|
||||
- HD haptics may not fire in every game on Linux + Steam; this is game-side (some titles only send HD-haptic audio under Windows-specific APIs). Tested working in Spider-Man Remastered; not delivered in Ghost of Tsushima — same firmware, same controller.
|
||||
- **DualSense microphone does not work over the Bluetooth pairing.** This is a Sony / DS5-firmware-side limitation also documented in the upstream Linux kernel driver (`drivers/hid/hid-playstation.c` line ~1509: *"Bluetooth audio is currently not supported"*). The mic works fine when the controller is connected directly to the host via USB-C. See [BLUETOOTH_AUDIO_NOTES.md](./BLUETOOTH_AUDIO_NOTES.md) for the full investigation log + what's already wired firmware-side if a future contributor cracks the BT-side trigger.
|
||||
|
||||
## Performance / Overclocking
|
||||
|
||||
|
||||
Reference in New Issue
Block a user