---
id: "lib-2026-10-15-using-artificial-intelligence-to-reverse-engineer"
type: "library"
title: "Using Artificial Intelligence to reverse engineer hardware"
lang: "EN"
org: "Christian F.K. Schaller (Red Hat)"
source_type: "Practitioner post"
date: "2026-10-15"
week: "2026-W42"
url: "https://nosov.ai/library/lib-2026-10-15-using-artificial-intelligence-to-reverse-engineer/"
original_url: "https://blogs.gnome.org/uraeus/2026/10/15/aiandreverseengineerhardware/"
tier: "B"
tier_name: "Useful, limited"
tier_reason: "First-hand account by Christian Schaller, a long-time Fedora and GNOME figure, of building Linux drivers with Claude Code and a capture harness; concrete and tested on real hardware, but single-unit results."
summary_basis: "full-text"
original_minutes: "10"
tags: ["coding agents", "reverse engineering", "drivers"]
---

# Using Artificial Intelligence to reverse engineer hardware

Tier B (Useful, limited): First-hand account by Christian Schaller, a long-time Fedora and GNOME figure, of building Linux drivers with Claude Code and a capture harness; concrete and tested on real hardware, but single-unit results.

Summary based on the full text.

## In short

Christian F.K. Schaller (blog, 15 October 2026) describes using Claude Code to reverse engineer hardware with no Linux support. The method: run the vendor's Windows driver in a KVM virtual machine with the device passed through, capture USB traffic from the Linux host with usbmon, repeat on Linux with the new driver, and let the agent diff the two traces. He got a near-complete film scanner driver in days and camera fixes in one day, and released the setup as hw-harness.

## Key numbers

- 34.6 s vs 54.4 s: full-resolution scan time, his AI-built SANE backend vs the upstream driver
- 31.1 to 90.9: frame brightness in a low-light test after the MIPI camera fixes
- about 2.7 stops: corner darkening from missing lens shading correction in libcamera's software ISP
- about 1.8 stops: sensitivity lost to a too-low analogue gain cap in the kernel driver

## What it reports

- SANE backend for the Plustek OpticFilm 8200i (Genesys GL128): colour, grey and infrared modes, 300-7200 dpi, infrared dust removal. First recognisable scan within hours. Upstream SANE added support in September 2026; his driver is faster at full resolution (34.6 s vs 54.4 s), upstream has more resolution steps.
- Negative Vibes, a GNOME app in Rust for scanning negatives, also written with Claude.
- ThinkPad X1 Carbon camera (Sony IMX471, Intel IPU7): kernel fixes for a crop bug, a wrong register width and a gain cap costing about 1.8 stops; libcamera fixes for missing lens shading (corners about 2.7 stops dark) and a white-balance bit-depth error. Brightness rose from 31.1 to 90.9; blue still about 17% short in low light.
- Patches submitted to kernel and libcamera maintainers.
- Lessons: a known-good reference capture turns "it doesn't work" into a list of differences; the agent handles the tedium; real hardware is the only judge.

## How they got it

Personal projects on his own devices, with measurements from single-unit, single-frame tests.

## Limits

- One unit per device; he calls the scanner comparison one data point.
- hw-harness is a generalised rewrite of bespoke scripts, not the exact tool he used.
- No time or cost accounting beyond "hours" and "days".

## Why it matters for companies

The pattern generalises beyond drivers: give an agent a trusted reference behaviour and a way to capture and compare its own output, and it can grind through work that used to take weeks. Firms with legacy systems, undocumented integrations or protocol work can apply the same set-up. A human still has to own the physical test and the decision on what ships.

Original: https://blogs.gnome.org/uraeus/2026/10/15/aiandreverseengineerhardware/
