You hold in your hand a circuit board from a product you didn’t make. How does the thing work? What a daunting question, but it’s both solvable and approachable if you know what you’re doing. The good news is that Eric Schlaepfer knows exactly what he’s doing and boiled down the process of reverse engineering printed circuit boards into this excellent workshop. It was presented live during the 2020 Hackaday Remoticon, and the edited video, which you’ll find below, was just published. Slides for the talk have been published on the workshop project page.
Need proof that he has skills that we all want? Last year Eric successfully reverse-engineered the legendary Sound Blaster audio card and produced his own fully-functional drop-in replacement called the Snark Barker. And then re-engineered it to work with the ancient MCA bus architecture. Whoa.
Eric tackles the challenge in two parts. The first is to generate a bill of materials by harvesting as much information as possible, and then to fill in the rest of the details with liberal use of search engines and datasheets. He pulls everything into a spreadsheet, with columns for the parts designators printed on the board (U1, R53, C4, etc.), package type which you kind of get the hang of with experience, topmark (printed on the parts), and the part number gleaned from the above.
The next step is to reverse engineer the circuit board itself by taking high-resolution images, sometimes removing parts from the board to do so, and a schematic with every part you noted from the first step but no connected traces. Eric demonstrates how to use GIMP image editor to map out traces, adding nets in the schematic as he begins to solve pieces of the puzzle. As he draws the traces on their own layer, switching back and forth between images of the board immediately begins to demystify the connections split between the two layers.
He certainly makes it look both fast and easy, and for him it is. The key is getting a few of these under your belt until you can lean on experience to unstick the sticking points. But whether this is your very first rodeo, or you’re a seasoned veteran, the methodical approach is admirable and a welcomed addition to everyone’s skill set.
As an offhand comment, Eric mentions he could do an hour-long talk just on transformers. Yes please! Eric is known for his deep dives into engineering topics on his Twitter account @TubeTimeUS, some of my favorites have been his unpacking of the Camp Fire grand jury report which we reported on in September, and the story of how a patent troll brought down Commodore. He was also on the team of folks that presented one of the best IC demonstrations for truly grasping just how silicon makes the world go ’round.
4 thoughts on “Remoticon Video: How To Reverse Engineer A PCB”
This will work a lot of the time.
Where you’ll have problems is when the parts are proprietary or unmarked, there are protected programmable parts, there are special calibration procedures, or the PCB has special materials or critical features.
Also, some boards are just too complicated for this to be feasible, unless you just have nothing better to do for a long time. There are boards with 20 layers and 1000 parts.
This was a great intro to methodically reversing a circuit, and was presented very expertly. Lot of good tips in there for identifying parts and traces. Thank you!
This is -serious- manual, tedious labour !
I´m eagerly waiting a kind of photo-based annotation -> schematics & PCB software raise from the darkness.
With automatic copper tracks and bus recognition, auto-browsing components libraries form OCR-ed labels on the chips.
And once it gets powerful, a kind of real-time AR-vision engine that gives reverse-engineering capabilities to any mortal.
Then third-level with X-Ray vision for chip die analysis and multi-layer PCB.
When discussing the need to remove a component to measure it’s value I would add that if it’s a through-hole part you might get away with only de-soldering one end.
Please be kind and respectful to help make the comments section excellent. (Comment Policy)