Metrology is the science of measurement. The word comes from "metron" and "logos".
Metron is a tool for automatically obtaining useful information from printed circuit boards, like:
- High magnification live video with precise control of viewpoint.
- Super-resolution scanned images.
- Multidimensional super-resolution scanned images (multiple viewpoints from every location)
Such information is directly useful for manual inspection and reverse-engineering, but when combined with software that incorporates recently developed powerful computer vision and machine learning algorithms it can allow for nearly magical exploration of unknown electrical systems.
3D Models of PCBs
Taking advantage of two neat computer vision techniques called multiview reconstruction and depth-from-focus, Metron should be able to generate high resolution 3D scans of printed circuit boards. My hope is that these scans will be of sufficient resolution to distinguish the smallest of surface mount parts, pins of chips, vias, and the height difference between traces and bare board.
Once a high resolution 3D scan of a PCB is obtained it can be processed to extract useful information about the circuit structure of the PCB. Parts, pads, vias, and traces can be automatically segmented using a combination of visual and structural feature recognition. Some parts can be identified by reading their part numbers or matching them to known parts in a database. With all of the information put together candidate netlists for the circuit on the PCB can be generated and scored.
Semi-automatic Reverse Engineering
After as much information as possible has been extracted from the scans and run through machine intelligence the result will likely be very poor. Missing information caused by traces under parts, multilayer boards, mis-identified parts, scan errors, and many other factors will almost guarantee that the guessed netlists are very incorrect.
But an interactive sytem has some hope of reaching useful results. After the first run of processing a human can use the initial machine guesses to guide further analysis. For example, if the netlist is corrupted by traces being obscured under parts then the engineer can remove the parts and rescan those areas. With the new information better guesses can be generated and new analysis can be done. In that sort of feedback loop the errors in the shared human-machine understanding the target circuit can be quickly whittled down to zero.
Making an automated digital microscope is easy. Using it to take very high resolution scanned images is tricky, but achievable. Using those scans to generate 3D models is difficult, but I am familiar with the problem and am confident it can be done. Extracting netlists and interactive reverse engineering are extremely difficult or impossible to achieve with my current knowledge. I like to make my project goals like this so that I end up learning something new. But please temper your expectations accordingly.