Autoroute? Is it coming? (Mod edit, short answer is not in the foreseeable future so nothing to see here. ;) )

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.

10 Likes

I like this approach. @craftyjon Thanks for the link and update, I look forward to seeing this implemented.

1 Like

Hi @tormyvancool

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.

3 Likes

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. :yum:

2 Likes

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?

1 Like

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” :slight_smile:

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.

2 Likes

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?

  1. Hove (don’t click) over a track.
  2. Press U.
  3. Press U again…
  4. Right click, and then: Special tools / Create Array
  5. :slight_smile:
3 Likes

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. :slightly_smiling_face:
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

1 Like

How about a way to automatically put a direct route between two points, if there are no obstacles (same net) .

Mike’s got you :slight_smile:

6 Likes

Interesting. Lets see how they work.

Also see it in action: Post-v6 new features and development news - #71 by mikebwilliams
Thank you @mikebwilliams! :smiley:

[yes, this is not a real autorouter, like this thread is about, but that demo video is awesome and will make this thread alive again :D]

1 Like

Maybe it should be closed before it hits 200 posts?

1 Like

Or maybe @poco should have started a new thread titled:

Fake Autorouter is on the Way! :smiley:

For many users this route one track at a time assistance is more useful than the effort of setting up a good autorouter rules with track priorities. There is no magic software that can examine the schematic and identify the critical tracks to route first automatically.

10 Likes