2026-05-31 –, Workshop room
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)
TG: i am now haxxing up storm
TG: p stank by
TG: *stand
TG: u dont even no
TG: my fingers are the mean lil beaks
TG: of furirus woodpeckers
TG: and my keyboard
TG: is a pitiful plank of cruddy wood
TG: guarding a trove of tasty bungs
TG: it is guarding them i might add
TG: moist fucking unsuccessfully
TG: as my digits rain danger
TG: on this hapless lamptop
TG: the result of my tappy onslaught
TG: is line after wicked line
TG: of leetfilthy codes
TG: aka..
TG: the governments worst nightmare
TG: i will be in an out
TG: of the systerm
TG: before breakfast knows what ate it
TG: JACKPOP BABBY
TG: im am ur cryptogodress 8)
TG: it is womon verse machine
TG: a struggle old as stuff itself
TG: she will bring nvidia to its knees
TG: and then turn
TG: with her shitwreckingest face
TG: and stare
TG: into the void
TG: and the void
TG: will wonk first
TG: ;3