
Show HN: Build circuit boards faster with computer vision - natashabaker
http://www.snapeda.com/instabuild
======
natashabaker
Hi HN!

As a team of 10 electrical engineers at SnapEDA, we know how frustrating it is
to gather all the data (like symbols & footprints) needed to make a circuit
board. Although we’ve built up a large database on SnapEDA, there may be times
when the part you need can’t be found.

That’s why today we’re launching InstaBuild! InstaBuild is based on the
underlying technology we use internally to make parts, and we’re releasing it
today as a free tool to the engineering community.

We used a computer vision framework that's a bit more sophisticated than OCR
(which we also used) because we detect cell placement and table lines to
properly extract data

Here’s how it works:

1\. The tool extracts pin data from datasheets. It tries to understand the
function of each pin (in/our/power, etc.), and then auto-configures the symbol
based on our published symbol standards.

2\. We then map the symbol to a verified, IPC-compliant footprint.

3\. The part is ready to download to your desired PCB design software format
(ex: Eagle, Altium, KiCad, Cadence, Mentor, etc.).

Would love to get feedback on where we should take this next. Thanks HN!

~~~
yitchelle
What I would really like to see if the IC manufacturer would release all the
data necessary for integrating their part into the design. The data would
include a

* spice model for simulation

* a schematic symbol for capturing it into a schematic,

* a PCB footprint for laying it out onto the artwork.

But that would mean that the CAD folks would have to agree on a data format,
but I afraid hell would freeze over before that happens. /rant off. Great idea
- keep up the good work.

~~~
amelius
So ... if manufacturers don't do this, then what we need is a way to allow a
community to contribute this kind of information.

Like a GitHub for electronic models, and related data.

~~~
natashabaker
Engineers can contribute their own models on SnapEDA. They are then available
to download in all formats. However, for quality reasons, we create the vast
majority of models.

~~~
amelius
Sounds good, but how open is this? Is it like GitHub, where source code is
owned by the authors/community (and not by GitHub), or is everything you
upload owned by SnapEDA?

Also, can other toolmakers openly access these libraries?

~~~
natashabaker
Everything uploaded is licensed under the Creative Commons with Design
Exception upon download. This means engineers need to credit the source/author
when reposting the content online, but as soon as it's integrated into a
design it becomes the downloader's IP. This way, if you're working at a big
company, you can license the product under the terms of your choosing.

------
Animats
Tried looking up some parts I use. The footprint for a surface mount MOSFET
(IRL530NS) was totally weird, with the wrong number of pads.[1] LT3750 was
fine, although the schematic symbol was very wide for no good reason, and
didn't have pin numbers. (Put pin numbers on the schematic symbols. Users need
to be able to easily check that you got it right. Especially with parts like
transistors, which have pins named EBC or GDS, instead of numbers, and no
standardization of pin order.)

Coilcraft DA2032, a transformer with a nonstandard footprint, was fine.
CPC1510G was fine, with the proper skinny pads. IE0515S, which is four inline
pins, only shows two pins on the image.[2]

No models: toggle switch (M2012SA2W40), phone jack (SN37A12A), push button
(BB15AH-FA).

Overall impression: this thing has a set of common footprints and footprints
from vendors, and matches them up with part numbers. Useful, but check what it
gives you.

