Show HN: Build circuit boards faster with computer vision
snapeda.com
snapeda.com
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!
* 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 ;) )
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
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/
(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.)
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.
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.
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
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.