Friday Hack Chat: Trusting The Autorouter

Ah, the autorouter. Inside every PCB design tool, there’s a function called the ‘autorouter’. This function, when used correctly, is able to automagically lay traces between pads, producing a perfect board in under a minute. The trouble is, no one uses it. We have been told not to trust the autorouters and we hear a lot of other dire warnings about it. The autorouter never works. The autorouter will put traces everywhere. The autorouter doesn’t consider floorplanning, and sometimes you’re going to get traces that go right through the edge of your board. Is avoiding the autorouter sound advice?

For this week’s Hack Chat, we’re talking about trusting the autorouter. The autorouter is just a tool, and like any tool, it will do exactly what you tell it. The problem, therefore, is being smart enough to use the autorouter.

Our guest for this week’s Hack Chat is Ben Jordan, Director of Community Tools and Content at Altium. Ben is a Computer Systems engineer, with 25 years experience in board-level hardware and embedded systems design. He picked up a soldering iron at 8, and wrote some assembly at 12. He’s also an expert at using an autorouter successfully.

In this Hack Chat, we’re going to talk to Ben about Altium, Circuit Maker, and how to get the best performance out of an autorouter. How do you set the autorouter up? How do you test your settings? What, actually, is the technology and math that goes into an autorouter? What is the best way to design a multilayer board? How do you do multiboard designs? And what’s the deal with mixed signals?

join-hack-chat

Our Hack Chats are live community events on the Hackaday.io Hack Chat group messaging. This Hack Chat is going down Friday, February 23rd at noon, Pacific time. Want to know what time this is happening in your neck of the woods? Here, look at the neat time zone converter thingy.

Click that speech bubble to the right, and you’ll be taken directly to the Hack Chat group on Hackaday.io.

You don’t have to wait until Friday; join whenever you want and you can see what the community is talking about.