[1]
[https://www.snapeda.com/parts/IRL530NSTRLPBF/Infineon/view-p...](https://www.snapeda.com/parts/IRL530NSTRLPBF/Infineon/view-
part/) [2]
[https://www.snapeda.com/parts/IE0515S/XP](https://www.snapeda.com/parts/IE0515S/XP)
Power/view-part/

------
Animats
The value here is in the footprint library. The question is whether it is any
good. Footprints have lots of subtle issues, especially as the pin spacing
gets very tight.

(I soldered some 0.5mm spacing pins earlier this evening. This works much
better since I modified the footprint to not have any pad area under the
raised part of the gull wing leads. This prevents solder bridges which are
firmly attached to a pad under the raised leads. Those are tough to remove.)

------
zw123456
Well, if all chip manufacturers made jtag bsdl files for their parts then no
one would need this. But since few do, thanks, very cool innovation!

~~~
metaphor
> Well, if all chip manufacturers made jtag bsdl files for their parts...

BSDLs are designed to define boundary-scan chains, not schematic
symbols/footprints.

~~~
zw123456
There is a macro available for the Eagle PCB design software that converts
BSDL to schematic and foot print. BSDL although originally for boundary scan
has info about footprint but it is not a big deal since so few manufacturers
make it available.

~~~
metaphor
> BSDL although originally for boundary scan has info about footprint but it
> is not a big deal since so few manufacturers make it available.

Devil always lurks in the details. That generic parameter is so sparsely
defined in 1149.1 that I struggle to see any semblance of consistency between
major reconfigurable device vendors, let alone vendors which don't actually
integrate boundary-scan.

There's also a philosophical point: electrical schematics _should_ document
electrical intent. A BSDL-driven EDA approach which must consider arbitrary
semiconductors would largely be constrained to simple I/O separation with a
mechanical representation of physical package layout serving as fallback in
the case of poor inference. This doesn't account for symbolic capability
between PCADs either, e.g. multi-part symbols, variants, hidden pins, etc.

In summary, end result is pretty much a box with little to no functional
intent conveyed, resulting in what I consider to be the worst type of
schematic interpretation experience.

------
madengr
Cool idea, though I personally don’t spend a time of time making footprints or
symbols. Most of it is spent actually doing the design. When I do create a
schematic symbol, I read the entire data sheet, not just the I/O section.
Often, the symbol will be drawn multiple ways, depending on how the part is
being used and how the support components are connected. As an example, many
Linear Technology parts have several symbols for the same part.

Once you have a big, personal library of parts, it’s usually copying one and
modifying it slightly. Better yet to reuse as much form the previous designs
as possible since the part has been proven in.

------
montecarl
This might not be the right place to post this, but I'll give it a shot. What
should I read and what exercises should I do to learn more about electronic
design? I'm a software developer and I have a very basic understanding of
electronics (simple components, ac/dc, etc) and I have played with an arduino
before, but I'd like to take a more systematic approach to learning. I'd like
to work my way up to designing a headphone amplifier/equalizer, but it seems
overwhelming to get started in this field.

~~~
roymurdock
Have seen this vouched for numerous times on HN, been meaning to check it out
when I get some free time: [http://nand2tetris.org/](http://nand2tetris.org/)

Goes up the stack from boolean logic to OS.

~~~
no_protocol
The Elements of Computing Systems book/course doesn't really cover electronics
design at all. Terms like "resistor" and "voltage" aren't covered. It just
asks students to construct some basic patterns using a software package.

I think the user is looking for something more like this:

[https://learningtheartofelectronics.com/](https://learningtheartofelectronics.com/)

That's a pretty big mouthful to swallow on your own, though. There are
probably more gentle approaches available.

~~~
roymurdock
Ah yeah you're both right, my bad. Didn't read carefully enough. Definitely
not a course to learn basics of electronics engineering.

------
davidzweig
I read the title of the article and thought, oh, but of course! You put your
SMD components on a flatbed scanner and the software identifies the legs and
creates the correct footprint automatically. Ah. Not that. :-)

~~~
natashabaker
That would be very cool! Actually one of our users did something similar =)
[https://jasiek.me/2016/09/29/creating-footprints-from-
actual...](https://jasiek.me/2016/09/29/creating-footprints-from-actual-parts-
in-kicad.html)

The good news is that we've already done the work to extract pin dimensions,
and then applied IPC calculations to them to make the footprint. So for
standard ICs it's not necessary.

~~~
davidzweig
It's a nice project you have, it has saved me a lot of time.

------
kazinator
The only time I've needed to build a custom footprint (not from a library) was
for parts that I had to physically measure with calipers. For anything even
remotely standard (transistor in standard package, integrated circuit, SMT
resistor/capacitor/diode and such) the library symbols will be fine. Unless
you don't like their style or whatever; you want rounder or sharper corners on
pads or what have you.

~~~
natashabaker
Is this being professionally assembled? We make all new footprints to IPC
standards and take into account the tolerances of the lead width, toe, etc.
And these differ between manufacturers even for something as simple as an
8-pin SOIC. If you're just hand soldering, then it may not be a concern to get
this specific.

