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

As much as I have seen, when people talk about advanced electronics design and even “EDA software” they talk about chip design, and so it seems to be with OpenROAD, too. PCB design is the ugly stepchild left in the corner. No $1.5 billion for KiCad development.

EDIT: go to https://theopenroadproject.org/publications/ and find the paper “Open-Source EDA: If We Build It, Who Will Come?” and you’ll see what I mean.

OpenROAD is talking mainly of chip design but not only…
here the repos for PCB design:
The-OpenROAD-Project/KicadParser
The-OpenROAD-Project/PcbRouter
The-OpenROAD-Project/PcbDecompaction
The-OpenROAD-Project/PCB-PR-App

I was originally of the opinion that an autorouter was essential.

since then, I have come to like manually laying out my boards even complex ones with hundreds of components. It let’s me get more intimate with layout of the wires and find any small problems I may have missed.

Autorouting also doesn’t provide for custom copper areas and thicker tracks as needed for current flow.

1 Like

This is also relevant when you, say, use a quad op-amp device. When you make the initial schematic, who cares which “unit” of a device you use for what. But when you lay out the PCB, you will often realise that, if you move the “units” around, the layout is a LOT simpler.

DeepPCB™: PURE AI-POWERED,

CLOUD-NATIVE PCB ROUTING

https://deeppcb.ai/

Sound too good to be true. Very exciting, though. Also, “All our solved boards are Design Rules Checked (DRC clean) and fully compatible with KiCad.” I wonder why KiCad has so big role. Otherwise only Altium is mentioned (I didn’t do full research). Do they just want to use hobbyist and simple data first to train their AI further? I also noticed that “we clearly mentioned that Placement is our key goal for the year 2020.” It’s 2021 now and there’s no other info about placement. They haven’t advanced as quickly as they wanted.

Has anyone tried this? Paul mentioned this in 2020, the linked hackaday article said that results weren’t convincing back then.

Electra from https://konekt.com/support/ is another (commercial) autorouter that claims to be compatible with KiCad, and pricing starts at USD400 for two layers. I was thinking about adding links to this (and the deeppcb) and any other autorouter that claims compatibility with KiCad to the faq article you made recently, but I’m not sure if making advertisements for commercial products is the right thing to do for FAQ articles.

On the other hand. I despise the “normal” way of advertisements, because the advertiser does not have you in mind, but only his own profits. Having a list of autorouters that may or may not work in KiCad, amended with some user reviews may be a good idea for the FAQ article.

Oops.
I posted https://hackaday.com/2018/10/16/cool-tools-deus-ex-autorouter/ here earlier, but it’s not an autorouter, it looks more like a PCB design service.

1 Like

Yes… spooky isn’t it!

I’d rather see routing support tools… like a continuous impedance and electrical length calculation that takes into account vias and stackup, and updates continuously as I lay tracks. Or highlight the current return path on the ground plane - which obviously requires a bit more setup and configuration - and warns me if it strays too far. Oh, and give me the loop area so I can minimize it.

1 Like

Quite advanced requirements… Is there any program on the market that can do live highlighting of return paths?

T.

As a lot of people I’ve never cared much for an autorouter. Mostly because they can make a big mess of your PCB quickly, and for that see my other comments.

Several other programs have gotten systems for “guided auto routing”. They do not route the whole PCB in one go, but you assign some PCB area for (for example) a databus, and then the guided router routes the databus through that area. This is much quicker then drawing all the tracks manually, while you still have a lot of control about how the routing is done.

An Idea that is both quite simple to implement and use would be to add small single track autorouting, for example with “mouse gestures”. consider this:

  • Manualy start routing a track from a pad.
  • Continue until you’ve for example broken out the track from a BGA (that part may be harder to automate properly).
  • Then, depress the mouse button, move the mouse in the direction you want the track to route (multi pad nets) and release the mouse button. This mouse gesture would then instruct KiCad to auto-route that track to the nearest pad in that direction.

This could be a quick boost for KiCad’s routing capabilities.
The Interactive Router in KiCad already has most of the functionality for this built in. For example if you start a track on a pad , move the mouse to another pad of the same net and click again, then the interactive router ads multiple track segments in between.
The biggest time saver for routing like this, is that you do not have to move the mouse all the way to the other pad, which would probably also require zooming and panning. (And you also do not have to zoom & pan back to the start point for the next track).

A lot of tracks can be routed this way with a single mouse click each. Depress on the pad, drag in the general direction you want the track to go, and release the mouse button and KiCad routes that track in that direction.

