Newbie question about autorouting

I think I put too many issues in my last post, so…looks like the FreeRoute function is only an addon Java file for Pcbnew but is fully integrated into LayoutEditor. So I’m thinking the logical workflow is you bring in the footprints to the board in Pcbnew then you reopen the .PCB and .NET files in LayoutEditor, it seems like it has to be that way because I can’t imagine that LayoutEditor knows anything about KiCAD’s footprint libraries. I sort of liked my (real old) tool because at least the autorouting was fully integrated in the same package.

I don’t see much support for integrating FreeRoute into Pcbnew and I know almost nothing about Java (although I did install the latest JRE on my system), maybe someone can explain the situation better, for all I know Pcbnew and LayoutEditor aren’t all that compatible either or at least might not be in certain critical aspects, can someone enlighten me about this issue?

For my edification, what is LayoutEditor?

Oh if you go on the internet and try to locate FreeRoute it tells you if you want to use it with KiCAD the easiest way is just bring up LayoutEditor because it’s already fully integrated. I get the general impression it’s mostly used for laying out transistors and subsystems on a chip but it also can be used as an adjunct tool for PCBs.

I haven’t done anything with laying out a board with Pcbnew but the PCBs I need done do have quite a few nets but they really aren’t all that dense. I guess the “asssisted net placement” in Pcbnew is OK but I really want and need an auutorouter and unless someone can help me set up FreeRoute in Pcbnew I’m inclined to use a tool that has it already integrated.

Thanks, that makes sense. Sounds like LayoutEditor would be a good tool for you.

2 Likes

Auto routing and huge symbol and footprint libraries are assumed to be essential to those starting out because of the learning curve. If you look on the net you’ll find many pros WON’T use them because their lively hood can’t take the hit if they make a mistake. They do all their own symbol and footprint libraries from scratch so they can trust them.

IF you have no high speed data lines AND IF you have all your trace widths right AND IF the auto router honors them correctly AND IF the auto router makes all the right connections, then life is good. ; )

1 Like

I tried autorouting once. I found I could do a much better job manually in less time. I guess it’s something people still do better than computers. Perhaps not for long.

1 Like

I don’t recommend auto-routing. I’ve used it on one project in 30 years.
The time spent setting up all the signal rules is better utilized laying out yourself.
And you should pre-route the important power & important signal tracks yourself anyway.

I’ve just written that some time ago here.
Our worker autorouted once one PCB. As he got 100% routed he was happy with it till the assembled PCB not worked. The reason was digital Data & Clock lines. One had about 1cm and the other was routed around the whole PCB - about 20cm. It was ± 20 years ago and it was my first and last contact with autorouting.
I agree that sonner or later computer will be better (and of course faster) than human in PCB design. I think it could be now, but there is less pressure to do it than to make computers playing chess or GO.

A computer could do a better job now but only if and this is a monster if, you have defined every tracks relationship to the rest - speed, crosstalk, current rating etc. This would take ages.
Humans turn out to be able to do this for themselves almost automatically with practice

1 Like

Don’t know what all the hair-tearing about autorouting is here. Like I was talking about I was using the autorouting function with microcontrollers on four of these older boards on my twenty-year-old tool, never had an issue, of course the fastest external signal is 8 MHz SPI, and the boards actually looked nice. In fact the last run with that tool I autorouted a board about 4x4 inches with 2 microcontrollers in 2 seconds, and it even passed DRC! Now I’m pretty meticulous about manual device placement but I haven’t touched the router settings in years. Maybe it’s that I do only through-hole and the footprints are all on tenth grid and the router understand that, I dunno. What I’m about to learn here is whether this “ancient” tool meets the criteria for being “obsolete” because from what you folks are saying, for my purposes it MAY be better than what’s being offered for that function today.

Are autorouters a good idea for me?

Autorouters are kind of ok as long as you have a smallish number of traces or only non critical traces. And i am sure they are better suited for low density boards than the more modern high density boards.


8MHz is also not the only parameter that is important when talking about digital signals like an SPI. How fast is your switching time? (dV/dt)
How long is the SPI? Is more than one device on it? Can you already see how the traces should look like before even starting the router? … The answers of all these will change how well the autorouter is suited for the task.


And possibly the most important question of all: How strict are the EMC requirements? Does your system need to be tested against some standard or does it only need to work in laboratory environments?

  • For the later: Who the hell cares as long as it works. (Well a perfectionist like me will. But that is a different story.)
  • For the former: You want it to be first time right as the guys that test your stuff are quite expensive. (And consider the time lost by multiple iterations.) So better invest more time into it than clicking autoroute. (Meaning one would use it at most as a first iteration.)

Does kicad come with an inbuild autorouter?
No it does not. It had a primitive one in the past but that only worked in the legacy toolset and it was simply not worth transferring it over to the new toolset.

There is an interface to an external autorouter available. (freerouter via the spectra DSN export/import. And there is a python plugin somewhere that does offer easier access. See: Announcing kicad_freerouting-plugin)
That one can sadly not be integrated at all as it is not 100% clear that everything is ok with its licensing (There is some sort of dispute going on but i am not really sure who exactly is involved.) Another problem is that it is written in java and no longer fully maintained making it even less likely to be included into kicad.

