Computer Vision For PCB Layout

Computer Vision For PCB Layout

One of the big problems with doing PCB layout is finding a suitable footprint for the components you want to use. Most tools have some library although — of course — some are better than others. You can often get by with using some generic footprint, too. That’s not handy for schematic layout, though, because you’ll have to remember what pin goes where. But if you can’t find what you are looking for SnapEDA is an interesting source of components available for many different layout tools. What really caught our eye though was a relatively new service they have that uses computer vision and OCR to generate schematic symbols directly from a data sheet. You can see it work in the video below.

The service seems to be tied to parts the database already knows about. and has a known footprint available. As you’ll see in the video, it will dig up the datasheet and let you select the pin table inside. The system does OCR on that part of the datasheet, lets you modify the result, and add anything that it missed.

This is undeniably cool, although once the wow factor wears off you realize that you still have to locate the table and set the pin types. Their demo shows how you might have to add other things like a ground pad, too. For a small part like the one in the demo. it wasn’t much easier than just typing the data into a table. A giant part might have more benefit.

Of course, once you have a symbol, you can get it for many popular software packages including Eagle, KiCAD, OrCAD and many others. You might worry about people creating bad symbols, but they’ve thought of that. When you create a symbol like this, it is only visible to your account. So if you mess anything up, you’ll only affect your own projects.

Probably the most attractive thing about this — even if you don’t build your own footprint — is how you can get parts for a variety of layout programs. When we looked at layout tools, that was the first thing you had to do was make a new symbol and footprint.