10 ms·
The tooling ecosystem that adds joy to KiCad
- Animats 4y agoWhen the autorouter was removed, I lost interest in working with KiCad. There are published excuses for why you don't need/want the autorouter, but they read like fanboy stuff.[1] The removed autorouter can still be run, but the integration isn't very good.[2] It's too bad they gave up instead of improving the autorouter. It wasn't that bad. [1] https://www.reddit.com/r/KiCad/comments/icqvfi/no_autorouting_in_kicad/ https://www.reddit.com/r/KiCad/comments/icqvfi/no_autoroutin... [2] https://philipmcgaw.com/never-trust-the-autorouter/ https://philipmcgaw.com/never-trust-the-autorouter/
- nyanpasu64 4y agoAs much as I'm philosophically uncomfortable building software for ill-defined problems like time stretching, audio source separation, and image recognition, I wonder if AI can be used to produce a autorouter with better performance. I've seen some companies already working on that.
- exmadscientist 4y agoAs someone who scoffs at "AI" and a professional EE who detests autorouters (they take more time to set up than it takes to do the job), I honestly think this is the future. They're a good match for each other, since routing has clear success and failure conditions, a lot of leeway to achieve them (actually too much; this is what usually sinks autorouters, with them painting themselves into dumb corners), no expectation of or need for perfection, and the default presence of a human in the loop (to add the logos if nothing else). But the real payoff will be in automatic component placement, since that's 85% of the work anyway. And I think the same trends apply there too, it will just take longer.
- amelius 4y ago> But the real payoff will be in automatic component placement, since that's 85% of the work anyway. I wonder how much separable the problems of placement and routing are. That said, I'd love to see a function in KiCad that does auto-placement (more than I want auto-routing).
- rcxdude 4y agoIn terms of fully optimising the final result, they aren't separable. If you want routing to be likely to succeed, you need to give extra space between components, but this will waste some of it. Getting a good result means the placer needs to have at least some knowledge of the routing. This tradeoff also exists with manual placement and routing to some extent, especially since the tooling it still not very good at push-and-shove for a whole component, especially one with many pins. Also in practice in the design process there's quite often no requirement for an optimal result in terms of space used: before the PCB is designed there's a negotiation with the mechanical design as to how much space is allocated and so long as you're under that you're OK, and there's little bonus points for coming under (since it would require reworking the mechanical design to take advantage of it).
- kramerger 4y agoI think you mean is to use deep learning. Many current autorouters already use "AI" (often genetic programming).
- delfinom 4y agoThere are companies that pitch that as a service. My understanding is that it sounds great but the one magical part about the EE domain is we have an absurd selection of ICs being made every day by companies that are tailor made for every application under the sun. It's the best way to cut physical hardware costs down by every penny possible for volume manufacturing and it's trivial for a human to design schematics and board layouts tailored to the chip in the grand scheme of things. The problem then becomes that the AI would need to be constantly trained on newer and newer human designed samples for each new chip to keep up.
- cmroanirgo 4y agoA comment from the reddit link which makes their alternate seem appropriate (I haven't used kiCad since around 2010, so have no opinion either way): > What KiCad does have is "push and shove" routing, which is really nice. As you're trying to manually route a new trace, it will push existing traces out of the way as you incrementally route the new one. This is a huge time saver as you manually route your board.
- m-ee 4y agoThat's equivalent to how I use Altium. Autorouter takes too much work to set up the design rules. I've never designed anything super dense though.
- dbrgn 4y agoThe push&shove router is one of KiCad's best features. I'd take that over an autorouter any day.
- taneq 4y agoWhy is this an either/or scenario? Anyone who has the option (including myself on EaglePCB back in the mists of time) seems to prefer manually setting copper pours, running the "important" signals (whatever that means in the context) etc. and then letting the autorouter do the trivial, fiddly, numerous traces for them. It's not a fire-and-forget automatic PCB layout generator, more like cruise control. Nobody says "the handling on my new car is great, I'd take it over cruise control any day."
- piperswe 4y agoStrangely I have heard people say similar things about their cars.
- taneq 4y agoNow that I think of it, if I could just get a traditional manual clutch shoved in between my car's automatic transmission and the driveshaft, that would basically solve all my issues with it. Autos are fine these days for all but the most 'spirited' driving, but it still gripes me to not be able to precisely control that front/rear torque split coming into the corner.
- bagels 4y agoIt was interesting how hostile the professionals on the reddit thread were to autorouting. They mention a host of things that the autorouters are bad at as evidence that autorouters are useless, instead of recognizing the opportunity to improve autorouters to make their jobs easier. The 'travelling salesman' argument was my favorite though, because it's somehow okay for a human to provide a working but non-optimal solution, but the bar for the computer is finding the optimal solution.
- rcxdude 4y agoIt's probably because most people who come into PCB design assume autorouting is like a compiler: you just need to design the schematic and then the computer does the rest for you. Even with very good autorouting this is never the case, and if you assume so, especially as a beginner, you will wind up with hilariously bad results. This is why experienced PCB designers will often smack the beginner's hand away from the autorouter. That said, they aren't completely useless (though I've never had a case where I needed it), but they are also a very high effort to improve: it's a thorny optimisation problem to start with, but also what is not appreciated is it's also a really difficult user interface problem, since the designer needs to be able to specify the requirements to the autorouter in high precision enough to get a good result, while also taking less time than just doing the routing themselves (which for experienced PCB designers is not really that long for most cases), especially when placement is just as important for a good result, intermingles with routing to a large degree, and is even harder to specify (placement depends on finding a good compromise between thermal, electrical, and mechanical goals, all of which are difficult to specify precisely). Given they're a big trap to newcomers and also a huge amount of effort for something which has pretty niche applications in practice, I'm not suprised the team behind KiCAD decided it was not worth the effort. If you (or someone else) thinks they can make a more useful one, it's definitely a space where improvements on the current state of tooling can be improved, but don't underestimate the effort involved.
- barbegal 4y agoWhat specifically are most autorouters bad at? My understanding is that most autorouters are simply using bad algorithms and miss optimizations that a human could spot easily. I was recommended to try this autorouter https://www.eremex.com/products/topor/ https://www.eremex.com/products/topor/ but I haven't got round to trialling it yet. >The designer needs to be able to specify the requirements to the autorouter in high precision enough to get a good result, while also taking less time than just doing the routing themselves Aren't most of those rules the same between projects. Once you have a good setup you're good to go on many projects?
- harvie 4y agoI use Mihosoft Freerouting autorouter with KiCAD. It's free opensource which works reasonably well without any artifical limitations. Although i prefer to route critical stuff by hand (high current, high frequency, differential pairs, etc...) and let the autorouter to do the rest. But it's written in Java, which is not really my personal preference. Also there was some performance issue when board outline contained arcs, so i had to convert them to series of short lines which reclaimed the autorouting speed. https://freerouting.mihosoft.eu/ https://freerouting.mihosoft.eu/ https://github.com/miho/freerouting https://github.com/miho/freerouting
- delfinom 4y agoMihosoft/freerouting is a fork of a GPL violating fork (freerouting/freerouting) of the original autorouter written by Alfons Wirtz. (It's GPL violating because these forks proceeded to completely strip Alfon's name and copyright blocks out of all the source files like true assholes). The freerouting/freerouting project on github is still maintained at least. KiCad's "autorouter" was simply some button integration for use with Alfon's autorouter distribution back in the day. There's a plugin located in the freerouting/freerouting project that adds that button back to KiCad 6.
- delfinom 4y agoKicad dev here, the autorouter was never part of KiCad. It was a third party tool that had to be separately installed, KiCad's only integration was a button. (There is one GPL-violating fork of that autorouter that has a kicad plugin that adds that button back) The real problem is that third party tool went abandoned for years due to a major CAD company claimed copyright ownership due to the author's former employment with them (the traditional ownership of IP in employment). That former author of the router, even though he disputed the timeline of the code's creation being outside employment, basically said "I'm in retirement on a fixed income, fuck this I ain't dealing with it" and abandoned the router. Then over the last 8 years there were random forks that quickly petered out because well, it's all very very niche software. The KiCad project isn't touching that code due to (a) it being in Java when everyone is a C/C++ domain expert (b) the legal claims by that big company basically make that specific codebase poison so we need to stay away from it. As for creating a new autorouter, it has come up multiple times. The problem is, anyone can create a autorouter but a good one is a whole different ballgame The best way to describe the problem is while the PCB layout is 2D. Routing is actually a multi-dimensional problem requiring input of all kinds of parameters to do it good. It's just we are a small group of electrical engineering oriented guys and we just don't have the interest in spending our limited free time on it. We are totally open to somebody contributing it, but alas, everyone expects us, the active contributors to do it instead. You know, that horrible pitfall of open source.
- nonrandomstring 4y agoLove KiCAD and used it to make single and 2-layer boards around 2014. One niggle was if you had an unusual component it was not much fun to define new one, binding together the schematic symbol and footprint into a package, dealing with unused pins and labels etc. Eagle seemed to have more professional component libraries. Anyway I expect that's improved in the past 8 years.
- fest 4y agoIt's still not fun, but I'd put it on par with Altium Designer: + at least I don't have to generate my own bog-standard 0402, 0603 resistor/capacitor footprints, + a lot of the standard IPC-something footprints are included in kicad standard library (e.g. SOT23, SOP8, etc) + you can easily copy an existing transistor symbol, assign it a particular footprint you've verified and save to your library). - Altium has a lot more built-in wizards for symbol and footprint generation. There are some online kicad symbol library generators and a few built-in footprint wizards, but I believe AD has more. The Altium online component library probably does provide a larger selection, but I personally don't really trust it to be around forever. I'm also not sure if you don't need an active altium subscription (5000-8000USD/yr/seat) to have access to it.
- phendrenad2 4y agoThis is what keeps me from using Kicad also. In my opinion creating custom components is the #1 thing pcb editors should focus on, but most freeware or libre pcb editors assume you'll mostly want to pull parts from a standard bank. That's fine, but I like to customize my footprints and also carefully validate them against the manufacturer datasheet.
- sschueller 4y agoI love KiCad. Best part is that I can run a pipline in gitlab [1] that will produce Gerbers for specific fabs, automatic rule check as well as interactive BOMs exports. Additionally the 3d export is good enough now that you can import it into Blender and do something like this within a few hours: https://www.youtube.com/watch?v=svU7NyfJJKY https://www.youtube.com/watch?v=svU7NyfJJKY [1] https://news.ycombinator.com/item?id=31236936 https://news.ycombinator.com/item?id=31236936
- gaudat 4y agoJLCPCB and other Chinese fabs really revolutionized the hobby PCB market with their automated systems. Hope we will see fabs based in NA or EU doing the same. I'm tired of waiting a month for the boards.
- fest 4y agoYes, I think this is undervalued feature, which should be used more in professional contexts. - being able to tag a commit, which automatically updates silkscreen with tag name/board revision and commit date. - being able to run automated checks on outputs (are part numbers defined for all components? are they valid? are they in stock?) - not being able to produce outputs if DRC fails (I have messed up real bad by exporting gerbers in Altium with shelved polygons) - all of the outputs are produced at the same time (I have messed up with re-exporting gerbers but not BOM) - making sure that design is atomic/does not depend on libraries present only on a particular machine I recently went one step further and set up CI job to check symbols in my personal library using kicad-library-utils (which performs the same checks as for the symbols in official kicad libraries, which ensures consistent style and allows for custom checks (e.g. MPN/Manufacturer fields present).
- kennywinker 4y agoCurious how you get the git tag into kicad. That seems ludicrously useful!
- fest 4y ago
- rcarmo 4y agoI etched PCBs with my dad when I was a kid (a long time before the Internet), and delved into electronics very early on. I loved SPICE and all the other DOS-era tooling we had, but am still flabbergasted at the breadth of scope of KiCad and what you can do with it completely for free. It’s like Christmas every day for those of us who still dabble in electronics for fun.
- ParkClarke 4y agoYou'd love to know that SPICE is still used to this day, I still find LTSpice one of the better simulation tools.
- rcarmo 4y agoAmazing! Thanks for letting me know.
- Kliment 4y agoSorry about the orange tint on the slides, I forgot to turn off the redshift function in KDE and the talk was late at night.
- TT-392 4y agoI really hope kicad gets the blender treatment some day. It has been a dream of mine to actually not have to use altium(or eagle, or orcad) when working for an EE company.
- Gordonjcp 4y agoWhat do you mean by "the Blender treatment"?
- TT-392 4y agoBeing taken seriously by companies, getting the big investments to increase developement speed by lots. Actually overtaking its competitors in terms of features. A big usability overhaul. Fun stuff like that.
- Gordonjcp 4y agoIt's developed by and used by CERN, which is Pretty Damn Serious.
- etimberg 4y agoHaving worked in the EDA industry, though more on the electronics simulation side, there's a surprising amount of complexity in these tools. I think the complexity is such that it needs more than a single entity supporting it otherwise only the features that CERN directly uses will get enhanced.
- retSava 4y agoI've used KiCad for 2 and 4 layer boards, including RF-sensitive stuff with PCB antennas, worked great. Loved that the component footprint (among other things) was just readable text, thus I could manually create the traces for the antenna exactly per the TI appnote describing the antenna, which was much easier than making the traces by hand in the editor.
- bArray 4y agoThe best thing to happen to KiCad was skidl [1] paired with freerouting [2]. You can spin a board in so little time it's insane. In the future I will be looking to automate even the parts placement too. P.S. If there is interest I will look to document my workflow. [1] https://github.com/devbisme/skidl https://github.com/devbisme/skidl [2] https://github.com/freerouting/freerouting https://github.com/freerouting/freerouting
- gte525u 4y agoI'm definitely curious. As a software guy who occasionally does a test or automation fixture, I find the workflow of most EDAs a bit strange. It seems to actively discourage reuse. Everyone seems to have their own stash of footprints and known good circuits.
- barkingcat 4y agoThere are parts libraries if you work in a company (there would be a whole division devoted to building components) so that internally there is a ton of (mandatory) reuse.
- myself248 4y agoYeah, because making a good footprint suitable for upstreaming is so laborious, and categorizing it is just as important as making it in the first place, most folks who find themselves needing a footprint just whip one out for the job at hand and it's "good enough" and they reuse it forever, even though they'd be ashamed to share it. I'd love a Footprint Club that looks at what people have been making for themselves, accepts submissions, and cleans them up the popular ones for upstreaming. Hmmmm.
- exmadscientist 4y agoNo, there needs to be a footprint standard library. Three dozen or so standard footprints, drawn rigorously to standards, will cover tens of thousands of parts. (I'm talking things like EIA/IEC standard chip parts, JEDEC and JEITA transistors, diodes, and ICs, etc. Connectors not included!) Make that, rigorously and with documentation and traceability, and you can design boards fast and with great confidence in their manufacturability. Unfortunately even professional EEs struggle with using standardization to their advantage, I have found. Partly this is vendors' fault as they don't make things clear at all. Partly it's just a nice competitive advantage for me and my employer as we spend far less time on footprints and have far fewer footprint errors, so I guess I shouldn't squawk too loudly....
- ur-whale 4y agoHave they fixed the parts library management problem? I love KiCAD, but last I used it, this was a huge PITN.