On Dec 6, 2011, at 1:52 PM, Richard wrote:
I've got a bunch of Nuclear Data peripheral
circuit boards that I need
to reverse engineer. They are simple circuit boards with all the
tracings visible (i.e. no internal layers) and the parts are all 7400
series logic in standard DIP packaging.
If I were to do this manually, I would take high resolution
photographs of both sides of the board. From the photographs, I would
try to recreate engineering drawings: part placement and circuit
topology.
I'm wondering what kind of tools are out there that would assist in
this. Could I process the photos to extract the topology of the
printed circuit traces? Can I correlate this with image recognition
of the part packages and combine them to product a netlist?
I'd appreciate hearing any experiences from others that have reverse
engineered circuitry.
You might ask the guys who did the Visual 6502 project:
http://visual6502.org/JSSim/
They said they made their own tools for polygon/netlist extraction in Python, so if you
ask nicely, they might share (using said tools for PCBs might take some adaptation).
The process of reverse engineering a netlist from a photomicrograph of an IC is not that
far from reverse engineering it from a PCB. Where you'll run into problems is when
the traces run underneath the chips (I'm assuming you're not interested in
stripping the boards bare for this).
After you've got a netlist, of course, you'll have to do quite a bit of manual
cleanup to make any resulting schematic (or textual netlist) human-readable, including
both naming the nets and arranging them in an order that makes sense. It's a little
bit less fun than wading through a megabyte of disassembled code to make sense of an
entire program; of course, I've only done the circuit reverse-engineering on paper, so
it might be better in a specialized program environment.
- Dave