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

Same experience here.
KiCad used to make quite a lot of very short track segments to connect tracks. It looked like it was some connection between on-grid and off-grid tracks, and it I’m getting the feeling these appear a lot less in KiCad-nightly V5.99. And when they appear (or are left over from a KiCad V5.1.x -> V5.99 conversion) I get the feeling they are easier to clean up. Cleanup was sort of mandatory. In itself these small segments do not create faults and seem harmles, but they can make it more difficult for the Push & Shove algorithm to work properly. Sometimes they got cleaned up by shoving a via into a track so it gets moved a bit by the P&S algorithm, and this also seems to work better now.

And **PCB Editor / Tools / Cleanup Tracks and Via’s also has more options.

A screenshot from KiCad V5.1.x Pcbnew / Edit / Cleanup Tracks and Via’s
image

And a screenshot from KiCad-nightly V5.99" PCB editor / Tools / Cleanup Tracks and Via’s (it has moved)

You can also click on the items which KiCad can clean up and then the PCB pans to that location, so you can get a pretty good Idea of what KiCad will do.

Isn’t “tacks connecting different nets” a DRC error?
The other items are not DRC errors

Yes, that is a DRC violation.
It can occur for example during a box move operation. If then you’re left with some overlapping tracks and nets this can clean it up and you have no more DRC violations.

I prefer to do the DRC check and manually fix each error. Moving rather than deleting is normally needed

If you click on the blue thing in front of the text line, then KiCad leaves those tracks alone during a cleanup cycle, and you can do it yourself in any manner that you see fit.
image

The interactive router in Shove mode also handles tracks with DRC violations better. and quite often it just routes a track around a pad if it got overlapped and you drag it with the interactive router. So I agree here, and in lots of situations fixing them manually is better. But sometimes simply deleting them and re-doing a section is easier, so the function is nice to have.
But with this function, you have no control over which of the two get removed. Sometimes it moves one track segment, sometimes it deletes both track segments that overlap, so you don’t have much control here.

In the earlier screenshot I also unchecked the Delete tracks fully inside pads The reason for this is that these short segments are often added when a track enters a pad from a 45 degree angle, and then the end of the slanted part is connected with with a small track segment to the center of the pad, and I do not want these deleted. I don’t even know why anyone would want to delete them.

When there are tracks unconnected at one end inside a pad, then the cleanup function also finds them:

just for reference, there is an interesting project:

Unfortunately development ran for a year and then dormant for a year.
Anyway, interesting as at least its not written in Java

1 Like

it would be nice if some of the devs could have a look at that project…
The-OpenROAD-Project seems a very active and sponsored project


… working on an autoroute with kicad could be a game changer also for kicad

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: