Please help spread KiCad word

Longtime denizens of this board will know that I was looking for software to help me create boards to go with my Arduino, and stumbled across KiCad.

It’s been weeks now… many hours of them spent “in” KiCad… singe I was “getting started”. The more I see of KiCad, the more I like it.

Yes, Eagle is well known… but just as you “get going” in the free Eagle, you run up against the wall that says “Don’t do anything bigger, or sell what you are doing… unless you want to PAY to use our commercial product.” Fair enough! It is nice of them to let us play with the free trial.

But KiCad has no such ceiling… and I think it is as capable as Eagle.

And so I have been building a website full of “how to use KiCad” tutorials.

The best way into them, for me, is…

… and if, for some reason that doesn’t work, there’s also…


I would be very grateful if any of you fellow Arduino folk out there who happen also to be FaceBookers who would be willing to help would “Like” the Facebook page?

Mu work will have been in vain if no one knows it is there! (Note that I don’t make money out of this venture… this isn’t THAT sort of post!)

And, of course, I hope that all of you will find the information tempts you to try KiCad. If you have an influence at a secondary school or college, I think KiCad should be on their machines… it is free and multiplatform… so that the students can see computers doing something besides wp (yawn) and spreadsheets (yawn) and web-surfing… no “yawn”, but we all know what sort of pages the kids go to when they are “working” on the computer, surfing.
And, inevitably

I'm not facebooked but still I have to give KiCAD my thumbsup. 3 years ago I set a search for a free hardware toolchain and, while still not perfect and having things that really irritate me, KiCAD won and I've been using it since. Eagle was even less ergonomic than KiCAD, at least at the time. You won't miss Eagle except maybe for the less attractive KiCAD 3D view of the boards.

Does KiCad allow the moving of pins in the schematic capture?


"Moving of pins"?

Yes moving a pin on the schematic symbol of an IC to make the schematic easier to read.

There isn't a GUI for it. You can use a text editor to work on the library file. Not as easy as it could be, but do-able.

EESchema-LIBRARY Version 2.2  Date: 09/10/2011-05:30:10
# MX7221
DEF MX7221 U 0 40 Y Y 1 0 N
F0 "U" 0 -100 50 H V C C
F1 "MX7221" 0 100 50 H V C C
S -650 -750 650 750 0 0 0 N
X DIN 1 -950 550 300 R 50 50 1 1 I I
X DIG0 2 -950 450 300 R 50 50 1 1 I I
X DIG4 3 -950 350 300 R 50 50 1 1 I I
X GND 4 -950 250 300 R 50 50 1 1 I I
X DIG6 5 -950 150 300 R 50 50 1 1 I I
X DIG2 6 -950 50 300 R 50 50 1 1 I I
X DIG3 7 -950 -50 300 R 50 50 1 1 I I
X DIG7 8 -950 -150 300 R 50 50 1 1 I I
X GND 9 -950 -250 300 R 50 50 1 1 I I
X DIG5 10 -950 -350 300 R 50 50 1 1 I I
X DIG1 11 -950 -450 300 R 50 50 1 1 I I
X CS 12 -950 -550 300 R 50 50 1 1 I I
X CLK 13 950 -550 300 L 50 50 1 1 I I
X SEGA 14 950 -450 300 L 50 50 1 1 I I
X SEGF 15 950 -350 300 L 50 50 1 1 I I
X SEGB 16 950 -250 300 L 50 50 1 1 I I
X SEGG 17 950 -150 300 L 50 50 1 1 I I
X ISET 18 950 -50 300 L 50 50 1 1 I I
X VCC 19 950 50 300 L 50 50 1 1 I I
X SEGC 20 950 150 300 L 50 50 1 1 I I
X SEGE 21 950 250 300 L 50 50 1 1 I I
X SEGDP 22 950 350 300 L 50 50 1 1 I I
X SEGD 23 950 450 300 L 50 50 1 1 I I
X DOUT 24 950 550 300 L 50 50 1 1 I I
#End Library

Maybe newer versions than I have will do it in the GUI. I'm running a 2008 build.

There is a GUI for it. You'll have to edit or create from scratch a symbol for your component.

Still not working on Macs, as far as I can tell. Even after I upgraded the Mac to 10.6 Way back when, I was willing to run the CAD program on a linux "peripheral" box, with my mac running solely as display "X-terminal." But now I've become spoiled.

