Our KiCad EDA experience with ATX breakout v2

Last week we used the open source circuit design and PCB layout program KiCad to design version 2 of the ATX Breakout Board. This came as a necessity because the free version of Eagle is restricted to 100mm x 80mm PCBs, and the current ATX breakout already uses all that space.
Read our likes, dislikes, and general comments on using KiCad below.
Things we liked about KiCad
First and foremost it’s open source, which goes hand in hand with the open hardware we like to make. All the features of the software are unlocked so there’s absolutely no limitations like we experience with Eagle.

Built-in 3D previews are nice. They make it easy to inspect the silkscreen. We need to play around with it some more. Maybe learn how to add custom 3D components, and possibly export the models to a rendering engine.

Traces and pads have readable names. KiCad gives you an option to view these, lets you see which signal you’re routing, as well as the surrounding traces. This makes it easier to avoid routing close to, or underneath, certain signals. This would be particularly helpful when routing signals like USB data lines.
Things we didn’t like so much
No screen panning via the mouse. In Eagle just hold the middle mouse button to move the screen around, in KiCad you have to hold down the F4 button. This was not an easy thing to adjust to.

Minor adjustments to a schematic after starting the board are a nightmare. You have to create a new netlist, loading it into the PCB editor, and update the PCB connections. This gets very tedious with our team-based iterative design process.

Placing vias on polygons/planes is too complicated, such as vias to join ground planes. You have to trace each via to an already existing trace or pad and connect to it.
Random observations
The footprint creator Y axis is inverted, negative is up and positive is down.
Another thing to note is that KiCad doesn’t have a command console. Placing components at exact coordinates is rather complicated, and requires frequent grid alterations.
KiCad plot

This is our configuration of the gerber export utility, setup to satisfy our PCB fab’s (Seeed Studio) requirements. It includes the top and bottom copper, top and bottom solder stop mask, top and bottom Silk, and NC drill file.

Here’s the drill configuration, make sure you have no non-plated pads. This is because KiCad will create two NC drill files, one for plated through-hole pads and one for non-plated. So far we haven’t figured out how to combine them successfully.
KiCad drill files are named .drl, we rename them to .txt as per Seeed’s requirements.
Our conclusion
KiCad is more usable than the last time we tried it, but it would have been suitable to make the ATX breakout v2 board then too. Though we want to abandon Eagle for open source goodness, KiCad isn’t that alternative today.
We’d like to say that the open source nature of KiCad means it will all get worked out in the end. But, we’ve been rooting for KiCad for years and it’s still ages behind a flexible modern CAD program like Eagle. That’s not an insult, CAD programs are a monumental undertaking, and we certainly give the KiCad team props for making usable EDA software.
While we aren’t ready to move to KiCad today, it could happen eventually. When integration between schematic and board is more fluid, and there’s a command console for easier positioning, we’ll throw Eagle to the ditch in a heartbeat.
This entry was posted in Editorial and tagged Kicad, test drive.

