Proposal: Separate USB IDs for OpenThread Firmware

Proposal: Separate USB IDs for All USB‑Only Dongles (Example: MG21)

This issue affects all USB‑only dongles when flashed with the OpenThread RCP firmware. Using the MG21 Dongle‑P/Lite as an example: after flashing OT‑RCP, the device still reports the same USB VID/PID and product name as the Zigbee firmware. Because of this, Home Assistant and other platforms continue to detect it as a Zigbee adapter, which leads to incorrect setup flows and user confusion.

A small firmware change would fully resolve the problem across all USB‑only models:

  • assign a dedicated PID for OpenThread RCP builds,
  • update the USB Product String (e.g., “Sonoff OT‑RCP USB Adapter”),
  • optionally adjust manufacturer/interface descriptors to clearly indicate OT mode.

Additional note: possible challenges and workarounds

If you see this as difficult to implement, here are a few points that may help:

  • PID allocation — even if assigning a new PID requires coordination with your VID provider, you can still use any free PID from your existing pool. This is a firmware‑only change, no hardware impact.
  • Documentation impact — changing PID or product strings won’t break compatibility; a simple table in the release notes (“Zigbee firmware → PID A, OT firmware → PID B”) is enough.
  • User confusion — if some users notice the new name, a one‑line note in the changelog fully resolves this.
  • Multiple dongles support — even if you maintain one OT firmware for all USB‑only dongles, you can set the PID at build time with a simple compile‑time flag.
  • Driver concerns — OT‑RCP uses standard CDC/ACM, so changing PID or descriptors does not affect driver compatibility on Linux, macOS, or Windows.

These are very small adjustments with a large positive impact on detection and UX across all platforms.

1 Like