Skip to content

A few corrections #1

@Nielk1

Description

@Nielk1

Here's some corrections based on my older research.

  1. When the unk bool in the packet_t is true the length must be doubled (probably a pair of related data, maybe channels?).
  2. There are special command packets that exist for example those that control the Mic.
    • Mic ON: 91 02 0b 1f
    • Mic OFF: 91 01 00
    • Mic ON (Media Remote): 91 01 01 (simpler than DS, though I think both command forms work on each)
    • Enable Keys (Media Remote): 91 01 02 (note this appears to be a bitmask, at least on the media remote, to toggle features. Thus 00 is all off, 01 is mic on, 02 is keys enabled, and 03 is mic on and keys enabled.)

I guess now that this is publicly known I should get off my butt and put the results of my research on my wiki (which you've linked actually, about 99% of it is my original research so I'm glad it's been helpful). I never got the audio out working because other life matters took priority, else we'd probably have had this information known sooner. I got hung up on the audio being Opus codec because that's what the microphone data is and had only considered other options like raw PCM just when I was no longer able to invest the time on the research.

Here are some packet samples that you can test against you packet structure. They are taken from a very terse BT capture which were all I could get due to limited tools and options. You can see the length doubling in practice here. packet_samples.txt

I'll try to find time to get the Opus data onto the wiki. It is true for both the DualSense and the Media Remote (Lotus). I have the media remote entirely figured out except for setting the IR codes, which is annoying.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions