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

Hello,

I have heard that there is a divide between people who insist on manually hand-routing tracks on the PCB, and those who choose to use the auto-router.

I recently designed a board which I felt was relatively small (35 components) and I used the auto-router (freeRouter.jar) to do the track routing.

The resulting tracks are extremely complex, and the auto-router takes great lengths to reduce via counts and shorten tracks as much as possible.

Laying out this board by hand seems like an impossible puzzle. Figuring out how to reach every component and complete the rats-nest in the best possible way seems extremely difficult. It seems like it would be difficult to even get a layout that works.

Let alone, the number of times I rearrange components and have to rip up the tracks, and have it re-routed from scratch. I would imagine the time spent to do it manually would be 100x greater.

Do people really route by hand, and if so why? Does this take significant time? Why do tutorials and books even teach manual routing and not just assume everyone should be using an auto-router. So far I haven’t seen any downsides to using the auto-router.

(I am not referring to cases where track length/route is sensitive, for example in RF applications, etc, in which case manual routing might make sense.)

Curious for peoples thoughts.

1 Like

grabs popcorn

All right, I’ll say why I don’t use autorouter.

Not in any particular order:

  1. It’s results are always ugly.
  2. It doesn’t help with the most time intensive part of the pcb routing task: component PLACEMENT. Therefore doesn’t save much time.
  3. If you need to tweak track widths or have power planes, autorouter will more often get in the way than help.
  4. Did I mention it’s ugly?

35 component board is very easy, unless there are multiple > 60 pad micros involved. The key to good routing is placement, not actual routing. If your rats nest looks like an impossible puzzle, move parts around, rotate and flip them, until it looks like an easy puzzle.

4 Likes

Does that happen to be something you can share?

I generally agree with @qu1ck especially regarding the point about finding correct (nearest to optimal) component placement.


There is however one additional reason. Learning how to effectively use an autorouter such that one gets decent results requires effort. The more complex of a board such a router can handle the steeper the learning curve (the extreme end are the extremely powerful routers used in IC design that require years of experience to achieve good results).

And i personally am not really interested in getting help on simple boards. I can lay them out in a day or so (and i will likely get a better locking result than a simple autorouter would).
For ma a auto router would need to be able to route my most complex boards to be of interest. Only then would i see a point in investing my time into learning how to use it.


However certain tasks can benefit from semi automation. One good example are the semi automatic (or guided) routers that are already part of basically every PCB design tool. In kicad this is the interactive router when set to walkaround mode. An improvement to that is a bus routing mode that can route a certain number of parallel traces at once (I don’t think kicad has this currently).

Another interesting helper would be automatic breakout for BGAs. This is not currently in kicad. Proper (real time) handling of length matching is another thing that i could see as beneficial.

As the designer, you probably have a lot of insight in the design to guide your routing that the autorouter does not have any concept of at all.

But I think the answer always boils down to that even if it perhaps sometimes after a lot of tweaking is possible to get acceptable results, but if there is not much time to gain and you can do a better job yourself, why bother?

As for me, I quite enjoy routing. Very relaxing :slight_smile:

2 Likes

Here is a copy of a project I’m working on.

Some layout features:

  • Copper goes from connectors to spark gaps and then from the spark gaps to the internals of the PCB to catch as much of overvoltage spikes as can be done.
  • GND planes for as much room as is left, and areas stiched together (about the best I can do on a 2 layer PCB.
  • Careful layout for feedback of the voltage regulator.
  • Separation of tracks to reduce ripple of the 5V.
  • Heatsink for LM1117.

Currently this board is not fully finished. Some component values may be wrong and there are some other things that need to be checked yet. but it’s fully routed in it’s current state and DRC has 0 errors.

So, if you’re in for a challenge, then delete the copper from this board and try to autoroute it. I suspect that you get stuck at 80% or so with no hope for the last 10 percent and no room left for any GND planes in essential areas.
On the other hand. It’s quite a small and simple board. Maybe the autorouters are better than I think and you can make it work.

So if you’re willing to take this up as a challenge, I’m quite curious how far you can get.

mumar_base_stm32_2020-11-11.zip (1.5 MB)

1 Like

I agree with @qu1ck. I’m also considering rework, mechanical constraints, thermal distribution etc. Autorouter does not.

Actually like @Goldbug said, its like a puzzle which is fun to complete and stare :slight_smile:

It’s a puzzle that lots of people enjoy and play in their spare time.

1 Like

I have bested auto-routers on this and I’m not all that smart.

Also, manual routing will make you think of things that you should think about but probably wouldn’t otherwise. The skills of board layout are cumulative. Little things you come up with that may well come in handy when you have some things that auto-router can’t solve.

One of my retirement hobbies is guitar. Learning to read tabulator is quicker and easier in the beginning. Just fret numbers on the strings. Classical notation takes a little longer but you can much better visualize what the music is doing. It takes less time to learn a piece with it once you’ve plodded through it the first couple times.

To be innovative - you need your brain on top of thing, and understand the bottom to the top. So auto-router is great for that person, but would be a generation problem of known how to innovate out side of the box. I would think interactive human guided auto-route is better way.

Here is the board with 35 components and I think it would be too complex to hand route. Auto-routing looks great, it is pretty in it’s own way. Does it really matter how it looks?

Not to mention, how often I want to move a component around on the board, and end up having to re-route the entire thing. I can’t imagine having to start over again routing by hand.

No DIP/THT board is too complex to hand route.

There’s also no virtue in avoiding vias. You think that looks good because you have no understanding of actual good routing practice, best developed by experience.

3 Likes

On brief inspection, it looks like you’ve got at least a few resistors and capacitors that I would’ve just flipped around when hand routing (or flip the connections in the schematic and re-exported the net), but the autorouter gleefully ran with what you’d put in, wrapping traces around the width of the part. Which leaves it unable to route a trace between the pins.

Even if it can do that optimally, it is doing it under the constraint of not moving any of the footprints, right? So a (human) process which can move footprints, decide to use different pins, etc, can potentially do better on via count and trace length, even if it isn’t optimal.

2 Likes

Here’s a board with certainly more than 35 components and entirely hand routed :slight_smile: It’s just a matter of time and experience. From what you’ve posted, it looks like the component placement (electrically) is completely disorganized, I’m not surprised the routing is so messy (it would likely be equally messy if the board was hand-routed)…

1 Like

This is not exactly representative but it reminds me of a personal experience. I am a power designer. Around 20 years ago I was in Thailand, designing a switching power converter for my multinational employer. But my visa ran out and I had to return to USA before pcb layout got started. So it was designed by the pcb layout person who was not an EE and without consultation, and released for fabrication.

When I returned to Thailand, this board contained no netlist errors yet was absolutely 100% completely non functional. I could not get the slightest blip of power out of it. I have never before or since seen a case where bad layout by itself completely destroyed the functionality of a circuit. I suppose that an autorouter might have done slightly better than this layout person did. But my rule of thumb is that very few circuits are completely non critical with regards to good layout.

And I would add that the Thai people are really great but I found I do not like Thai food. :frowning:

1 Like

Yes and here is why:

2 Likes

This PCB should be very, very easy to route. I use mainly 0603 elements at my PCBs and I can route a max of one track under each element. When you can route may be 10 tracks under element then you should have no problem. It looks that someone placed components absolutely logic-less.
The key question is always which elements have to be at specified positions. Place them and then place the rest of components making the connection lines to look as simple as possible. This is the main time consuming process in PCB design. If the connections looks simple routing with KiCad is simple - you just click the beginning of track and the end - KiCad makes the whole track.

3 Likes

It’s a bit off topic, but I notice your board does not have a groundplane.

This makes that the return currents of the signals have to wander around the board until they find some copper to complete the circuit. This creates a lot of antenna’s that will send and receive radio waves (interference).

I make my PCB’s with a solid ground plane at the bottom, with as little and as short of traces as possible on the bottom. If I can get away with it, I also create a second ground plane on the top, and stitch those together with via’s. This also allows me to home-etch the board without having to worry about alignment between top and bottom layer, I just have to drill the board for (some of) the via’s that stitch both ground planes together, and solder a wire there at both sides of the board.

Lot’s of via’s are no problem, until the board manufacturer starts charging extra for them. Long tracks are also not a (big) problem. If I have to choose between a longer track that runs over a solid ground plane and a shorter track with no ground plane below it, I happily take the longer route.

I don’t know if the Kicad autorouter can be taught to follow this philosophy.

This article goes into further details about ground planes:
http://www.jps-pcb.com/download/the-ground-plane-lord-of-the-board.html

Can you give me a intro to component placing 101 class? The way I did it was I placed all the components which require a fixed position due to the placement of the component for interaction with human. For example I placed the audio jacks and pots first.

I then placed the other components around the board such that it would be easiest to solder. Resistors together, caps together, etc. I understand that I should have rotated some of the resistors and caps such that the trace doesn’t have to route around the component. That seems like an easy fix.

Is the goal simply to reduce the rats nest such that the traces are as short as possible? What other considerations should I take when placing components?

Nate

Part alignment as an artform. And it is different for different requirements. A general rule of thumb is to try and reduce ratsnest crossings as much as possible. And even for small boards this might mean multiple iterations are required (get a first setup, try to route the board and take what you learn into the next iteration)

This should not be high on your list of priorities. In fact most of the time this is about the worst way to place stuff.

Caps are there for a reason. They should be close to something (and with close i mean with regards to how long the connecting trace should end up being).
For example a cap on a supply pin of an IC should be placed as close as feasible to that pin. And it needs very good connection to the same GND that the IC uses. This is done such that switching currents are taken from the cap and not from the power supply lines (without this measure other components might be negatively impacted via so called galvanic coupling).
The cap has a different purpose for analog chips where it tries to stabalize the supply line. Again needs to be close to the pin to effectively do that.

Input filters for external signals should be placed as close as possible to the input port (most likely a connector). And again ground connections need to have a low impedance path to the ground pin of that connector. This is done to ensure the nasty stuff (noise, bursts, …) does not get far into your board which in turn means there is less of a chance of some type of coupling.

Separate systems of your board. The power supply should be separated from the analog stuff and the digital stuff should be separate as well.

4 Likes