Beginners expecting the autorouter to magically design their PCB are not expecting to perform this stage.
It can take a lot of effort and again experience.
If Kicad had an efficient autorouter, I’m trying to imagine the number of questions arising starting with “Why doesn’t the autorouter?” … probably need a whole new forum.
It also was probably operating on a 10+ layer board. Probably with blind or buried vias.
Autorouters get significantly more useful the more routing space you give them. VLSI is a good example–autorouters SUCKED until they got enough layers of metal. Once they got 3 or 4 unobstructed layers, suddenly autorouters got really useful.
The problem is that the vast majority of PCBs are 2 or 4 layer designs (6 max) with large through vias that obstruct all layers. This is a highly obstructed system where you might not even be able to flip the order of two wires because you can’t fit the vias. Autorouters are notoriously lousy in this kind of super-constrained system.
For example, I have personally changed chips in order to flip the ordering of the SCL/SDA pins on a 2-layer board, for example. An autorouter simply can’t do that.
Yeah, it’s awfully nice to have an autorouter hook up your SDRAM bus. However, if you do that often enough, you’re also missing a whole slate of other features that KiCad doesn’t implement. You’ll cough up $250K for one of the big boys.
Although, to be fair, if you agreed to pour a megabuck annually on the KiCad developers, they’d probably be willing to allocate a person to work on an autorouter.
If this is an issue, it’s better to avoid to make any software … right? At the end, when you do something expect questions. Or just avoid to do that something … So, even kICAD shouldn’t be there, then …
No. You read more into the post than is there. There simply has to be limits to any software given the available resources.
Question: What do we think the next incremental step in layout automation should be for Kicad? (This may already on a roadmap or GitLab already somewhere.) What gives the most bang for the developer buck (read: time)?
I would be curious to know whether semi-automated bus routing would be a huge effort based on the current Interactive Routing code. Similar to differential pair routing, but routing 4 or 8 traces at once in walk-around mode.
Improvements to the human-guided interactive router.
See WIP: PCB: Routing Convenience Functions (!1257) · Merge requests · KiCad / KiCad Source Code / kicad · GitLab for the kind of things I mean. We’re also looking at bus routing, automated fanout, and improved handling of differential pairs.
In general, the direction we are going is for the human user to “plot a course” and for KiCad to take care of the details. So, we’re working on features that make it easier and faster to use the router, to route multiple things at once, and to add automation where that automation is relatively straightforward, predictable, and can be implemented without a bunch of settings that need to be configured.
It’s on the agenda. It would be relatively straightforward to add today and perform similarly to the diff pair router, but there are some key issues with the diff pair router that need to be resolved first in order to get a nice user experience and reliable routing.
I like this approach. @craftyjon Thanks for the link and update, I look forward to seeing this implemented.
My comment was re-enforcing Davidsrsb’s comment in reply to Pedro_uno.
A decent autorouter requires a lot of setting up, and to set up, requires a lot of knowledge and experience and time. Using an autorouter is a trade-off. The question asked by the experienced user is: which is easier and quicker, setting up the autorouter to do its thing, then fine tuning at the end (if the result is satisfactory), or just laying out the board?
A beginner, seeing an autorouter button, will probably just press the button and expect magic to happen.
When the magic doesn’t happen, the questions will start, questions reflecting a lack of knowledge and experience in PCB design.
This is certainly not a comment condemning unknowing beginners, it is a comment that the beginners should learn how to design a PCB before they learn how to drive an autorouter.
I hope this clarifies my above post.
Hi @jmk thank you for the clarification. now it makes sense and it has full of common sense as well.
yes I have experience , in my far-past, in the use of Autorouting at industrial level. Yes it’s not done with the wizard stick. So these kind of questions will certainly arise.
Your guessing is very real
Placement takes up far far more time than routing. It’s actually enjoyable for me as it’s a multi-dimensional constrained optimisation problem which sometimes requires going back to the circuit design and choice of components.
I mention it because it seems if you’re were hoping to ward off dementia by sudoku it’s not good enough. Neither is manual or guided routing I suspect. But placement might exercise enough areas of the brain. At least I hope so.
My point, which I didn’t make clear, is that autorouters are in fact actively bad at the kind of over-constrained boards that represent the majority of projects that KiCad gets used on (2-6 layer boards with large through vias). This is true even for the Big Name™ PCB programs–there is no amount of programming skill that will fix that.
So, the question is: Do the developers want to spend an extraordinary amount of time on an autorouter that will benefit a very small subset of users (those with 10+ layer PCBs and blind/buried vias) or do they want to spend that same amount of time on things like human-guided bus/array routing that could be used by a lot of users?
Yes I understand your points. Although why not also invest in the “few” but important users that are using that 10+Layers? I mean, I understand that’ snot the case for many hobbyists, but also many OpenSources projects didn’t expect to become an important reference with which one can really makes his choice. Even small companies that can’t afford Zillions and perhaps they are happy making donations. I just told my opinion. So, it’s not a “law of physics”
I wouldn’t compare an autorouter with just some Open Source project which happens to become a realistic choice. Autorouting requires knowledge of problem domain and programming techiques – AI – which few have. I would compare it with image or speech recognizion or natural language processing. These are developed by multibillion companies, not by enthusiasts or even average software professionals or companies.
I agree with @eelik here. Also take into account that back in the day (and maybe now) those multibillion companies would buy-out other companies with the sole reason (or a major contributing reason) of getting their hands on the autorouter. Good autorouters are a specialized enough discipline that the big guys know that even they may not have the in-house talent for them so they have to buy the talent.
I just tried and discovered that using Kicad 6.0.6 I could copy a laid track (meaning a piecewise linear set of straight-line track segments that had already been routing in pcbnew) by first highlighting each segment with the mouse and the < Shift > key and copying and pasting the entire set of segments in one copy and one paste. So making 3 parallel tracks could be as easy as copying one big track once, pasting it twice, and editing the individual pieces for a long, long time to make them close and parallel but not intersecting. (I just did the copy and paste, but not the editing.)
Huh?
- Hove (don’t click) over a track.
- Press U.
- Press U again…
- Right click, and then: Special tools / Create Array
I edited my comment above to explain it was the < Shift > key that I held down, not the < Ctrl > key as I had first thought.
Thank you, paulvdh, for your alternate method.
I am wondering if the market for these high end autorouters is shrinking.
I first met autorouters in the days of 4 layer triple Eurocards stuffed full of glue logic.
Then the industry was grabbed by designs with big data buses, like PC motherboards.
Lately, I see far fewer PC motherboard suppliers and a shift to SoCs with far less tracking on the PCB.
In this context, impedance modeling is a greater priority
How about a way to automatically put a direct route between two points, if there are no obstacles (same net) .