41 thoughts on “Friday Hack Chat: Trusting The Autorouter

  1. unless you are laying out something really complex it often takes more time to set the stupid thing up than just do it yourself. otherwise you get crazy stuff like traces running off the pcb and 10 billion via’s

    1. That’s pretty much the opposite of my experience. For easy boards I just run the autorouter with standard options. For more complicated stuff, I route most things by hand, because I have yet to come across an autorouter that understands the concept of “do your best.”

    2. Even in the late 90’s, autorouters were fine as long as you did anything really fiddly up front, and set up the board properly. I don’t remember what I used back then except that it was on SPARC pizza box workstations (I interned at my dad’s company and did some manual routing / part placement stuff sometimes before handing it off to the autorouter / etc)

      I suppose it comes down to a difference of time investment versus payoff. If you’re routing a large panel with many, many traces / components / etc, then the autorouter makes sense. If you’re laying out a daughterboard for a Pi, then the opposite would be true.

      To be honest I’ve not really touched an autorouter since then, as the only board layouts I’ve done have been rather simple and autorouters are relatively bad to nonexistent in the cheap/free PCB software world – setting it up properly is just not worth it.

  2. ahhh… it went wrong already in the first line of the article:
    “Ah, the autorouter. Inside every PCB design tool, there’s a function called the ‘autorouter’”
    For instance the advertisement regarding “free PCB” states: “… it does not include an autorouter.”
    For more examples, see: https://www.pannam.com/blog/best-pcb-design-software-tools/

    I’m almost certain that this is not the case! Perhaps you’d mean “every high end PCB design tool”,
    The author seemed to forget that hackaday is a website that focuses mostly on “amateurs” or people with a low budget. Although I’m quite certain that many skilled technicians, designers, engineers are watching hackaday. But I’m pretty sure most readers are everyday tinkerers. This is mostly based on my personal experience from reading the comments and the content of most articles. Which is no problem as I like hackaday just for that.

    Anyway, the auto-router, how wonderful it may seem and how functional it may be in the hands of the overly experienced user. It is indeed up for debate if this tool is suited for the everyday tinkerer or for the person who designs his/her first PCB. But we cannot assume that it is available to everybody who visits this website, we can also assume that it is not the correct tool for the job for the one-time-only PCB designer. Just like any other power-tool… it should be handled with great care, respect and craftmanship in order to achieve the proper results.

    Can’t wait till friday!

      1. Which autorouter are you using with Kicad? The built-in one no longer exists, and freeroute appears to be in some sort of legal limbo and unmaintained, so while it’s possible to get it to run, it’s a pain and probably won’t continue to be, from what I’ve read. Is there some other affordable autorouter you’re using?

  3. I’ve used autorouting the the past for some simple things, but as I have become more conformable with designing PCBs I now mostly manually route my traces. For kicks I decided to let the autorouter have a go at doing a board I’m current working on. It failed miserably. It wasn’t able to route a number of traces and used over 2x the number of vias vs noobish me manually routing traces. Achievement unlocked: beating the autorouter.

      1. Heh. That is exactly how I solder SMD resistors, get a little drunk first.

        I’m not an alcoholic (honest!), so it isn’t delirium tremens – but alcohol calms the tremor enough to stop me flinging the damn things off the board. Possibly all the lead exposure.

  4. Kicad used to use freeroute, but that no longer works.

    I just recently took the trouble to get freeroute running on my system (took a *lot* of work!), and was considering making a fork, converting from Java to C++, and making a new project that people could contribute to.

    Everyone says that existing autorouters are awful, was wondering how people would respond to an open source version (based on freeroute) that the community could poke and improve over time.

    It would be a tedious effort (converting some 30,000 LOC), but not terribly difficult. The investment in time would be significant.

    Anyone have comments/suggestions/encouragement for this plan?

    1. I setup freeroute on ubuntu 16 in about 10 minutes. I use it whenever I think I can because it saves so much time.
      So I don’t think it’s worth converting because in my experience it worked easily.

      1. Looks like the author got a dodgy scare letter from an ex-employer, but nothing more than that. He open-sourced the project and dropped it, and the company hasn’t followed up in the four years since. I guess they knew their position was bullshit and was satisfied with the chilling effect the letter caused.

    2. My experience with FreeRouting is that it was great for getting from a functional but lousy set of autoroutes to the local optimum… but its initial “connect things at all” support was incomprehensibly slow.

    3. I run Freeroute on Windows, it’s ok for small/simple projects. I think I would support a C++ version, but it would be a lot of effort. Perhaps the interactive routing could be left out, that is adequately done in KiCad. Ideally, I would like to be able to plug in alternative routing engines.

    4. I used KiCAD just a couple months ago for the very first time ever, and I let it autoroute. I made a few manual tweaks, but otherwise, it got the job done. I can’t say I recall what the autoroute was called, but whatever it was, worked.

  5. Back in the day (1988 ish) used to work at one of the labs at General Dynamics. For us the racks and test stands were all wire-wrap. The SW package to do the routing ran on an Apple IIe and would develop the routes based on the schematic and the pin designation. We would get these very long routing instructions with the various coordinate locations. Not only did the routing have to connect the points, but the routes had two layers and always avoided daisy chains. Fun times…

    1. I have not created a PCB in years, I got into other stuff, but back in the early days of DOS, there was a package that I used. I recall you told it the chips and their pin counts and where to put them on the board, and than fed the program a nodelist and it would autoroute. I wish I could recall the name of that program but it was pretty slick and it generally worked very perfectly. You could probably create a nicer layout by hand but this did all the work for you. Back in the days of having boards with lots of 7400 series TTL or 4000 series CMOS it saved a lot of time. I recall if you had analog parts that were not too layout sensitive (555’s and the like come to mind..) you could get little headers that you would plug in like a DIP that you could solder R’s and C’s to and treat them like a DIP for the autorouter.

  6. Not all autorouters are equal. One of the best I’ve come across is Specctra and it produces some beautiful results. I’ve routed hundred of boards with it but you have to take the time to set the rules.

    Typically I start by routing half a dozen of critical signals manually and then lock them. Then I assign widths, priorities and length/via constrains to all the nets. Then I draw soft-fences around group of components and this is the most useful feature to prevent traces going everywhere, also these fences are invaluable in mixed signal designs. Then I let the autorouter do its job followed by some automatic cleanup and then straight to manufacture.

    Because a board only takes tens of seconds to fully route I can do several initial runs to see where the router struggles and this helps me with the component placing. In fact component placing and footprint drawing takes 80% of the PCB design time.

    1. Zelea2 describes my favoured use of the autorouter. In Altium, I use it to tell me how well I’ve placed my components.
      I use the time to autoroute as a guide as well as looking at the areas where it really struggles.
      Once I’ve got the autoroute time down to a minimum, I then start my layout in anger, only returning to ask it’s help once I’m down to the last 2 awkward traces and it’s 3:00 am on deadline day. :-)

  7. the old orcad layout’s smart route is a pretty good one, sure you need to adjust it a little, like move the components a bit, change the parameters and so on, but as an end result is good, but the other autorouters are very horrid, i must say…

      1. At my last job, one of my duties was laying out PCBs.
        I spent a week laying out a 2-layer PCB the size of a credit card. No inner layers, restrictions on vias, so many ICs and connectors, it was tight. The finished design was a work of art, and it sat there for 2 weeks waiting on management to decide if it was going to be built.

        Then my manager informs me the dimensions were wrong, because the mechanical engineer gave us the wrong measurements. I started redesigning the board, and then got an e-mail that the CEO needed the final design TODAY! My manager said there was no way around it, so I ran the autoroute and watched as it wove a tangled mess of overly-long traces and poorly-placed vias. It was awful, but by the end of the day I had a PCB layout that was ugly, inefficient, but valid. I e-mailed the CEO right before clocking out.

        I was later informed that the CEO needed the design files to show off during a meeting A MONTH LATER.

        In conclusion, hand-routing is art but autorouting is often a necessity.

  8. Currently I just avoid the autorouter. The only use I’ve had for it so far is when board space is really tight and we have to quickly get an answer if it is physically possible to actually fit everything in a defined layer stack and board size.
    Maybe I’m just too proud to give an autorouter credit, and thats why I keep doing my layouts by hand. Because let’s be honest, if I do a proper design rule check and actually have most of the DRC rules in Altium ready to design for fabrication, adding the last few rules for the autorouter would not be that much more work…
    I have to say tho, desiging for minimal signal interference and emissions, keeping immunity high, and cover all the regulations for safety and what ever other certifications your product requires (especially working in non “hacker” or consumer markets) is no easy task. And once all the critical parts of a board have been covered with manual routing, the rest is so easy and straight forward to do that I just don’t like to outsource that part to a machine when I can just as well (or better, but probably slower) do it myself.

  9. I have 20+ years professional experience as a “human-router” and I can only but agree with some of the comments.
    Over the years I have tested the autoroute features of the main professional layout tools, and have noticed a distinct improvement; said that, they still require a lot of time setting up, such as the paths were the traces are supposed to go, and the other rules, which effectively turn the autoroute feature in something that is very manual, and definitely not for the beginner. In addition to that, the finished layout must be verified very carefully, to ensure that some HS track has not gone rogue in the analog section of the board.

    Over the years, I have gained enough experience to visualise the layout of pretty much each trace while I’m doing the component placement. This is the most important phase of the layout, as a good component placement will require almost no mental effort when it comes to the routing, just plug in your headphones, and route away to your favourite music, and before you know it will all be complete. Autorouter or not, this is not the end, now comes the job that can take quite literally forever, which is making the layout look good.
    Any experienced designer will know that one can spend an infinite amount of hours at this stage, and still not get every track to look perfect; that half millimetre to the right or to the left, that breaks the symmetry of the other track, which now requires changing the exit direction from that pad … It can go on forever, the deadline is what usually stops the clock, and defines when it has to go into manufacturing.

    I better get back to work now.

    1. With over 30 years experience, I’m with you every step!
      For not-computer-motherboard designs, the autorouter simply takes more time to set up than it takes to rout manually. And then you have to check it. And it looks god-awful.

      My only use for them (20 years ago) was to give me an idea of the best way to lay out my components, autoroute completed all but two traces? Well, thats a good point for me to lock the components and manual rout. Now I have enough experience to know in my head the best component layout to get the job done both in a timely and asthetically pleasing way.

  10. Has anyone else used EASYEDA’s autorouter? for simple stuff, it seems to run fine. It also runs in a clout setup, and they make the program free to install on your own server. (raspberry pi 3 or orange pi maybe?)

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.