What is the best procedure regarding re-layouting?

I am creating some PCBs (first time in my life).

Now after making some changes, I wonder if there are better procedures. I created a schema, than I made the PCB (with PcbNew). I haven’t used some kind of autorouter yet (I will try the interactive one, found out in a KiCad forum post it exists, great). I spent quite some time layout out all traces, and after some time I’m happy (no errors, no unconnected nodes).

But than, I change the position, or add/change some footprints, or move them. I get a lot of errors about nodes not connected or traces going over footprints, so what I do is:

  1. Remove the overlapping traces.
  2. Select the menu option to delete all non-full traces (sorry I don’t have KiCad around). It removes all incomplete traces. I noticed that sometimes small parts are not removed, especially near connection points.
  3. But than I have to kind of rewire everything again. This takes a lot of time, even when just moving a footprint, I can add some extra traces from the last nodes to the new nodes, but this looks quite ugly. Using the ‘g’ key helps a but, but still it’s quite cumbersome (non 0/45/90 degrees traces).

I wonder if I do something wrong.

The usual solution to this is to first think carefully about component placement, and once you’ve started routing the tracks, simply do not move the components anymore.

But sometimes it’s unavoidable.
And you’re right, this often leads to having to redo major parts of the routing, which is exactly the reason you try to avoid it by making a perfect component placement the first time (which needs experience).

Sometimes it helps to selet a bock with a few components and al the tracks between those components, and move them together.
This eases the cleanup, because you only have to cleanup around the boundaries of the box.

Sometimes it helps to “push” a track or a via against an already placed track (which has an DRC error because you moved a footprint). The track with the DRC error then gets moved by the interactive router and it puts the track in a place where it does not generate a DRC error.

KiCad is also a relatively new PCB program. It has become a very usable program now and I like it very much, but 5 years ago it was in a terrible state.
Things like: “Pcbnew / Edit / Cleanup Tracks and Via’s…” are relatively new in KiCad and among the features that are not yet fully worked out. I Expect them to gradually improve in the coming years.

This likely removes far more than needed, and therefore not a good idea.
If you click on a single segment to highlight it, and then pres the [Del] key, you remove a single segment.
You can also select multiple segments of a track with the ‘i’ and ‘u’ shortcuts.

Hovering over a track and then presseing [Del] deletes the track upto the closest split, pad or via.

A simple trick is to first select a single segment and delete it, then hover over the part you just disconnected and press [Del] to delete that part.

There are many shortcut keys in KiCad, and they speed up things a lot, but it does take some time to get to know them and apply them effectively.

3 Likes

Thank you very much for this extensive tips. And as I now see from your text, I so far removed too much while not needed. And about experience, I just have a few days experience and indeed I found some ways to improve the layout (like trying to avoid cross-traces/intersections). I did not know about the interactive router until today, so I will definitely check that. I also will check the delete trick and the shortcuts. Thanks again!

Actually, I like KiCad a lot (but have no experience in other similar application, nor with PCB design in general). But so far (and with help of the mini tutorial of KiCad and a lot of help from this forum), I managed to create some PCBs (still have to fully test it on a breadboard, I first wanted to know if I could make some PCBs anyway).

You can add your vote here: https://bugs.launchpad.net/kicad/+bug/1743099

Use the ‘d’ key instead of ‘g’ key to drag tracks; it will keep it at 45° angles. Also a trick I discovered lately is when fine adjusting a track by dragging is to keep the shift key pressed at the same time. This will prevent tracks to be “magnetic” and be attracted as close a possible to one of two neighbor tracks instead of being midway between them as intended.

Assuming you are on ver 5.1, the push and shove router is very good to avoid DRC errors, like track too close together to the pad of another net. It is sometimes too good because if there is already a DRC error, it might refuse to move any track that is affected. (This is one of the situations where I find an escape by temporarily reverting to the old classic tool set to get things moving again…).

1 Like

Add your vote here, too: https://bugs.launchpad.net/kicad/+bug/1801946 :slight_smile:

Thanks for the pointer to the bug report - added my vote. In the bug report you write:“I have to change to Highlight collisions/allow violations mode to to that. And then I can’t push other tracks away.” What do you mean by that/ where can one find the “Highlight collisions/allow violations mode”?

At least in nightly builds it’s in Route->Interactive Router Settings. “Highlight collisions” switches off push and shove, instead it just highlights items which are colliding. “Allow DRC violations” works in that mode, as it says it allows you to move traces even they would violate DRC rules. You can use it temporarily to move otherwise immovable traces. It’s needed if you don’t delete traces but move a component so that the traces are on wrong pads.

1 Like

Thanks @eelik, I found it in ver. 5.1.2-151-gc951ca6f4-1, release build, that I am using. I will try that next time I run into this problem.

Like the above poster, for most projects, Its easier to get the component placement mostly grouped early on, unless I am making things very compact,

Begin by grouping functional blocks, e.g. you have an op amp with an input, an output, power and ground and a handful of passives just for that op amp, move them off to the side and move and route just that group as well as you can, e.g. short lengths, ideal rotations etc

Continue through until you have handled all the smaller easier groupings,

Then start joining groups by rotating the groups and moving them about for the best fit and ease of connection,

Continue till 95% of things are in place, then its a game of shuffling the small stuff to make the less important traces fit,

As for how I do rip-ups of certain areas, Generally I move the components, mouse + tap the delete key to remove the problem traces, or backspace key to just remove a segment, shift the stuff I need, then route the traces freshly,

With E.g. your moving a microcontroller with 40 pins, well if a whole bunch of passives are grouped around it, I may just drag over the micro and passives, drag it outside the board, Tidy up the problem traces, make room for its new position, then drag and move it into the new spot, quickly rejoining what is needed.

Also use the highlight collisions mode for almost all work, its easier for bulk layout in this mode, moving to push-shove when things get a bit tight towards the end if your inclined that way.

Sometimes moving a via instead of dragging a via means you can pack things more tightly, then tidy up the traces afterwards, Never had much luck dragging traces, most of the time prefer to rerun a part of a trace and have it remove the old one automatically.

There are also the veiw mode toggles on the left hand side to make pads / vias or traces transparent, this is an easy way to clean up those abandoned segments with the backspace key if they are making the snapping problematic.

1 Like

Thank you very much for all those tips and tricks … I will try them this week (and I really should get those shortcuts). I like the tip of making groups and connect them later, so far I just did component by component (not that my PCBs will be that complicated, compared to professional ones).

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.