Tuesday, 2 December 2014

KiCAD Tidbits

KiCAD, For Profit!

I recently picked up a small contract for a board design, and the client wanted to use KiCAD.

I'd dabbled with KiCAD before, and even though I wont favour it over Altium, it's still a useful package, at a great price :)

But, it's not without it's quirks.

All About The Angles

When faces with a dense board and a lot of fan out, it can be very helpful if you place large IC's at 45 degrees.  This (at least in my experience) cuts down the number of via's needed, but at the cost of more board space.

Anyway, KiCAD doesn't have a problem with placing pars at non-orthogonal angles ,but when you try to route long traces, the router gets wigged out.

Here the trace is following the existing traces, and I'm dragging the mouse down and to the right.  

Then this happens.  Sigh.  You need to 'anchor' your trace early and often to keep it close to your intended route.  Not a deal breaker, but just inefficient.

And then this happens, you get a kink in the corner.  Once again, not a deal breaker, but more work for you to fix.

There is one real peeve I have with this behaviour.  Sometimes, you may end up with a small bump in a trace.  You then try to run a long trace parallel to this, and as this tiny section violates a clearance rule, poof, your freshly laid trace vanishes.  

The first few times this happened, it was confusing, but once you recognise the behaviour, you need to search and destroy the bumps.

So routing is a chore with KiCAD.  You could lay out the worlds most complicated boardin KiCAD but you'll be much older by the time it's done...

Push and Shove (A Bit)

Relatively new to KiCAD is push and shove routing, which is a big time saver if you need to nudge a bunch of traces over for room.

Here you can see it shoving 5 trace to the side, great!

But when the traces stack up, the Push and Shove fails.  In the above shot, there is no way the races are moving.  Time to delete and re-do, the old fashioned way :(

Random Stuff

KiCAD, in one respect, will never be boring.  For example, when defining a plane, it decided to do this:

So not boring, but not nice either.  Just exit, don't save, and try again.  Tedious...

When connected Isn't

KiCAD, when checking for connected nets, seems to use the track's ends, not what the track itself is touching.

In the above pic, pins 2 and 4 are very much connected, but you can see the rats net where KiCAD believes that they are not connected.  I did't work it out but a friend pointed out to me that as my trace runs from pin 2 to 6 *without an end in pin 4* the DRC fails.

Here is a better example using a via drawn in outline mode.  You can see the traces touch the via, but don't meet in the centre, and the rats nest marker is there showing KiCAD's displeasure.

The fix is to join up all the segments, with tracks that run to the centre of the via.  AT the end of the day this makes zero difference to the gerbers that get generated, but the OCD in me lives to see zero errors in the DRC.

Until the DRC screws you, that is....


As I'd set pretty  lose tolerances of 0.00" trace and clearance, I wanted the DRVC to pick up on this.  And immediately it found one, only one, error and aborted the DRC.

Double clicking on the DRC message (a nice feature) takes you to the location of the error, as seen below:

Out by the board's origin, there's some mythical 0.005" trace that i can't get rid of, and the DRC won't play nice with this error.  To get the DRC to run, if you set minimum track width to 0.005", he DRC will complete and show you the rest of your errors.

But this is bad - if I have a 0.006" trace out there, I'll never find it with this DRC engine.

Text Based Search

To find a part in the PCB or Schematic, Ctrl-F brings up a typical search dialog, and if you are looking for R127, you'll be taken right to it, either in PCB or SCH, depending on where you're currently working.

But if you were to search for C2, you will be shown C20, C22, C221 etc until you cycle around to C2.  So annoying.

Other Gripes

Some other issues I have with KiCAD include:
  • No copy / paste in PCB
  • Can't just place a via, must place one with a trace
  • No copy / paste in PCB
  • Trace completion that give radical, mad loops 
  • You have the ability to turn off individual rats nets, but not turn them ON.  Argh!
  • No copy / paste in PCB!

In Conclusion

KiCAD is here to stay.  Circuit Maker may give it a run for it's money when it finally comes out, and with some work, it could be a real player.  Copy / Paste is a must.

And finally, if I ever have another KiCAD contract, I'm doubling my time estimate.  The layout tool needs a lot of improvement.  But it is the right price for home hobby stuff!


  1. Like all CAD software, kicad has it's crazy quirks. A lot of people really hate that it uses different terminology and GUI functionality to most software out there, so its learning curve is not great for most of us.

    RE your first problem: try tapping the '/' key when drawing traces. It flips which end of the being-drawn-segment is straight and which is bent.

    In my version of kicad copy+paste in PCBnew works. You need to drag a selection box, pretend to move the whole lot, then right click instead of left clicking to get a menu. I don't always find this useful however -> it would be nicer to be able to hone my selection by ctrl+selecting and deselecting parts individually.

    Hope these tips help :)

  2. For the vias: can't you just neatly join your tracks as a T junction? I have not touched the DRC in kicad for ages, but I might be wrong.