There has never really been an easy way to pick up a circuit board and understand how it works. If an engineer, technician, maker, or even layman wants to pick up a good understanding of how a PCB design functions they typically use one of three methods to figure it out.
After all, circuit boards are pretty complicated devices - to put it succinctly, a PCB design mechanically holds, and electrically connects circuit components together. But your chances of understanding an entire PCB design from the bottom up are pretty slim. Sure, a simple board which merely provides an interconnect with a few simple passives isn’t too difficult to understand but as soon as you start adding integrated circuits into the mix the complexity increases exponentially.
Integrated circuits can miniaturize what was once a complex PCB design down to a tiny package often much less than 4mm2 in size.
The fundamental circuit theory behind an IC does not change, however the size of the physical components in the circuit can be reduced drastically down to just a few dozens atoms if the latest and greatest manufacturing technology is used.
All this is to say, if you ever stumble across a PCB you have no familiarity with (you’ve never designed it, or worked with it) then you probably don’t have the foggiest clue on how it works. But if someone asked you, here’s what you would do:
First Strategy: PCB Reverse Engineering
This is a very difficult task unless you have the right tools, let’s assume that you do. First you would look up every single part on the board and track down it’s documentation. If you’re lucky, all the IC’s on your board will have their part number etched to the outside of their packaging. If you aren’t lucky, it’ll be lasered off like this.
Some simpler IC’s and passives may need to be desoldered and bench tested in order to figure out what they are. This will be extremely frustrating and difficult, however assuming unlimited time and resources you will be successful. Let’s ignore the situation where the board has been potted.
Next step, reverse engineer the netlist, combine this with the components and you have the schematic, which is the real essence of the PCB design. Conveniently you’ll also find the PCB layout while you do it. I would also like to qualify that I’m being a bit of an armchair expert in suggesting how to do this - let’s continue to assume infinite time and resources.
Netlist Reverse Engineering Method One: Belt Sander and Camera
If you don’t have the right training and equipment this is your only option. Sand off the soldermask and take a picture. Desolder all the components first. Sand through the copper and prepeg and take another picture. It might be easier to flip the board midway through and start sanding from the other side. You can sometimes estimate how many layers a board has by taking a file to the edge and counting the number of copper sandwiches you see if the board was designed with good practices the number of copper layers should be twice the number of copper layers you see. That way you know when to flip.
You can either manually analyze the images to reverse engineer the net list (look for a continuous connection, give it an arbitrary name eg. ‘Net 1’, and move on). Alternatively, you can use specialized software which will automate that image processing for you. I have never used it so don’t count this as an endorsement, again assuming infinite time and resources we are still golden here.
Netlist Reverse Engineering Method Two: 3D X-Ray Scanning
Ironically, you can use the right frequency of electricity to peer through the board and see how everything connects. From here you could use the same image processing technique as method one and come up with your obfuscated netlist (Net 1 looks like this, etc). The problem with this process is that you need a very expensive piece of equipment and a lot of training to do it. But regardless, most high volume PCB production facilities have this on hand. I suggest asking nicely.
From here, you are all done, if you spend some more hours finding which net connects to which pin of the devices we researched earlier, then you can even give your nets more sensible names like ‘GND’, ‘+3.3V’, ‘SCL’, etc. By this point you likely understand the design pretty well from having stared at it for a couple of weeks. There are significantly easier ways to understand a PCB design if you have more information from the start.
Joe Grand did some really interesting work in this area one year for DefCon, I highly recommend checking it out if you are interested.
Second Strategy: Ask the Person who made it
If you tried the first strategy first and are just making it here then I’m truly sorry. Lots of PCBs are made using an open source philosophy, meaning you can download detailed information about them from a GitHub repository or similar. Most evaluation and reference designs from semiconductor manufacturers tend to be like this. If you’re in a professional, workplace type environment then your coworker will probably be thrilled to walk you through their PCB design.
The problem with asking someone, is that in practice we have to break our assumption of infinite time and resources for this to work. People are busy, and circuit boards are complicated. PCB designers tend to lead active, engaging lives as they are in high demand. People will not always be available to hold your hand while you try to understand a design.
HOWEVER, there is a way to get the best of both worlds. You can take the same files which are generally available for an open source board, in fact the same files which you use to manufacture the board (not even the design files) and use those to understand the board.
Third Strategy: Use inspectAR
This augmented reality tool has been made specifically for the purpose of working on PCB designs and interacting with them in an easier, more intuitive way. For starters, if you want to find out more about what a component does, just create a project with that board in inspectAR and click on the component. From there you can explore that component’s netlist intuitively, if you want more information about a certain net just create that overlay and see what components it is connected to.
A decent design engineer can usually infer the function of the net with that much info. You can also modify and interact with the design in a much easier way. If all you want to do is say, re-program the board's microcontroller with your own custom firmware then finding those pins to flash the uC will be a breeze with inspectAR. Need to know what the test points do? Simple, just click on them.
The tool can make a real difference walking someone through a design, one of the best parts is that you do not need to be in the same location as the other person either - screen sharing inspectAR remotely over a video call is one of the best way to bring somebody up to speed on a design.
Whatever your use case we would love to see you try inspectAR, the tool is available for free with a number of pre-calibrated boards - and we have licenses suitable for professional users as well. Get started today!