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.
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.
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/.
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.
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.
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.
Hello I'm the developer behind this tool. We use OpenCV for the computer vision portion (i.e. breaking the table up into the proper cells) and Tesseract OCR for the optical character recognition. Both tools are open source and have pretty wide adoption.
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.
We have a great product called InstaPart (https://www.snapeda.com/instapart) to help with that, or if it's already in our library you can download it free!
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.
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?
>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.
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.
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:
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.
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.
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.
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.
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. :-)
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.
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.
52 comments
[ 0.23 ms ] story [ 89.3 ms ] threadAs 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!
* 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.
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!
Like a GitHub for electronic models, and related data.
Also, can other toolmakers openly access these libraries?
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.
Or the data could just be released in a bunch of formats.
http://opencv.org/ https://opensource.google.com/projects/tesseract
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?
* 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.
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 ;) )
[1] http://www.aetherltd.com/images/keyboard1med.jpg
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.
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.
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
Goes up the stack from boolean logic to OS.
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.
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'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.
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.
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
BSDLs are designed to define boundary-scan chains, not schematic symbols/footprints.
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.
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.
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.
(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.)
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/