There are however vague plans to maybe at least include a basic autorouter again sometime in the future. (And i am sure nobody would have anything against a volunteer investing time into this. It simply is not a priority for the core team as they want to aim kicad at high end professional use. Autorouters simply are not there yet to fulfill these usecases so there is no real need to invest time into them.)


And shameless plug: https://contextualelectronics.com/product/never-trust-the-autorouter-t-shirt/

1 Like

You pretty much have to come to Kicad with the mindset that manual routing is better than auto routing? We like the idea that manual routing forces us to consider parts placement more carefully and do optimizations that probably don’t matter in any practical sense.

Seriously, I was where you are. I wanted huge libs and auto routing. Now, other than the 3D libs, I don’t really care. Spend some time with the available tools and maybe you’ll be a convert? The algorithms and code is out there for autorouting. Freerouting suffers from lots of forks by people that want to ‘keep the code alive’ and ‘port it to a more modern version of the language’ but in the end, no one seems interested in actually developing it. If you find someone, let us know. We would gladly invite them here and probably set up a Freeroute category for them.

Bottom line, you are allowed to have your preferences. I’m not sure any of the open source tools offer GOOD auto routing though.

Um, so my opinion should simply be disregarded DESPITE THE ISSUE that “my old tool” was actually producing results THAT DID THE JOB FOR ME?? This somehow makes me “unqualified to comment” on the state of current tools? Sorry but this defies logic in my book…

Anyway I just posted on the LayoutEditor support forum. Haven’t received any response yet but the general idea is I design the outline as I normally would, then I bring the netlist from Eeschema into Pcbnew, I do the footprint placement then I export a .DSN file back into LE, I have it autoroute then I generate a .SES file to send it back into Pcbnew so I can do DRC. (I’m having to GUESS that’s how it works because I don’t see credible documentation anywhere yet, maybe somebody here has actually tried this?) This is certainly a lot more complicated than my fully-integrated “obsolete” tool but I sure hope the results justify the relative complexity…

Or you use the plugin that interfaces with freeroute that i linked above. You know whatever suits your needs.

Huh, I looked at random_builder’s instructions and it’s almost bewildering why it’s even called a “plug-in”, you still need to export the .DSN, you run the plug-in then you import the generated .SES, it’s not like you’re saving anything to avoid using LE. Yes I’m aware in the final analysis it’s probably implementing the same “no longer supported” .JAR file. Maybe LE could be a bit more tolerant than a “naked” .JAR about the import/export processes but probably not likely.

Kind of amazing to me that 20 years ago someone was offering a fully-integrated package for $1K whose autorouter (yes for “simple” projects) still hasn’t been equalled by open-source. And oh by the way yes I am an EE but understand not everyone is in the business of trying to lay out motherboards or other high-performance digital systems PCBs or cell phones with digital waveform “fidelity” or RF/microwave/microstrip critical issues where quite understandably a simpler autorouter may be either useless or uncompetitive.

Um, did you miss? not 20 characters. sigh…

The external freerouting requires a lot of work to better with more than two layers and to be able to guide and constrain critical tracks to limited areas.
Oracles recent licencing changes have made Java awkward in office use, so Java is now seen as undesirable in opensource projects

You obviously didn’t try it because it does all of what you described for you, it’s literally single click plugin. Watch the video linked in readme on github.
Keep in mind, that plugin does require that you run a recent nightly build.

Just a few months ago here on this forum there was a discussion on the future of autorouters, which had some impressive demos about “guided” routing.
The Idea is to guide the software to what you want to do. For example connect a databus from one chip to another, and then the software fills in the details.
The designer has the overview of the big picture.
The demo looked really impressive, but it was a very short demo of an “ideal” case.
The setup work beforehand was also just skipped to make the video more impressive.

I’m convinced that highly effective autorouters already exist. If not in the PCB world, then surely in the microchip world. It’s simply physically impossible to generate the layout of a 20 billion transistor count chip by hand.

I have very little experience with autorouters myself. From what I remember they very easily make a big mess of your PCB and give up near the end. and then you have a 95% routed PCB in a few minutes, with an impossible to route 5% left, and cleaup takes more effort than laying out the board in the first place would have.
They may be applied more effectively if you have a lot of experience with them though.

But I do want to add the way KiCad is going with it’s interactive router. Pushing tracks aside to make room for one more, or squeeze in the few last via’s keeps meshmerising me and is fun to do (Maybe not for a daily job though).

Sorry no. There is a reason why analog chips are still routed by hand. (Some of my friends would loose their job if your assertion will ever come true.)

The digital world made it a lot simpler for the auto routers as it has standardized cells of equal height spaced regularly in rows. (In the beginning the space between was used for routing channels now the whole area is used and the rows are nearer to each other.) This and the fact that digital is not that critical at these very small scales makes it possible to be auto placed and auto routed.
Also remember the software has much more information about every single part and can do very powerful simulations that help make the result of auto routing better. Plus it can use a hierarchical approach as chips are build from hierarchical units. Again a luxury that is not necessarily there in pcb design.
And the autorouter does not run on a normal pc but like the simulators on quite powerful servers. (Needs a lot of computational resources. Your laptop will not cut it.)

And remember cadence costs a ■■■■■■■ of money (per month and per employee.) I seem to remember 100k€ is nothing for this software but am not sure if this was the per month or per year price.