project
Bringing up a thermal camera nobody had drivers for
Reverse-engineering an undocumented sensor's I²C register map and writing the V4L2 driver that made it usable on ARM64 Linux.
The module was cheap, available, and shipped with a Windows-only SDK and a datasheet that stopped at the pinout. Everything past “it speaks I²C” had to be worked out with a logic analyser.
Getting the register map
Capturing the SDK’s own initialisation sequence gave the order of operations. Matching those writes against the visible behaviour of the sensor gave the meaning of most of them. About a dozen registers are still labelled with what they do rather than what they are called.
The driver
A standard V4L2 subdev, so anything that already speaks V4L2 — GStreamer, OpenCV, v4l2-ctl — works
against it without knowing any of this happened. That is the whole point of writing a driver instead
of a library.