Star on GitHubStar1.1k stars

Case study

hw-harness: scanner USB protocol investigation

Documents an author-reported scanner investigation comparing vendor-driver USB control transfers with Linux-driver traces to infer initialization, timing and resolution parameters. The released harness organizes reference capture and comparison; it does not automatically recover a complete protocol specification.

Targets
Protocol
Category
Independent reconstruction cases
Relationship
Independent reconstruction project
Sources reviewed

Requirements & limits

  • Prerequisites: Developed on Fedora with libvirt/KVM and a Windows 11 Pro guest running the vendor driver. The documented USB case uses a Plustek scanner with device ID 07b3:1825; physical hardware is required.
  • Prerequisites: USB passthrough, host-side usbmon capture, appropriate host privileges and a matching Linux-side operation are needed for comparable traces. The harness supplies capture/control tooling rather than an automatic protocol decoder.
  • Scope: The generic harness was published after the original bespoke investigation. Its separate MIPI camera example inspects configuration, ACPI and calibration data rather than using the scanner’s USB capture path.
  • Testing evidence: Hardware outcomes and Claude involvement are author-reported.
  • License: The pinned harness code is MIT-licensed. Vendor software and driver dependencies remain separate inputs.

About this entry

The description was reviewed against primary sources.

Report an outdated entry Suggest a translation fix

Primary sources

  1. examples/plustek-film-scanner/README.md GitHub · cschalle/hw-harness · Revision 093afc5
  2. README.md GitHub · cschalle/hw-harness · Revision 093afc5
  3. doc/method.md GitHub · cschalle/hw-harness · Revision 093afc5
  4. examples/ipu7-imx471/README.md GitHub · cschalle/hw-harness · Revision 093afc5
  5. LICENSE GitHub · cschalle/hw-harness · Revision 093afc5
  6. https://blogs.gnome.org/uraeus/2026/10/15/aiandreverseengineerhardware/

More in Protocols

All 140 entries in ProtocolsProtocols case studies (91)

↑↓ move↵ open⌘↵ new tab