PCB reverse-engineering, but less painful
2026-08-15, 16:10–17:10, Kapel
Taal: Engels

Reverse-engineering a PCB traditionally requires an enormous amount of time, destructive techniques, or a combination of both. Recently, I managed to borrow a device I would really like to reverse, but it is rare enough that neither of the 'traditional' options were feasible. So, instead, I built some tooling to get the job done much faster.


Typically, reverse-engineering a PCB had the following options available: * desoldering all the parts and then sanding it down layer by layer while taking photos (a destructive process) * trying to check which connection goes to which other connection using a multimeter in continuity detector mode (which takes O(n^2) time with n the number of contacts on the PCB) * taking X-rays (not many people have access to this) * other difficult and time-consuming ideas

As none of these were satisfactory to me, I set out to make my own tools for making high-resolution board scans, recreating a netlist, and so forth. It does have its own downside, as it assumes an off-the-shelf chip with a debug interface being present on the board, for either JTAG Boundary Scan (given a BSM file exists), or ARM SWD (given a CMSIS Pack file exists with CMSIS Driver implementation)