{
  "added_at": "2026-11-08",
  "additional_evidence_urls": [
    "https://github.com/4noha/SainSmartDDS140/blob/e6d06f6a049f8ab6daa74cb2eee31634b42df1ee/docs/protocol.md"
  ],
  "category": "reconstruction-cases",
  "class": "hardware",
  "description_en": "SainSmartDDS140 reimplements control of the SainSmart DDS140 USB oscilloscope through its recovered USB protocol. The author describes decompiling the vendor .NET app, examining its WinUSB wrapper and checking commands against hardware. A pyusb client exposes capture, calibration, recording and a local browser interface, while protocol notes document control transfers and interleaved channel samples.",
  "description_zh": "SainSmartDDS140 根据恢复的 USB 协议控制 SainSmart DDS140 示波器。作者分析厂商 .NET 应用和 WinUSB 封装，并以实机核对命令；pyusb 客户端提供采集、校准、记录和本地浏览器界面，协议文档记录控制传输及双通道交错采样格式。",
  "entry_url": "https://awesomerea.org/resources/sainsmart-dds140-case/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/sainsmart-dds140-case/",
  "evidence_class": 2,
  "evidence_status": "observed",
  "evidence_url": "https://github.com/4noha/SainSmartDDS140/blob/e6d06f6a049f8ab6daa74cb2eee31634b42df1ee/README.md",
  "group": "cases",
  "id": "sainsmart-dds140-case",
  "json_url": "https://awesomerea.org/resources/sainsmart-dds140-case/record.json",
  "kind": "case-study",
  "markdown_url": "https://awesomerea.org/resources/sainsmart-dds140-case/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/sainsmart-dds140-case/index.md",
  "name": "SainSmartDDS140: a USB oscilloscope client built from protocol research",
  "name_zh": "SainSmartDDS140：基于 USB 协议研究的示波器客户端",
  "record_type": "resource",
  "relationship": "independent-reconstruction",
  "requirement_facets": [
    "prerequisites",
    "prerequisites",
    "limits",
    "license"
  ],
  "requirements": [
    "A SainSmart DDS140 is required for device capture and hardware self-tests.",
    "Python 3, pyusb and libusb-1.0 are required for the client.",
    "Hardware trigger, eight-channel logic analysis and the signal generator are not implemented.",
    "MIT license."
  ],
  "requirements_zh": [
    "设备采集和实机自检需要 SainSmart DDS140。",
    "客户端需要 Python 3、pyusb 和 libusb-1.0。",
    "硬件触发、八通道逻辑分析及信号发生器尚未实现。",
    "MIT 许可证。"
  ],
  "scope": "unknown",
  "targets": [
    "protocol"
  ],
  "url": "https://github.com/4noha/SainSmartDDS140",
  "verification": "source-reviewed",
  "verified_at": "2026-11-06"
}
