52 comments

[ 0.23 ms ] story [ 89.3 ms ] thread
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!

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.

Thanks for this, and that's a great idea.

Because there is no common format that all electronics CAD vendors support, we have created our own. We then export to the various PCB design software formats.

Here's an example of how we've worked with Vishay to make the symbols, footprints, and 3D models available in one place: https://www.snapeda.com/parts/SFH6319T/Vishay/view-part/. Please stay tuned for simulation models!

The format problem has been around ever since schematic design moved into the digital world. Surprise that nothing has even come close to a standard. Getting the IC manufacturer's support on your creation is a great step in the right direction. Does your symbols have the right attributes for the CAD tools do design rule checks and validation?
Hi yitchelle, as part of our creation standards, all of our symbols contain the right attributes for DRC checks. If you're interested, you can read our standards here: https://www.snapeda.com/standards/.
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.

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.
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?

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.
That’s the last thing I’d trust, Joe Public creating device models. Leave that to the device modeling groups at the semiconductor companies.
We understand this concern which is why we build the vast majority of content.

We also work with component manufacturers to help them create or translate their content to various formats. Here's an example: https://www.snapeda.com/parts/4N32-X001/Vishay/view-part/.

User-generated content is supported due to popular demand, but we deprioritize it in favor of semiconductor-generated, or SnapEDA-generated content. We also have an automated verification checker that exposes the quality of UGC on each part page.

I’m talking about semiconductor models, not footprints or 3D CAD models.
> But that would mean that the CAD folks would have to agree on a data format

Or the data could just be released in a bunch of formats.

Looks neat! What's the technology behind it? I'm asking in part for selfish reasons-- my side project in an entirely different domain involves analyzing orderly PDF files. Sometimes the PDFs have text data in them, sometimes not.
For me, the most time-consuming part is drawing footprints for connectors and sockets. RJ-45 sockets and microSD sockets come to mind as my most memorable (footprint related) screwups.
This looks great!

Can a similar technology be used to extract part parametrics from the datasheet ? because if so we'll get much closer to the ideal chip/component search engine.

And do you know anyone working on that?

Yes for sure! Challenge there is standardization across datasheets in terms of which parameters are listed and how. Increasingly chip companies are seeing the need to make their data more accessible and standardized so I'm sure it will get easier.
Not intended to diminish your awesome work, I had this idea and I am so glad someone else did and implemented it!

* Could find typos in schematics

* Extract operational parameters from apps notes and data sheets, schematic understanding

What I really want is to bring up pages of the PDF documentation for a specific trace in a design.

Given you have a semantic description of pads for a part, could you merge (union) those pads with another similar part with a different outline? I'd like to hedge my bets and design a PCB that can support two different microprocessor variants or different vendors op-amps.

Thanks. OCR isn't 100% accurate but does a pretty good job. So we recommend double-checking before generating. Is your second point to be able to re-use a symbol for another part in the same family but that uses a different package type?
I'd like to merge two footprints so I can make PCBs that are future proof.
People on the mechanical keyboard community are much into building custom PBC. Check there:

https://www.reddit.com/r/MechanicalKeyboards/

(I for example, just default to hand-wire my keyb because was too much different and don't wanna learn how do a PBC from zero ;) )

>The part is ready to download to your desired PCB design software format

Here is where it's going to fail. How time consuming is this compared with just entering the part manually? If your product was integrated with the PCB design software then it may work.

We find that it saves at least 30 minutes for most parts, since it automatically configures the symbols, defines their electrical characteristics, completes the symbol-to-footprint mappings, and links them to verified footprints.

That being said, InstaBuild is just a small feature of SnapEDA, a website used by over 60,000 registered electrical engineers around the world to download ready-to-use symbols and footprints. Our goal is that InstaBuild will become obsolete as our database or ready-to-use models becomes comprehensive.

And yes! We do have plugins for PCB design tools available at https://www.snapeda.com/plugins.

>more sophisticated than OCR

it miss recognizes 0/2 and generates letters in pin number column which should only contain numbers on non bga parts in the demo video

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.
Have seen this vouched for numerous times on HN, been meaning to check it out when I get some free time: http://nand2tetris.org/

Goes up the stack from boolean logic to OS.

That sounds like a very cool course, but it doesn't seem to cover any actual hardware. It is a purely software approach to designing a computer from logic gates.
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/

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

Ah yeah you're both right, my bad. Didn't read carefully enough. Definitely not a course to learn basics of electronics engineering.
Ch. 1-6 in nand2tetris will give you the fundamentals of digital logic.

If your goal is a headphone amplifier/equalizer - I would recommend "The Art of Electronics" its much bigger but covers electronic design and gives you example circuits and parts which is what you're looking for.

It appears overwhelming but if you approach it with the same passion and process with which you tackled software, you'll be fine.

I wasted so many years trying to learn electronics from books when this is one subject that cannot be mastered without practical work. If reading from books you should at the very least grab yourself a copy of LT Spice and simulate to death absolutely every circuit you read about until you understand what's going on in each one. Do not move on until you do because a firm grasp of the basics is what will take you far in this field. After you've analysed each circuit go hunting online for the devices you used in your simulation and look at their data sheets. Find out through internet research what the most important datasheet characteristics are for different types of devices in different applications (e.g. transistors), for example a MOSFET datasheet might be ten pages long but for digital applications you might only care about only 5 characteristic values on the entire datasheet and never have to look at anything else on there. If you can identify what sort of space you are working in you can cut down the time it takes you to work things out by a lot.

I've found that a good way to learn electronics systematically is not to think about components but to think about requirements and applications in industry. An example in the digital domain: most things have a button on them, so start by wiring a basic momentary switch to a microcontroller and code it to count the signal and output in binary on a bank of LEDs. Now look online to try and find how you might make a latching signal in hardware from a momentary switch signal. Simulate it on LT Spice. Build this new circuit to confirm the signals. Now, wire this into the enable pin of a basic linear regulator IC and get it to latch power on/off to your bank of LEDs. Next try a switch circuit allowing you to perform a short-press latches on, long-press latches OFF function. Etc. As long as you are patient and take time to simulate and understand each signal the understanding of the components themselves should drop into place, at least in my experience.

Ought to build the circuits rather than simulate.
If you like arduino, check out the teensy. It has a really good audio library and lots of example projects related to Audio. Like you can probably do an equalizer in software with it. It use the Arduino IDE and library so it should be pretty straightforward. Very reasonable prices for the hardware as well.

https://www.pjrc.com/teensy/td_libs_Audio.html

That will be good for getting familiar. At some point if you want to design circuits you need to learn the circuit theory and math. Too many resources to mention but if I had to pick one I'd look at something like MIT Open Courseware EE classes on circuits and "systems and signals" For books Art of Electronics is the classic.

+1 for Teensy mentioned in another comment

When you’re ready also check out Bela.io (disclaimer: I’m part of the team)

Also biased recommendation: audio effects book by Josh Reiss and Andrew McPherson

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.
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.
(comment deleted)
Generally speaking, an unacceptable practice for a large chunk of professional industry beholden to requirements spec traceable to IPC standards.
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!
Very true, that would make our jobs much easier!
> Well, if all chip manufacturers made jtag bsdl files for their parts...

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

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.
> 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.

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. :-)
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.

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.)

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... [2] https://www.snapeda.com/parts/IE0515S/XP Power/view-part/