Skip to content

Add PIDs 1209:2351 and 1209:2352 for PicoI2S - #1308

Open
dpandov wants to merge 1 commit into
pidcodes:masterfrom
dpandov:picoi2s
Open

dpandov wants to merge 1 commit into
pidcodes:masterfrom
dpandov:picoi2s

Conversation

@dpandov

@dpandov dpandov commented Oct 11, 2026

Copy link
Copy Markdown

Description:
PicoI2S is open-source (MIT) USB audio firmware for the RP2350: a USB Audio Class 2.0 interface that drives I2S DACs, classic dual-line multibit DACs through on-chip oversampling filters, with an S/PDIF input.

Source: https://github.com/dpandov/PicoI2S (MIT, LICENSE in the repository root)

Why it needs PIDs of its own, although it is firmware only:

  • It runs on off-the-shelf boards (Waveshare RP2350-One, Raspberry Pi Pico 2); its users flash a release file and wire a DAC, they do not design hardware and cannot request IDs themselves.
  • It is a USB audio device with a picotool reset interface (WinUSB through MS OS 2.0 descriptors), so it needs stable IDs for Windows to bind the drivers, and the host tools in the repository find the device by its IDs.

Why it turns out I need two:

  • 1209:2351 is the USB Audio Class 1.0 mode, 1209:2352 the USB Audio Class 2.0 mode of the same firmware, selected by a jumper at boot. The two modes have different descriptors, and Windows caches the driver binding per VID/PID, so sharing one PID breaks the binding whenever the mode is changed.
  • Note: If two PIDs are more than you can allocate for this project, a single PID for the UAC2 mode (1209:2352) would be enough. The UAC1 compatibility mode would then stay a build-time option for private use and not be part of the released firmware.

The firmware currently uses the test PIDs 1209:0001 / 1209:0002; it moves to these with its next release.

This branch has not been deployed

No deployments
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