Comments
These are fair remarks. It don’t mind that you can’t change the PCB and have the changes flow back to the schematic but it does require a lot of clicks to update. I don’t see that changing given the complex import dialog for the netlist though perhaps they could enable a one click pass through with some project defaults.
I’m still using an older version but KiCAD needs a better standard library. I would be totally fine with a complete passives library. There really is no excuse for not having a good footprint for very kind of common cap. That said I often don’t trust build in libraries anyway.
One of my main aggravations with KiCAD is when I update a netlist which has different trace rules and some of those are assigned to numerical nets. Because the PCB tool doesn’t know these are different nets now it doesn’t keep the categories straight. You can of course give your own labels to all the wires and it would keep it straight but that’s a bit tedious.
I used to think you had a commercial Eagle license.
There is a $69USD version that is for commercial use that has the same restrictions as the Freeware version (80x100mm, 2-layers, one schematic page). I’m guessing that this is what DP is using. This pricing isn’t unreasonable, although it sure would be nice if it were 100x100mm (to match Seeed’s/ITead’s classic PCB size limit).
Makes me want to see what it would take to make a Gerber stitcher. I’ll put this into my queue of things to look at (where it will never be heard from again :-( ).
DP is luckly still trying to develop opensource hardware. If they’d use a commercial version of eagle, that allowed bigger PCB’s, how would anybody without the commercial version load/edit/use those schematics. While yes, the schematics are available, nobody would be able to look/use them. So I’m not supprised at all, that DP uses the free version of eagle, as that is what most others are using too.
I believe that you can view arbitrarily-sized Eagle docs with the free version, you just can’t modify them.
You’re right, I forgot the Light version has same restrictions (besides allowed to be used in commercial applications) as the Freeware one. Wish it could be extended in size just as the Standard/Hobbyist version, while maintaining all other restrictions.
Yes, since we make money we have commercial licenses. It has the same limits as the free version. I wouldn’t use the bigger versions because it locks other people out of editing the board themselves.
I wanted to add – is it $69 now? I think it was $49 the last time I ordered one :)
You sound a bit harsh with EAGLE. It’s not that bad :-)
Have you considered trying to scale everything down to work around the EAGLE size limitation? For example instead of making a board 10 inches wide, you make it 10 millimeters wide. This requires scaling all libraries down, and then scaling the output gerber files up. But this can be automated with a few basic scripts.
So sick — I was thinking the same thing after I read this (although I was thinking more along the lines of 1/4 size components)!
The only obvious catch would be having a Gerber mangler that could scale-up the output appropriately (and give bonus points for getting rid of all of the pixelation artifacts by anti-aliasing).
I don’t feel at all like Eagle was being harshed-on. Most people (without mechanical CAD backgrounds) are pretty positive on Eagle. At least they’re making an effort to be affordable to small-fry commercial users, whereas almost noone else even makes a decent effort Altium.
For what I tend to do, the infrequent (but existent) possibility of using a similarly-but-differently-restricted version of DipTrace doesn’t warrant the extra effort learning to flog yet another ECAD program. I’m guessing that DipTrace would work for the ATX boards because of its limited complexity (restricted by connections, not size).
I was very much looking forward to reading about this DP vs. Kicad battle. Thanks guy(s).
“Altium” was auto-filtered out from “(cough)Altium(/cough)” but with angle-brackets rather than parens… probably not obvious from the result.
You don’t supposed to be using Eagle free version if you are making profit out from your designs, so switch to Kicad from now on.
As ewertz says, the $69 Light version (which allows for commercial designs) has the same restrictions as the Freeware version. That’s the one DP could be using.
Even if you do have a commercial Eagle license, it’s hard to do really open-hardware projects beyond the “free” limits, because only other Eagle commercial licensees could work with your CAD files. For open hardware to live up to the name, ideally you would use a tool that others can also use in the same way you are. Just like most open-source software uses the GCC compiler, instead of proprietary alternatives.
I like Kicad more than eagle.
Even use it profesionally now for quite complex assy’s in series
Yes, it still has a lot of quirks, but, as with many cad packages, you get around it quickly…
I have very very VERY limited eda knowledge. I played with eagle years ago and designed a really small PCB in gEDA (See forum). I know everybody has their own workflow etc. but for me it was perfectly easy, to update the schema in gschem whenever there where changes to be done on the pcb, save and re-load the file in pcb with the new changes.
So how does kicad make this all very hard and difficult?
Yes KiCAD takes a bit of getting used to but I’ve been using it for 4 months now and it kind of grows on you after a while especially once you’ve got your favourite libraries converted over. Bit difficult to remember Eagle if you have to go back to it after an abscence.
Eagle still rocks though and there’s not many boards I produce these days over 60×100 now I’ve moved to SMD so I’m guessing that limit is becoming less important and it does focus you on squeezing it on a smaller board (and smaller = cheaper to make)
PS: I love watching the KiCAD Auto-router add-in work !
The current version of KiCad is totally useless if you’re doing a metric design. All coordinates are stored internally in imperial units using far too low precision, so you end up with with lots of 0.00-0.03 mm runt traces due to bad rounding which interfere with routing. There’s a menu command to clean them up, but you have to run it constantly.
The editing tools are also a bit rudimentary, and there’s no dimensioning/measurement tools.
Ooh, another thing KiCad desperately needs is a snap override modifier key. Trying to route eg. a track bend inside a via’s snap radius is impossible. Instead you have to delete the via, route the track and re-add the via.
The schematic editor’s DRC tool also keeps insisting that random signals are unconnected, with different results each time the tool is re-run. The PCB editor also keeps claiming some tracks are not connected, but that seems to be mostly down to those 0.0 mm track stubs it keeps littering all over the place. However even after cleaning those up, in my last project there was still one rat’s nest line that simply refused to go away. The actual board worked fine, but what good are checking tools you can’t trust?
kicad libs :
http://library.oshec.org/
http://per.launay.free.fr/kicad/kicad_php/composant.php
http://www.kicadlib.org/
http://smisioto.no-ip.org/sysop/kicad.htm
http://www.reniemarquet.cjb.net/bibliotecas.html
“You have to create a new netlist, loading it into the PCB editor, and update the PCB connections.” That’s what I always do with my Orcad Schematic -> PADS Layout setup here at work, and those are standard pro design tools (at least in this area). I’ve used KiCad at home and it works OK for me, although I’ve never tried to do a metric layout. Better scrolling options would be nice (seems like it would be an easy change to make?) A better standard parts library would be good also. FYI there is a Kicad user group here: http://tech.groups.yahoo.com/group/kicad-users/
According to http://www.kicad-pcb.org/display/DEV/KiCad+Development they are moving to units of nanometers, so that might help with English/Metric issues.
@DP: Have you tried to click with the middle mouse button? It brings the position of the mouse pointer into the center of the screen. It’s kinda like panning.
WRT the mouse panning thing, it is in the “Preferences -> General Preferences” menu. If you check “Middle Button PAN Enabled” that should solve your problem. If you check “Middle Button PAN Limited” it will not try to pan outside the edges of the drawing page with the middle button, otherwise you can go as far as you like.
Wow, smooth panning works now! I’ve gotta delve deeper into Preferences. Thanks AJ, so much win!
Hi László Monda, sorry but I can’t find that option in KiCAD Pcbnew and Eeschema. I’m using KiCAD BZR 3256. What KiCAD version your using?
if you are unter ubuntu or other distribs, simply add this ppa :
http://ppa.launchpad.net/adamwolf/kicad-testing-daily/ubuntu
now it’s BZR3719 (only visible in the package manager)
The power of of open source hardware is very much the same as open source software. For example, the the ATX Breakout featured in this story is of interest to most of us for its ability to be changed by the community in an unencumbered fashion. Yes, we could find shortcomings in the board but in the end those ultimately go away due to the open nature of it.
For my designs it is open source all the way.
RE: “No screen panning via the mouse.”
IMO, the easiest way to pan in KiCad (which is a way I prefer over mouse dragging), is by using the scroll wheel to quickly zoom out and zoom back in somewhere else. It’s can be much faster to jump around by zooming, than dragging.
RE: “Placing components at exact coordinates is rather complicated, and requires frequent grid alterations.”
Frequent grid alterations are needed more often than would be nice, however for placing components at exact coordinates, just so you know, you can edit the exact coordinates in the component properties.
alex, sorry mate but that makes no sense. If you are for e.g. following a track, zooming out to zoom in will completely fsck up your perception… with any CAD tool, EDA or Graphics design, Architecture, ToolDesigner.. good and meaningful panning is no1 requirement.
I personally prefer to grab screen with a space and pan with mouse as withing photoshop but second, third, fourth mouse button is also ok, using F4 is not nearly ergonomic for a task that important.
re editing properties of components, that’s extremly slow + kicad stores all data in imperial values so it’s very imprecise when you use normal, metric system
When talking about the zooming out and in, I was thinking about the cases where you are just moving to a different section of the board that you know the location of already. For the case of following a track, I can see what you mean, but in my experience it’s honestly not a “fsck with perception” thing to use the zoom out/in trick to follow a trace provided you use the ‘highlight net’ feature for the net you’re dealing with. In any case I don’t disagree that a nice mouse dragging panning method would be nice for KiCad to have… just that personally I’d probably still prefer the method I’m used to already.
With regards to the editing of properties being slow, I agree that it’s slow, but I was pointing it out because it can be faster than changing grid sizes when the needed grid size would be awkward. Some kind of command entry would indeed be nice. And yes the low-resolution imperial units is an issue, but that’s separate matter.
I am seriously considering looking into patching KiCad to tweak the UI to fix complaints from things like this blog post and other evaluations I’ve seen people do… maybe even give it a go trying to implement more automated integration of the schematic/layout parts…
I wrote a Perl script for combining KiCAD’s Excellon drill files into one file that I’ve used successfully on Seeed’s PCB service to get NPTH holes on my boards.
I’ve made it available at GitHub if anyone’s interested.
It’s been tested only on a few boards so no warranty blah blah blah.
I ended up standardizing on diptrace.
unlimited size, 500 pads at 2 layers free for open source. I actually bought the 1000 pin license which is pretty awesome.
Give it a try, we’d be interested in your thoughts.
If I’m not mistaken, DipTrace requires Windows and .NET bloat. Once you dig in, many restrictions. But it has been awhile since I bounced off it. If you are OK with Windows only and want to do simple boards (maybe even more), besides KiCad, have a look at FreePCB (GPL license). Maybe DipTrace will run under Wine in Linux/xBSD? Or maybe (perhaps now defunct) Mono which relies on the bloat and abstraction of Qt (also of dubious longevity?) Gee, bite the bullet, slog through KiCad and when you get deep contribute back to improve it. No cross-platform support but evolving is always gEDA. Keep in-mind that Intel is introducing new (as of post time) low-end processors (Atom?) with third-party graphics engines, so Linux/xBSD Unices are going to struggle with the likes of 3D on the low-end IAx86 platforms (no open source drivers). Dumb that Intel is doing this (again).
KiCad requires the “bloat” of WxWidgets. Maybe you can find some old junk from the early 90s that just uses bare Win32 or Xlib calls and you can be happy in your cuckoo-land where reinventing the wheel for every project is a virtue rather than a waste of time.
diptrace happily runs in Linux under wine.
Me too. The Diptrace has fewer idiosyncrasies than Eagle (e.x. ‘smash’ is not a suitable synonym for the operation known as ‘ungroup’ by nearly every other program) and no board size limits.
I’d love to switch to KiCAD, but it just needs way too much work on the user experience front. My time is limited. I don’t want to spend it trying to memorize needlessly unique aspects of a cad program.
I’ve started doing hobby-level PCBs with Eagle, but recently switched to KiCad. The main reason behind this was the ability to get rid of Eagle’s limitations, but having a fully open-source toolchain also feels much nicer.
Kicad is quite interesting, in that it is actually usable for doing PCBs despite being an open-source application. It doesn’t have show-stopping drawbacks and generally works quite well for most hobbyist-level tasks.
What I really like about KiCad is the way routing works; you can see clearances right away in an intuitive manner, which helps routing lots of signals in limited space. Kicad generally seems to rely on not letting you do DRC violations in the first place, whereas Eagle’s concept seems to be explicitely triggered DRC checking. Both have their merits, but it helps me much more to get live DRC feedback.
I can’t find anything wrong with the way Kicad handles Schematics, footprint associations and layouts in three different programs. They’re actually kind of nicely integrated, e.g. will scroll to selected components automatically. Yes, having to export netlists all the time is quite quirky, but I guess it’s acceptable.
Kicad’s ability to create new components so easily and with so little pain is a real boon, but it’s also needed all the time. 3d visualization is mostly a joke, but can help you catch the instances where you placed components in such a way that they will be painful to solder manually.
I like Kicad’s approach to having simple keyboard commands for everything, except that this is not the case as soon as the editing operation gets more complex. What Kicad really needs is a more keyboard-centric user interface (e.g. editing fill zone outlines requires lots of tedious mouse clicks with no reasonable way to do it with the keyboard). The standard component libraries of Kicad are such a joke and riddled with wrong footprints that it might be best to just start over and create your own components. Thankfully, creating footprints is a piece of cake, in contrary to Eagle.
Eagle is a commercial product and therefore optimized to be usable (otherwise people wouldn’t buy it). This really shows, so Eagle’s overall usability is still superior. However, I don’t like many of their general design decisions. Creating custom footprints in Eagle is such a pain with the constant need to adjust grid sizes to arbitrary values etc. that I rarely felt the urge to. Eagle might have a way to place components exactly, but the interface for that is not easily accessible. Kicad, on the other hand, has this easily accesible, but there is no quick (and thus, productive) way of doing it. Eagle’s libraries can be relied on, whereas Kicad’s libraries can be relied on being of mediocre to bad quality. (As an example, Kicad’s 5 mm LED is covered with soldermask on the bottom side–things like this should not happen to basic parts. Also, almost all the silkscreen fonts are way too small on surface-mount parts.)
I’d say that Kicad is not “there” yet. But it has become so usable that I don’t see the point in using another program for quickly designed hobbyist-level hardware, at least not for me personally. I wished more people used Kicad, which would surely speed up development. It could also help to release stable versions more quickly, as people who want to design PCBs might not want to use nightly builds in order to do so.
“As an example, Kicad’s 5 mm LED is covered with soldermask on the bottom side–things like this should not happen to basic parts.”
I have really liked Kicad the last year or so I’ve used it, but I missed this on my last board and it really bugged me that someone made this part like this. I try to check most of the parts I use, but who would have expected that on a standard LED? How many people solder an LED from the top side of a board??
I do hope you’ve filed a bug report for that kicad library.
I’m afraid I haven’t. I’ve seen such a lack of response with other projects on bug reports that I eventually stopped looking for them. I guess I should have tried it with Kicad.
Having grown accustomed to rely on free / open source software makes any program with limitations (as Eagle has) irrelevant for me, no matter how many others are or are not using it currently. I do not work, however, with sub-par tools – yet I have no major issues using Kicad. I use Orcad for a living, and I have no claims of Kicad being equal or better for heavy professional use, but as long as you’re not trying to design your next quad core DDR3-using power plant with it, it does everything hobbyists (and by extension, most OSHW projects) need perfectly fine, in my experience.
In fact I’m so accustomed to I and O key (or mouse wheel) based zoom-scrolling that up to now I haven’t even realized there was no direct scroll available – yes, really. Indeed, Kicad is not really meant as a networked simultaneous team-editing tool, but that’s not exactly what most hobbyist do, and really – how often is one supposed to change a schematic?!? Occasional changes work just fine.
For those of you not satisfied – fine, I get it, nobody is forced to use it against their will. But declaring “it’s not there yet” is simply wrong – by the same token, I put it to you that for hobby / personal use, it very much is there just fine.
Oh, and about the libraries? Don’t bother looking past the excellent libs of Lain Walter (http://smisioto.no-ip.org/elettronica/kicad/kicad-en.htm) – making your own components is pretty much the industry standard anyway, unless you enjoy bug hunting; there is no such thing as a 100% reliable third-party library, especially drawn in the style you happen to use.
Kicad is not really meant as a networked simultaneous team-editing tool, but that’s not exactly what most hobbyist do, and really – how often is one supposed to change a schematic?!? Occasional changes work just fine.
Maybenot a regular hobbyist but it is how open source community works. And with how open source community works – yes there is a huge need to change a schematic many times.
Maybenot a regular hobbyist but it is how open source community works.
I understand the idea of OSHW is to edit / change a schematic / board many times in its life cycle as it passes from hand to hand. Are you suggesting that it’s typical of such projects to have the same board edited by multiple designers at the same time…? How does that work out? If not, any cvs/svn/git should be enough for versioning.
And with how open source community works – yes there is a huge need to change a schematic many times.
Perhaps you have a seriously different workflow than I do then. By the time I get to design the circuit board I usually have a clear enough idea of what I’m trying to do and have the schematic sufficiently stable to only need to apply minor corrections / additions / changes, having no need to constantly iterate between the two – and if I do a major-ish revision, that’s a new file. Either way, I have a hard time imagining that pushing a button to regenerate the netlist then another one to reload it would be excessively tiresome unless one is trying to design the schematic backwards from the PCB…
I didn’t do too many open hardware projects, but one of them was done on this DP forum for e.g. There were 3 complete rewrites of the schematic and many small changes (like change DCDC from 78xx to MC3* and then to LT*). It was piece of cake to change this in Proteus, I’d kill myself if I had to do it in KiCAD.
The other, more problematic, issue is back annotation, for e.g. you have quad op-amp package, on pcb you see if you swap A / D and B / C you will route board 10times easier and nicer, in Proteus, Altium, OrCAD it is few clicks in schematic and that’s done and propagated back to schematic. This is something you could do in P-Cad some 20 years ago, it works with any multipart item (74xx, 40xx…).. but that’s not all, imagine working with CPLD/FPGA, or not even that fancy, you just use a PIC microcontroler with ability to assign hw to different pins, you need a way to make changes on PCB that will go back into the schematic, routing those chips in sw that do not support back-annotation is pita, and both PIC and CPLD are pretty common these days, don’t you think?
@arhi: As many issues as I have with KiCad, I don’t think changing the schematic is nearly as bad as you say. After changing the schematic you just have to run Annotate, making sure “Keep existing annotation” is selected. If you haven’t changed or added footprints, it’s now enough to click “Read netlist” in the PCB editor, and your changes will show up.
For what it’s worth: A group within CERN is planning work to make KiCad more useful to themselves and others. So far they have made a list of desirable features http://www.ohwr.org/projects/ohr-meta/wiki/Foss-pcb and a list of things to change within KiCad: http://www.ohwr.org/attachments/1200/kicad_wp.pdf but as far as I know all this is still in planning/discussion phase.
If they make all of what they say they want I’d switch from Altium to kiCad.. what I noticed on few kicad mailing lists is that kicad core team disagree with most of things on this list, that is why I don’t think kicad on its own will ever become a good eda tool … now if CERN guy’s make a fork, cool, but that’s min 1 year work, maybe altium drop price in that time to become more acceptable :D .. or orCad .. or ..
I kindly suggest for consideration that you might be confusing notions – “good” is one thing, “state of the art” is a very, very, very different one. And they explicitly mention talking about the latter, not the former one on http://www.ohwr.org/projects/ohr-meta/wiki/Foss-pcb
Well, maybe, but I don’t regard kiCad as “good” at the moment, it’s hardly acceptable and what will cern or anyone else do in the future, we’ll see ..
I’m in foss world for many many years and I’m since day one trying to relay a message that we need to make our software as good that ppl would use it even if it was not free. I use kiCAD from time to time, I also use gEDA from time to time, the *only* reason I use them is ’cause they are free. If they were not free I’d *never* touch them, that is how bad they are.
Take a simple comparison, $500 Proteus vs $500 kiCAD, what would you chose? (I don’t say Eagle ’cause I don’t use it either even as it’s free, I consider it as bad as KiCAD), or 1000$ altium vs 1000$ KiCAD, would you ever chose KiCAD ?
Is the latest version of kicad really from january 2012? Or do I need to use Linux to get new versions??
The latest stable release is that old.
There’s a thread over on eevblog on how to build if from source on windows.
ah, great, think I found it.
http://www.eevblog.com/forum/open-source-kicad-geda/building-kicad-for-windows