{
  "added_at": "2026-11-08",
  "category": "reconstruction-cases",
  "class": "hardware",
  "description_en": "toppingctl implements local control of Topping DACs through USB HID reports derived from observed WebHID traffic and the vendor web bundle. The CLI addresses registers for volume, gain, power and parametric EQ, while companion scripts read settings, inspect unsolicited meter data and probe unknown values. The author reports hardware confirmation on the DX5 II.",
  "description_zh": "toppingctl 根据观察到的 WebHID 流量和厂商网页代码，实现 Topping DAC 的本地 USB HID 控制。命令行工具通过寄存器设置音量、增益、电源与参数均衡器；配套脚本读取设置、查看主动推送的电平数据并探测未知值。作者报告已在 DX5 II 上完成硬件确认。",
  "entry_url": "https://awesomerea.org/resources/toppingctl-case/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/toppingctl-case/",
  "evidence_class": 2,
  "evidence_status": "observed",
  "evidence_url": "https://github.com/gjcourt/toppingctl/blob/011bec034d0b2a4d20d463bf812028228c26d06a/README.md",
  "group": "cases",
  "id": "toppingctl-case",
  "json_url": "https://awesomerea.org/resources/toppingctl-case/record.json",
  "kind": "case-study",
  "markdown_url": "https://awesomerea.org/resources/toppingctl-case/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/toppingctl-case/index.md",
  "name": "toppingctl: reconstructing Topping DAC control over USB HID",
  "name_zh": "toppingctl：重建 Topping DAC 的 USB HID 控制",
  "record_type": "resource",
  "relationship": "independent-reconstruction",
  "requirement_facets": [
    "prerequisites",
    "testing",
    "limits",
    "license"
  ],
  "requirements": [
    "Python 3.11 or newer, the hid package and the hidapi shared library.",
    "A supported Topping DAC; hardware confirmation is reported for DX5 II firmware 2.39.",
    "D90 III Discrete and DX1 II mappings are unverified and require --unverified for writes.",
    "Apache-2.0 License."
  ],
  "requirements_zh": [
    "需要 Python 3.11 或更新版本、hid 包及 hidapi 共享库。",
    "需要受支持的 Topping DAC；作者报告在固件 2.39 的 DX5 II 上完成硬件确认。",
    "D90 III Discrete 与 DX1 II 的映射尚未确认，写入时需要 --unverified。",
    "采用 Apache-2.0 许可证。"
  ],
  "scope": "unknown",
  "targets": [
    "protocol"
  ],
  "url": "https://github.com/gjcourt/toppingctl",
  "verification": "source-reviewed",
  "verified_at": "2026-11-06"
}
