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.
Requirements and limitations
- 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.
- 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.
- 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.
- Hardware outcomes and Claude involvement are author-reported; this collection did not run the harness or reproduce the scanner results. REA use is unconfirmed, and no complete device or original-source recovery is claimed.
- The pinned harness code is MIT-licensed. Vendor software and driver dependencies remain separate inputs.
About this entry
- Type
- Case study
- Category
- Independent reconstruction cases
- Relationship
- Independent reconstruction project
- Targets
- Protocol
Sources reviewed
The description was reviewed against primary sources. This does not establish runtime testing, security auditing or verified compatibility.
Primary sources
- https://github.com/cschalle/hw-harness/blob/093afc5c576c200f29b771d01624a327d0ff1806/examples/plustek-film-scanner/README.md
- https://github.com/cschalle/hw-harness/blob/093afc5c576c200f29b771d01624a327d0ff1806/README.md
- https://github.com/cschalle/hw-harness/blob/093afc5c576c200f29b771d01624a327d0ff1806/doc/method.md
- https://github.com/cschalle/hw-harness/blob/093afc5c576c200f29b771d01624a327d0ff1806/examples/ipu7-imx471/README.md
- https://github.com/cschalle/hw-harness/blob/093afc5c576c200f29b771d01624a327d0ff1806/LICENSE
- https://blogs.gnome.org/uraeus/2026/10/15/aiandreverseengineerhardware/