Kicad pet peeves


I’m running KiCad under Windows 10. Are you sure you are not moving the cursor just a tiny bit. If your gird is set fine enough you might not be able to see it. Try testing it with the grid set to something large like 100 mil.


I set my grid to 5mm.
As i explained above, it snaps to the end point of the trace. And if i place the via in the middle of a trace it snaps to the intersection between grid lines and trace.

Here two screenshots.
The first one is of where it wants to place the via if nothing is in the way and i click at the middle of a trace.

The second one is similar but with something in the way. It still snaps to the existing trace. (but it moves the via away such that it does not violate DRC.)

And the result after i left-click (both shown)


Interesting. It actually works if you are snapping to the trace (i.e. the trace is not sitting on the current grid), however if the trace is on the grid, it doesn’t. I moved a trace off the grid by several mils, then switch back to a 100 mil grid and then when you actually manage to make it snap to the trace, you can start a new via right there.


Works for me if it is on grid as well. (Does not even matter if the end point is on grid in only one axis or if it is on grid in both. Still works the same. But i always work zoomed in, might be harder to get it to snap if you are zoomed out and have a small grid.)

Did you activate the correct copper layer when you start your trace? (Is a trace on another layer and kicad connects your via to that trace?)


OK, may be not. I managed to make is work once but now it is back to the old behavior.


I get it, it is another attempt at humor! Almost had me.


No this time i was serious. In the past it was nearly impossible to get the snap to trace to work if you have the bottom layer active but your target trace is on the top.

After playing around with the current nightly a bit, this seems to be easier now.


I’ve seen it might be a bug in your version.

I have used that approach even before 2013 version with no problems. I’m also using nighties, but my current one is 20170925 under kubuntu. It works with both legacy and opengl canvases.



They say a good image (or a movie) is better than a thousand words. Would you be able to record a movie showing exactly the problems you’re observing? It would let us fix them quicker.



Even if I hadn’t switched it would’ve jumped to it automatically. If you have a moment, can you verify that it still works with my router setting?

Mode - shove
Mouse drag behavior - Move item
Free angle mode - unchecked
Shove vias - checked and greyed out
Jump over obstacles - checked
Remove redundant tracks - checked
Automatic neckdown - checked
Smooth dragged segments - checked
Allow DRC violations - unchecked
Suggest track finish - unchecked and greyed out

Optimizer effort - all the way to the right on high.


Sure enough. When I switch from “Shove” to “Highlight collisions” everything works fine and I can place a via anywhere on an existing track. When I switch back to “shove” it goes back to the behavior described above.

I did submit a bug report here


Since everybody is apparently perfectly happy with all the features in the software, I will continue my malcontent list:

  1. No previous grid shortcut - quite often I switch between two sizes of the grid back and forth. I do have shortcuts for predetermined grid sizes but it would be very helpful to have a shortcut that would toggle back and forth between current grid size and the previous grid used.

  2. Can’t remove net highlight with ESC - if you highlight a net the only way to remove the highlight is to select the highlight tool again (if you previously exited it) and then click elsewhere on the sheet (or highlight a different net), which can be a pain if you have to go back and forth between route tracks tool and the highlight tool repeatedly.

  3. Remove redundant tracks shouldn’t remove locked tracks. There are certain cases when you want the tracks to be exactly like you place them. In those instances “Remove redundant tracks” option of the interactive routing keeps messing up your design even if you lock the tracks.

  4. No way to delete unconnected tracks while reading your netlist. Sometime you can end up with a hole bunch of unconnected tracks in your layout for one reason or another. It would be nice to be able to delete them when reading the netlist instead of deleting them manually one by one

  5. No function to select a track to the nearest pad/via. Quite often I need to delete a whole track between two pads. Unfortunately there is no option to select a track to the nearest pad. The only option is to select all connected copper.