He, he,
You wouldn’t want to try finishing on the BGA :slightly_smiling_face:

Quite advanced requirements… Is there any program on the market that can do live highlighting of return paths?

Highlighting the return path would be really cool though… Maybe it could be done with the FEM stuff?

A lot of my boards don’t use ground planes because they allow (encourage?) you to mess this up.

5 Likes

"An Idea that is both quite simple to implement and use would be to add small single track autorouting, for example with “mouse gestures”. A single track autoroute is helpfull. No one should use it for whole board, except perhaps for checking that the board can be done.
And also I would hope an easier way to fine tune the route if you are not totally satisfied for the result. I have habit of tune/tinker/edit my boards until I am satisfied.
Besides, autoroute can or should find a way away from a tight place, if it is too much work to do manually. Sometimes even a single track autoroute explodes, that is it makes too many changes or messes with track it shouldn’t. But I like autorouter, because it saves time with uncritical routes. If I am unhappy with the result, I edit it.

.

Kicad is a FOSS application program. I’m sure anybody with sufficient motivation and intelligence and drive could write an autoroute application program to be used with it, according to whatever constraints he or she chooses.

Writing a GOOD auto router is a very complicated task. a lot of them are somewhere between bad and mediocre, the better ones can be difficult to setup properly. Result is that many people do not even bother anymore to try to use one. The only guarantee you have is that it costs a lot of time to learn, do retries, verify afterward etc. For those reasons and probably more, I (and others) are quite happy with the interactive router.

But the Interactive router can be extended and enhanced in many ways with (semi) automatic routing. This will speed up the routing process, while you still have lots of control over what is going on.

1 Like

Looks like Paulvdh has not used a PCB CAD. I have used one and its autoroute works well. I wouldn’t let it handle whole board, but it routes single track or tracks well. Setup was simple, it needed track widths and distances between objects.

But it wasn’t free, not even close.

@cal-linux

Remarkably and fully in agreement with you.

One thing is to route 2 tracks for a couple of L.E.D.s, another stuff is to work with very complex systems. No one can forbid me to do them just for my pleasure “because his/her philosophy related autorouting”.

I don’t want to convince anybody, since religions are not deletable, and this is valid for both sides. But I want to spend my 2 cents.

As several times I said: when a feature is present, who need it, uses it. Who doesn’t, s not required to be forced to use it.
But in 2021-2002 almost, having not this feature, adn reading certain comments “against” it, it should be an alarm o ask to be back to the acetate and Ink, like we were used in in the '80s.
So why still use a CAD and develop KiCAD when the “stone-age era was better”?

To me: no sense at all.

If I have to install any other CAD to use the PCB autorouter, at this point in time, I just use these CADs for the whole project. Don’t need to jump from one CAD to another.

With the external tool: FreeRouter
Yes everything has is quirks , but I remember when I was making a very dense circuit and FreeRouter employed 12 seconds to route it.
Yes I employed after that 5 minutes to adjust the strange things this free algorithm have made, but it saved me hours. Who wants to be “back in the days”, is free do not use it, but not free to try to impose the other ones, and to convince them that “without is all the universe better” because simply: it isn’t.
Although the very last version of FreeRouter suffers of more issue than the previous one and I still use the previous not because I’m “sticked to the past, like a mussel on the sea rocks”, but because it has not the issue I detected and I was not able to make it works properly.

The day in which I will be able, I will update it.

I full understand the issues with an external tool and the extra-work to do with this kind of implementation. It’s comprehensible the “OMG no, let’s postpone it, we need an appropriate project for”, but in 2021 almost 2022 a CAD like this, so advanced, having not an autoroute in some way as option/feature, is quite limping.

Be my guess

All this above is IMHO

1 Like

Free, Open Source explains why not.
If all users paid US$5,000.00 each, every year, there would probably be an Autoroute yesterday.
also: JMHO. :slightly_smiling_face:

It’s not that simple. Developing such an feature has also drawbacks for users who don’t use it.
Examples are:

  • The devlopment takes time from other “basic” features (the developers-time is endless, so they have to prioritize) so that other features get delayed (or not implemented at all).
  • the developed new autorouter has to be maintained over time. This eats up additional bugfixing-time.
  • every new feature complicates the user-interface. The chance is higher to falsely change settings which influence the board/schematic/work if there are more settings.

my thoughts to autorouting: better concentrate on other tasks instead of a full featured autorouter. As a sort of compromise I find the “autocomplete track” in Circuitstudio a good comfort-feature for noncritical tracks, saved much mouse-movement. No extra settings needed, worked as “autorouter for single tracks”.

1 Like