You'll have to edit or create from scratch a symbol for your component.

Having created a component can you move the pins on the schematic layout. For example I may have two XYZ chips on the same page but I want the pins to be in different locations on each one.

Or even if the pages or projects are different, is there a single source component that can be modified with every instance of that component?


I may have two XYZ chips on the same page but I want the pins to be in different locations on each one.

You CAN do this in EAGLE. It also involves creating your own component, with each part that you want to be independently movable created as a separate “symbol”, and then assembled to make the complete “device.”

The PIC32 part used on the ChipKit designs is a good example of this. They have each port of the PIC as a separately movable component…

If I understand what you want to do properly, then KiCad would have not problem with it. You'd solve the problem thus....

You'd set up one... or two... or however many you want! variant versions of the thing which is drawn on the schematic to represent the device you are using.

When it came time to turn the schematic into a PCB, you would define just one "footprint" (using the term narrowly, in the KiCad sense") for that device.

You would tell your project that you wanted all of the different schematic manifestations of your device to use the footprint I was just talking about.

The association of a thing on the schematic with a footprint on the PCB is ad hoc... what thing goes with which footprint is specified on a thing by thing level, separately for each project. While this way of working may seem a little odd at first, in practice it is easy to use, and gives you great "power" (and I use that word sparingly!)

I guess I would do it as tkbyd. You can "repeat" pin number on different pins (also in footprints), so there's no problem having a symbol and its variants use the same pin numbers (right now I'm not sure "variant" is KiCAD's term; I'm referring to "parts" of the same device, like when you have multiple ampops on a single chip).

To "split" a complex part in several independently movable parts as the PIC example from westfw, you can also use "variants".

The flexibility is total, I think. I make most use of flexibility on the layout tough; you can change everything you want and those changes are attached to your board (I usually make changes on a per pad basis).

Ah! Njay takes us into interesting territory!

I was thinking that Greynomad was speaking of, say, a 555 chip (not 556, note), and that he was going to have several of them in one project. (555 is a bad example in some way, but it will do!) And for some reason he wanted to represent one of them on the schematic one way, and another a different way. Easily done.

If, as Njay explored, Graynomad was thinking of the multiple gates in, say, a 7400, and he wanted to show one of them one way, another a different way, that can be done too. Not as easy, or as easy to stay on top of, but it can be done.

If Graynomad actually didn't want any of these esoteric things, but was merely asking, "If I'm using a 7400, and want to use the gate on pins 4, 5 and 6, rather than "the first" gate, the one on pins 1,2,3, am I, as The Designer, allowed to make this choice, or will KiCad try to tell me which gate is going to be used?" The answer to this is: "Yes. That is VERY easy."

Actually the 555 example is what I'm talking about, for example maybe a clock pin is better on the left in one schematic and on the right in another. Maybe if a couple of pins are moved slightly up or mirror imaged they line up with an adjacent chip and there are no confusing crossed wires.

IIRC this was easy to in the original DOS-based Protel 20-30 years ago with no kludges making composite components or variants or whatever. It seems we have taken a backward step.

There's a cheap but good package called RIMU that almost gets it right, once a component is placed it can be edited with no affect on the source component in the library. It's not interactive in that you have to edit the component in a popup window, but it's close. Unfortunately I think RIMU is defunct.


Well Graynomad, I solve your problem in a totally different way. I just avoid using wires if they aren't simple and short, and use node labels instead (actually very useful on the layout, since KiCAD will display the label on all vertical/horizontal traces). For beginners it's harder to look at a schematic where wires are scarce, but with time one learns to appreciate its advantages...

Yes I agree there are many times when just having stubs with net names is best, I do that all the time and with huge 200-pin chips there is often little choice. But there are times when that's not appropriate and it seems to be a trend these days to have 5 pages of orphaned components with hardly a wire in sight. I see this all the time with a stub called say AXY_12, I spend 10 minutes looking for it's other end only to find it right on the adjacent chip. I know the router doesn't care (auto routers, don't get me started :)) but it's hard for a human to find these things.

Making variants etc is a kludge, see my earlier comment about Protel. You should be able to just pick up a pin and move it.

A schematic is a document and, with the exception of anything written by a lawyer, the purpose of any document is to make something clear. All the techniques we’ve talked about should be available to the designer to allow him the flexibility to create a clear schematic.
</grumpy old man rant>

Sorry, I’ll go have my nap now.