[quote=“ArtG, post:32, topic:8874”]
No function to select a track to the nearest pad/via. Quite often I need to delete a whole track between two pads. Unfortunately there is no option to select a track to the nearest pad. The only option is to select all connected copper.

In opengl you can select a segment, and with the right-click pop-up menu a trivial connection, a copper connection o a whole net.
In legacy, the options are delete segment, delete track, delete net.

A track to the nearest pad or via is a segment.


@ArtG [quote=“ArtG, post:32, topic:8874”]
…my malcontent list:

  1. Bring back CvPcb and make it “THE BOM TOOL” of all Bom tools. Why does KiCad require a separate Python plugin for this functionality? (Yes, rename it something other then it was.)

  2. Update the “connect” and “non-connect” symbols/junctions per my post earlier today on the subject. Other items have gotten “eye candy” while this feature set has been left to remain as it has been.

  3. Working with board edge line segments that have arcs is a PITA. The arc editing interface could use an upgrade that is not just a hack on the normal line segment tool. Having a constant radius specified, and the end points specified from 0 to 360 degrees would be much more intuitive.

  4. A way to join line segment endpoints together for creating oddball board shapes with arcs such that it does not take hours to get a continuous board outline created. It seems a plugin, KiCommand may do this. Why, again, does everyone need a Python plugin for basic features?

  5. Hurry up and finish the transition to the GAL canvas. Having menu bar icons that do “nothing apparent” makes KiCad confusing instead of intuitive.


I’ve created a few different board designs and had them sent out to fab. KiCad has worked very well, and at a very good price, for me to get these designs completed.

A “pet peeve” is defined as something found to be especially annoying. At the moment I’ve only 5, and I know version 5 is on the way. Aside for a few gripes, I really enjoy using KiCad to make my designs become a reality!


Trivial connection does work… sometimes. It doesn’t seem to work if the pad has a branching track and it doesn’t work with vias.

Here is a selection with “Trivial Connection” option:

and here is the one for the same segment with the “Copper connection” option:

Current nightly build for WIndows doesn’t have “Unconnected Tracks” option. It’s been substituted to track connecting to 2 Nets.

What version of KiCad are you using?[quote=“pedro, post:33, topic:8874”]
A track to the nearest pad or via is a segment.

A track is not a segment. A track is a track. A segment is a segment. I would define it as a discrete primitive of a track.


You can both enjoy something in general and still have pet peeves. If you share them, there is a chance the next versions will be better.

Since we are dreaming here i would combine that with parametric design for footprints. All the drawing stuff should be done similar to how it is implemented in mechanical design software, ie loosely drawing complex shapes by hand and then defining them with dimensions. Kind of like it was done here.


CvPCB has nothing to do with BOM generation. It lets a user match a generic symbol with a generic footprint. More information is required for a BOM, and the experienced user wants that information (a part number) in the symbol, and s/he wants that symbol to also include a footprint.

Which is why the concept of atomic parts exists.

Also, CvPCB still exists for those users who prefer that workflow.


Not really on the subject, but what’s the alternative workflow (atomic parts aside)?


There are only two workflows — atomic and CvPCB.

If you’ve gone through the effort to add a footprint to a schematic symbol in the library, go the one extra step and give the symbol a proper name.

I suppose the middle ground is calling a symbol in the library something like OPAMP_DUAL_SOIC8.


With vias it works in opengl: when clicking on a track, only the clicked segment is selected. Then if remove is selected, the segment is deleted up to the via.
Both in 4.0.7 and nightly 2017-09-25 ubuntu.

OK. A segment is a straiht part of a track from two ends. These ends can be a via, a pad or any point where the track makes an angle. In legacy it is also possible to break a straight segment into 2 segments.

While reading the netlist, as I showed you in the picture, there is an option to “delete or keep unconnected tracks”. Both 4.0.7 and nightly 20170925 ubuntu.
In 2013 and 2004 versions was called “bad tracks deletion”