Quick way of flipping layers when routing

Beginner question - just trying to learn my way round this, compared to previous system.

Say one is routing and on a particular route, realises that a segment of the route needs to be flipped to the other side (two layer board in this case) with a via(s) inserted at the change. Maybe a short vertical section to a pad that is actually on the horizontal side needs flipping to the vertical side to allow another horizontal track through. Is there a simple way of doing this?

The ‘other’ software had a mechanism where one selected the segment of the route, hit a key and it flipped it to the other side, inserting vias as necessary (and removing them automatically if you flipped it back).

Anything like that in KiCAD?

hotkey ‘V’ (via) while routing track.
Read Help->List Hotkeys…
I have made my own list of them sorted by the stage of PCB designing process (placement, routing, diff pair routing, via stitching).

Thanks, yes, but that isn’t quite what I meant. I’ve used ‘V’ when routing as you say.

General wisdom says that to avoid blocking the board, place horizontal tracks on one side, vertical on the other with vias to join the two. Even works between pairs of layers on a multi layer board. Trouble is vias are expensive and take up space on both sides so are best avoided where possible.

Say you have an already routed track on the horizontal side that is mainly horizontal, but it has a short vertical section in the middle or at the end (still on the horizontal side), and you suddenly realise that to get some other track through, you are going to need to flip that vertical segment to be on the vertical side, with via(s) where it joins its horizontal segments. What is the easiest way of doing that?

The ‘other’ tool I used allowed you to select the segment and with one keystroke, flip it to the other side and vias were automatically placed at the joins. If you flipped it back the vias went away again. Fast and easy.

Is there an equivalent mechanism in KiCAD?

The other trick it let you do was to ‘neck’ a segment. Say you have a wide track (0.050") that needs to go between two 0.1" pitched pads - maybe to complete a power grid on a non-power plane board. Again what you could do was select the segment of 0.050" track between the pads, and neck it down to 0.012" or whatever, just for the short distance between the pads. Similar principle - select a track segment and operate on it.

All these tools have their own tricks, I’m just trying to find out what the KiCAD UI allows as I’m new to it as of the weekend.

Editing a segment’s width is easy, just right click and edit it (or use E). There’s an option in the 5.99 nightlies to bind a hotkey to change a track to the currently selected width (and I seem to remember it also existed before, but can’t find it in 5.1.10), but it’s usefulness is marginal.

The only way of “quickly” rerouting a track onto another layer that I can think of is to manually place 2 vias, go to the other side and route a track between them. Depending on your router settings (you need something like “remove loops” (can’t be bothered to look it up)), the track connecting the vias on the original side is removed.

This is a simple function I’ve also wished for in the past, and may even be useful.
A counter argument is that the via’s and/or track that is being pushed to another layer will seldom be in the spot where you want it to be.
The closest alternative I know is to just draw a new track (and the via’s) in the place where you want them to be, and then usually the old track segments get deleted. (Setting in: Pcbnew / Route / Interactive Router Settings / Options: Remove redundant tracks)

If you want a “neck down” to squeeze a track between some pads for example, then the best way to do that currently is probably to first define some custom track widths ( Pcbnew / File / Board Setup / Design Rules / Tracks & Via’s) and then you can iterate through the defined widths with hot keys while drawing a track. w makes a track wider, while [Shift + w]** makes it narrower, and repeated [Shift +w] gets you finally to the Net-class width of that track. I do not entirely understand though how the pre-defined track widths interact with the net-class track widht.

1 Like

Thanks for the replies. I dare say KiCAD misses a lot of features I am used to, but also probably adds new ones that are useful. So it is really a learning exercise as to what is possible.

Maybe new UI features will gradually appear.

There are many new features in KiCad-nightly V5.99. Almost all development effort has been going there, and a few are cherry picked and put into the stable V5.x.

A long list with lots of small talk in between:

A much more coherent review of new features:

Thanks, I’ll read that.

Well, skim read all of it. Very interesting, must read it more carefully. Lots of stuff on the way. The different UI paradigm looks better.

The only thing that was conspicuous by its absence was any mention of autorouting - I may have missed it. A contentious subject, but I have found one useful at times.

From what I read KiCAD did once have an autorouter, but it was dropped. Since then one can use FreeRouting - and I’ve tried it - but there is no mention of closer linkage to it, available JAR (I got it from LayoutEditor as auggested). Wonder why?

I must admit a poor autorouter is worse than useless - gets part way, gives up leaving a totally blocked board that you then need to rip up. But nonetheless, would have been interested in future thinking on this.

There have been many threads about autorouting here in the past, and it seems the general idea is that the interactive routing features of KiCad is a better help than an autorouter.

Well it is certainly a divisive subject. I have occasionally used one and found it useful. Depends on circumstances, I guess.

Is that an official line then, do you know?

This is from memory, but I have understood that autorouting is not a priority for the developers, and most likely not on the list of features in v.7.
Some developers write here every now and then, so they might give more accurate info.

You can export the design as a dsn file which can be imported into a suitable autorouter. Once routed, Kicad will then re-import the routed dsn files.

There used to be a ‘Autoroute’ button - which was directly linked to FreeRouter. This project had some legal issues and wasn’t under active development although there have been some more recent work on a couple of forks. I think the developers wanted to facilitate an autorouter agnostic workflow - hence the move to a dsn import/export mechanism. This is a very reasonable position as it doesn’t commit the limited developer support to work a feature which is available outside of KiCad. The emphasis within KiCad has been on the push and shove router.

Yes, I can see that. However, I would have thought that some sort of nod in that direction, if only to the point of providing a built FreeRouting JAR as part of the installer and some brief instruction on import / export access to it, would be useful - caveat emptor. At the moment if you want to try it, you need to pull it out of the LayoutEditor ZIP file (which is what I did), or build it yourself. It does work, just tried it.

But if there are legal problems, then there are.

‘An agnostic - a person who believes it is not possible to prove the existence or otherwise of autorouting’. Well, I think it is safe to assume it does exist!

By agnostic, I mean you can use any auto router you want via the dsn mechanism - Konekt, Pulsonix, TopoR, FreeRoute, gEDA - whatever- KiCad neither knows nor cares. Whether you have faith in the result is up to you.
With limited development time, including other dependencies directly is unlikely as there are other priorities and there is a supported import/export pathway already.

For a straight track, select and press = 'Flip.

This does not work as required for multi-segment tracks because of the mirroring action (‘F’ is meant for swapping components from one to the other side).

For a multi-segment track -

  1. Select all track segments
  2. Right-Click --> ‘Properties’
  3. Choose layer

Admitttedly not ‘1 key’

Thanks, but the neat trick the other system did was to insert or remove vias as necessary at the same time.