6 ms·
Show HN: Build circuit boards faster with computer vision
- natashabaker 9y agoHi 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 9y agoWhat 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.
- natashabaker 9y agoThanks 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/ https://www.snapeda.com/parts/SFH6319T/Vishay/view-part/. Please stay tuned for simulation models!
- yitchelle 9y agoThe 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?
- MTminded 9y agoHi 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/ https://www.snapeda.com/standards/.
- amelius 9y agoSo ... 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 9y agoEngineers 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 9y agoSounds 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 9y agoEverything 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.
- madengr 9y agoThat’s the last thing I’d trust, Joe Public creating device models. Leave that to the device modeling groups at the semiconductor companies.
- natashabaker 9y agoWe 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/ 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.
- Bromskloss 9y ago> 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.
- rcdmd 9y agoLooks 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.
- MattValentine 9y agoHello 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. http://opencv.org/ http://opencv.org/ https://opensource.google.com/projects/tesseract https://opensource.google.com/projects/tesseract
- fest 9y agoFor 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.
- natashabaker 9y agoWe have a great product called InstaPart (https://www.snapeda.com/instapart https://www.snapeda.com/instapart) to help with that, or if it's already in our library you can download it free!
- petra 9y agoThis 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?
- natashabaker 9y agoYes 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.
- sitkack 9y agoNot 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.
- natashabaker 9y agoThanks. 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?
- sitkack 9y agoI'd like to merge two footprints so I can make PCBs that are future proof.
- mamcx 9y agoPeople on the mechanical keyboard community are much into building custom PBC. Check there: https://www.reddit.com/r/MechanicalKeyboards/ 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 ;) )
- Animats 9y agoThose are not mechanical keyboards. Those are just computer keyboards with slightly better key switches. This is a mechanical keyboard.[1] [1] http://www.aetherltd.com/images/keyboard1med.jpg http://www.aetherltd.com/images/keyboard1med.jpg
- jhallenworld 9y ago>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.
- natashabaker 9y agoWe 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 https://www.snapeda.com/plugins.
- rasz 9y ago>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
- montecarl 9y agoThis 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 9y agoHave 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.
- montecarl 9y agoThat 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.
- no_protocol 9y agoThe 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 9y agoAh yeah you're both right, my bad. Didn't read carefully enough. Definitely not a course to learn basics of electronics engineering.
- encore2097 9y ago
- kazinator 9y agoThe 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 9y agoIs 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.
- deleted 9y ago[deleted]
- metaphor 9y agoGenerally speaking, an unacceptable practice for a large chunk of professional industry beholden to requirements spec traceable to IPC standards.
- zw123456 9y agoWell, 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!
- natashabaker 9y agoVery true, that would make our jobs much easier!
- metaphor 9y ago> 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 9y agoThere 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 9y ago> 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.
- davidzweig 9y agoI 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 9y agoThat would be very cool! Actually one of our users did something similar =) https://jasiek.me/2016/09/29/creating-footprints-from-actual-parts-in-kicad.html https://jasiek.me/2016/09/29/creating-footprints-from-actual... 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 9y agoIt's a nice project you have, it has saved me a lot of time.
- madengr 9y agoCool 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.
- Animats 9y agoThe 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.)
- Animats 9y agoTried 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-part/ https://www.snapeda.com/parts/IRL530NSTRLPBF/Infineon/view-p... [2] https://www.snapeda.com/parts/IE0515S/XP https://www.snapeda.com/parts/IE0515S/XP Power/view-part/