Why do people choose to NOT use the auto-router?

I had use this Freerouting for one of my design before (~300 component). I took forever (~whole 1 day, still routing), and many trials (for a month!!). I realize the result just never get what I wanted, or going to be function, and meet all the standard. So I end up do manual everything. I gain more deep understand of what I make, and much more less time to get it finish, and less time to move and fix stuff on the board manually.

2 Likes

I’ve never chosen not to auto-route. I’ve just never tried to auto-route.
The schematic is the hard bit…lots of brainpower needed.
The board layout is the fun bit…quite relaxing: a bit like a “free for all” jig-saw puzzle, and immensely rewarding to see it finished and working.

5 Likes

One reason to hand route that no one has mentioned: Interactive FPGA pinout to PCB layout. I will layout a PCB with an FPGA, and if an area gets tough to route, I can rearrange FPGA pinout to make it easier. I change the schematic and can easily route the switched signals. Kicad has really worked well for me in this regard, here is a recent sample, I just got these boards first revision back and have so far had a great turn-on (for clarity the silk and other layers not displayed

5 Likes

My boards are so simple in general, that we do not find any win from using auto-router. In this reason I do not have much experience with auto-routing than just playing with it a little. Also, I avoid ground-loops and any kind of antenna’s to happen on the board for the noise immunity and ESD compliance and keep on eye the power lines that sometimes carry considerable amount of current. By playing with the auto-routers I have seen that to take all of this into account while auto-routing quite a lot of learning is needed. But I can imagine, that in one day the auto-router will be part of my active tools.

Between all those who do not use the autorouter let me say that I used it for most of my boards. I’ve been working for decades with the Bartels Auto Engineer and it always did a good job for me. Our boards were mostly low speed but sometimes very tight. My procedure normally included:
1 pre routing VCC and GND vias, decoupling capacitors and may be a few critical lines
2 running the autorouter
3 changing some blocking pre routed things, go back to 2
4 checking the layout by highlighting each net one by one (could be done with one key)
5 beautifying the layout (optional)
I never had a board that did not work because of the autorouter.
Long time ago, I had a board with a 68000 microprocessor. The router completed it over lunch break with only few corrections necessary. Saved a lot of time and many of these boards still work today.
The router was a rip up and retry type, deleting blocking tracks and routing them elsewhere, with a final optimizer reducing via count and trace length and I always considered it very effective.
I would say, it depends on your board if an autorouter can be helpful. If you have mainboard style boards, with busses, DRAM and so on, probably not or at least not for the whole board. If you have just a controller with some cirquits around, it well may be. But it never will be a one click solution! You must use your brain before and after the autorouter!

1 Like

I think he real problem for the Kicad community going forward is someone keeping code up to date. The current auto-router is abandonware. It seems the ‘active developers’ were individuals intent on porting it to the latest Java and not really concerned with its functionality. If you know of any branch that is actively developing it let them know they are welcome here.

The main issue with autorouters is the operator. When he sees that the board is routed at 100%, he assumes it’s done. No. One must look for possibilities of moving components in order to reduce track length and number of unnecessary vias. Sometimes a choice has to be made between two tarcks; a signal track should be reduced in length as much as possible, even if it implies lengthening another non -critical track, such as rails and slow signals.
The beauty of autorouter is that one can see nearly instantly the result of their changes.
I do almost exclusively audio, for which the rule is ground follows signal. I know there are some PCB softwares that offer the option of audio routing; never tried it, though.
Once the ground and signals are routed, they can be fixed and the rest can be re-routed.
Beware that adding a ground plane can have disatrous results, by mixing dirty currents with sensitive tracks.
My ground planes are polygons with islands that make sure they get separated.
I couldn’t return to manual routing, which I did for 30+ years.
So again, each one his own and YMMV.

I would put my vote in the “not a fan of auto-routers” category. I’ve used a few a very long time ago, and they didn’t save me much time or effort.

As mentioned in many, many posts above, layout (component placement, routing, everything else associated with it) is something that takes experience and knowledge of the circuits and the PCB fab process.

For reference, routing that 35 component PCB would probably take me an hour or so, from untangling the rat’s nest to generating gerbers.

  1. Start cleaning up the rat’s nest. Have the schematic open on a second screen to double check which components are associated with which components. (i.e. Which of the 16 0.1uF capacitors connected between VCC and GND are associated with this IC?)
  2. Place the components with fixed/pre-determined locations into their respective places. (i.e. mounting holes, RasPi 40-pin connector, Arduino headers, etc.)
  3. Place the component groups generally near the components they interact with, to minimize trace lengths.
  4. Start routing.
  5. Find as many problems spots as you can.
  6. Iterate, ideally from step 3 and not repeating step 1 or 2.

Not quite. Making traces shorter is A goal, but it’s not the only goal. There are many other competing goals that one needs to compromise between to achieve the overall goal of a successful PCB. These include: Manufacturability, RF performance, electrical performance, power efficiency (The PCB has a HUGE effect on this), EMC/EMI, noise rejection, etc.

An example of a compromise I made recently: I opted for 0603 passives because I knew that the contract manufacturer I was using would not up-charge me. However, that meant that the 2 switch-mode power supplies I designed had electrical circuits that were larger that necessary, which might result in some performance degradation. Thankfully, it probably won’t, and my design is tolerant to a slight performance dip there, but it is a calculation that is being made as I’m laying it out.

Hope that helps.

1 Like

Wow, now that’s a clear response if ever I’ve seen one.

From a computer science perspective I think the problem can be summed up as follows:

  • existing auto-routers are already hard-pressed to optimise in the spatial domain
  • they take far too few other considerations (thermal design, EMC, high-speed signals, analog processing, visual beauty, human understandability, etc) into account when doing their routing
  • it’s probably not realistic to take all these considerations into account - the optimisation problem would become intractable

So people use them, if at all, as a starting point for their manual routing…

Regards,

Richard

3 Likes

Thanks for the design, I hope to learn from it. I hope you get taken up on your challenge and we can discuss merits of various results.

The “Freerouting” autorouter (https://freerouting.org/) is a pretty neat piece of software. It’s not part of the KiCad project and it’s not abandonware. Support seems to come from a commercial provider of multichip module design software, who support and provide Freerouting as part of their design workflow. The algorithms were state of the art at the time it was developed - but that was a long time ago. The needs of the time are not necessarily the needs now, but I’m thinking are still good enough for a lot of designs (or for a class of designs).

I get that people who love routing really love routing. At the edges of the technology you are producing works of art that no auto-router could create, and at the centre are working faster manually than it would take to explain things properly to the autorouter - and I still have to have an intelligent placement to begin with! However, at the other end of the “compexity” spectrum, for a certain class of designs, I think there would be enourmous take-up of an automatic path to layout.

Porting this to the latest Java and doing some minor work on the UI doesn’t count in my book. I found a ‘contact us’ under a generic privacy policy link that was probably the web package front end default and it killed my browser trying to open an infinite number of pages. There is no indication of code development. Core functionality is abandoned as far as I can tell. If you can find a contact that proves different, invite them here. They would be quite welcome. But, as it is, don’t grow to depend on it too much.

Autorouters are useful tools in the hands of experienced people for parts of a design, and after careful component placement and routing of critical parts.

The idea some beginners have of throwing components on a board and then letting the autorouter do the rest is not “good practice”.
It probably works for your first few boards if they’re simple and components are far apart, but it will get you into trouble later when designs get more complicated, components get closer together and frequencies rise or other constraints increas such as combinations of high currents and small signals such as in an audio amplifier.
If you start doing your first designs with freerouter, then you’ve missed the opportunity to learn manual routing and it’s peculiarities on those simple designs and you will just push the learning curve forward and made it steeper, because the end level is just as high. If Linuxdev had routed his board manually then he already would have discovered that his component placement is far from optimal from a routing standpoint.

Manual routing should be learned first to learn what the constraints are for PCB design, and once that is learned autorouters can be used to reduce the amount of time needed to do the PCB routing.

My own boards are too simple for an autorouter to be of much use, and using an external program is therefore too much of a bother to even try it. On top of that there is the excellent interactive router in KiCad which makes it very easy to push tracks aside to make room for just one more track or via. With the interactive router I can make boards smaller than I otherwise would have dared to even try, but when component placement gets more compact, less room is left for tracks, which increases the time needed to do the routing.

Just did a simple search for autorouter related articles on:
https://hackaday.com/?s=autorouter

One of their articles is:


which apparently uses an online AI engine for the routing.
I have not tried it myself.
2 Likes

I doubt that. I know a handful of full-time layout people and none of them is using autorouters. They all say that in the time they need to set up the autorouter correctly, they can route by hand. Probably they’d switch to autorouting any time when it would save them time.

I think there are mainly two autorouter “use cases”:

  1. Beginners who find the idea fascinating
  2. Pros with very specific setups where they get better results, faster

Personally I hope KiCad stays clear of autorouting. In my personal opinion it is a waste of time and would tie up developer resources that are invested better elsewhere.

2 Likes

I think you missunderstood me. Layout people I know generally really like the activity of layout, even finding it theropeutic. I expect it would be similar for some other people to solving a jigsaw puzzle, finding the best route on a map, solving a math problem or listening to Wagner.

I have no interest either in spending effort on something that is only fascinating. I am not sure 2. is practically possible unless at the scale of Mentor or Cadence.

There may be a third use-case - expedited workflows for a class of projects that can be automatically generated with acceptable results.

I also agree autorouting should be out of scope for KiCad project, but isn’t anyway. The Spectra interface is also a viable migration path to commercial tools, so I hope it continues to be supported.

Same discussion here: Newbie question about autorouting

Tensorflow based autorouter

Why product design industry prefer manual routing over autoroute for designing Pcb layout?

And probably many other threads…

There is satisfaction in layouts, hence the therapeutic effect. It’s like any other interest.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.