Archives

I spent a little time evaluating Eagle and KiCad, two well-regarded pcb design tools for hobbyists, to see which one would best meet my needs for Tiny CPU’s board design. As a complete beginner who’s never made any kind of circuit board before, my priorities are doubtless different from what other people may value, but hopefully this comparison will be useful for others in a similar situation. My testing methodology was to follow Sparkfun’s Eagle tutorial, which involves creating a simple board based around an FTDI USB chip, and then to repeat the same tutorial creating the same board using KiCad.

The short version of my conclusions is that both packages work nicely, and will get the job done. For most people, though, I believe Eagle will be the better choice.

Eagle

I used the free version of Cadsoft Eagle, which has all the features of the commercial versions, but limits you to a single schematic page, 2 layers, and a 10 x 8 cm board area. For this test, I used Eagle 5.8.0.

The Good

Eagle’s biggest strength is its near universal adoption. Sparkfun has a huge library of Eagle parts and footprints, and their tutorials use it as well. Ladyada’s site also has an Eagle library. Most pcb manufacturers will accept Eagle .brd files directly, enabling you to skip the Gerber output step completely. There’s also a tremendous amount of information available online about how to use Eagle, answers to common and not-so-common questions, tutorials, and other data. Choosing Eagle puts you in the mainstream as far as hobbyist pcb design goes, for better or worse.

I found Eagle fairly easy to use for a complete beginner. I was able to go through the FTDI tutorial from start to finish in about an hour. The software felt reasonably logically designed, and I didn’t have to guess too much how to do things. Going from the schematic to the pcb layout was pretty straightforward. The auto-router worked fairly well and routed the entire board. Afterward, I went back and ripped up some tracks, relaying them by hand to see how that experience was. The pcb layout tool automatically showed the 10 x 8 cm board outline, which I resized to make a smaller board. The design rule checker stepped through potential issues one at a time, highlighting each one nicely.

The Bad

Depending on your project, the 2 layer and 10 x 8 cm limits may be a problem. If you need more, you’ll have to buy one of the commercial versions, which will set you back between $500 and $1500, out of the reach of most hobbyists. Or you’ll have to split you design into multiple boards.

Cost aside, I do have a few other gripes. The default keys for actions like move, copy, delete, and place wire are all function keys instead of letters with some relationship to the actions. I found that made it a bit of a challenge to remember what F4 does, but I assume the settings can be changed, so it’s not a big deal.

Identifying the right components by footprint was a bit of a pain. When you go to place a new component, it shows a preview of the footprint, but there’s no sizing grid or other dimension information. That made it impossible to tell if I was selecting a capacitor footprint with the leads 1 mm apart, or 1 inch.

My biggest gripe was with the pcb layout tool: not enough things are labeled on your board as you lay it out. I looked for some options to change this, but didn’t find any. Once you place a few parts, route some traces, and get everything nice, the board starts to look like a random sea of red, orange, and white geometric shapes. Pin numbers and net names are not shown. You can click on a pin or net, and it shows the name in the status line, but that’s a bit cumbersome.

Final Cut

Overall I liked Eagle a lot. It definitely feels as though it’s stood the test of time, and would be able to meet just about any challenge I could think of. My only real complaints are the limitations of the free version, and the visual confusion with a busy pcb layout.

KiCad

KiCad is an open-source software tool for pcb design. It often gets mentioned as a better, free alternative to Eagle, and I’ve heard a few people say that if it had been around earlier, it would have become the de-facto standard for hobbyists instead of Eagle. For this test, I used KiCad build 20100406.

The Good

I was surprised at how polished KiCad feels. It definitely surpassed my expectations for an open-source tool. In fact, its interface is more attractive than Eagle’s, and is arguably a bit more intuitive too. Actions are bound to letter keys (move is M for example), which speeds learning.

The pcb view in KiCad is pretty nicely done, with everything well-labeled. If you zoom in far enough, individual tracks are even labeled along their length, like streets on a map. This made my layout and routing job easier.

When selecting a footprint, the preview shows it on a 0.1 inch grid, which was a big help in identifying the right ones.

KiCad is open source, which is a good thing in my view. It’s free, of course, with no limits on number of layers or board size. And the source code is freely-available too, so if there’s a behavior you don’t like or a feature you really want, you can always grab the code and do it yourself.

The Bad

I have just one major complaint with KiCad, and that’s the method of footprint selection. With Eagle (and most other similar tools), a “part” combines a logical description for the schematic view and a physical description for the pcb view. When I choose FT232RL from the library in Eagle, it not only knows that it has pins named things like TX and RX, but it also knows that it’s a 28-pin TSSOP package. After I finish my beautiful schematic, I can go straight to the board, and start laying out the chips.

In contrast, KiCad divorces a part’s logical description from its physical one. When I choose FT232RL from the library, it knows it has TX and RX pins, but when I finish the schematic I have to go through a footprint-assignment step before I can start laying out the pcb. I get a window that says FT232RL on one side, and a giant scrolling list of 418 possible footprints on the right side. Sorry, but that stinks. I use parts from a library so that I don’t have to go sifting through a million data sheets for that kind of info. And if I spend three weeks building a huge schematic for my electronics masterpiece, when I get to the footprint assignment step, am I really going to remember whether JP45 was supposed to be a Molex or a DIN connector? Separating logic from footprint probably makes sense in an abstract sense, but in practice, the workflow stinks.

The rest of KiCad was mostly great, but marred by several little annoyances. I found that the screen would predictably get “droppies” whenever I edited a wire in the schematic view, or updated the rat’s nest in pcb view, so I was constantly pressing F3 to refresh the window.

The quality of the few parts and footprints I examined seemed poorer than Eagle’s. The USB-B footprint did not indicate the correct edge. The FT232RL schematic did not have hidden power pins marked as hidden correctly. When choosing footprints from the giant list of 418, many of them were acronyms for something in French.

Moving or rotating a component on the schematic view broke the wires connected to it, instead of moving or rotating the connections with it.

The rat’s nest in the pcb tool seemed to have a few drawing problems. Only the rat’s nest wires for components nearby the one being moved were drawn, instead of all of them. Where there was a choice about what other parts and pins to draw lines to, KiCad’s rat’s nest renderer seemed to make poorer choices than Eagle’s, resulting in a more confusing depiction of the nets.

The board outline was not added automatically. It took some investigation to find and view the PCB Edges layer, and draw a rectangle shape into it to indicate the board. I couldn’t figure out how to add mounting holes at the corners of the board, as I did with Eagle.

The KiCad auto-router didn’t appear to work reliably. When invoked, it routed just one net, leaving the rest as air wires. I tried routing a few more nets myself and then auto-routing the rest, but I was never able to make it do anything at all after that first net.

The software seemed to become confused when I crossed two ground routes without actually making a node to join them explicitly. It permitted me to cross them without complaint, which it wouldn’t otherwise do for unrelated routes. But it behaved as if the two routes were unconnected, telling me that some pins still needed connections to ground when in fact they already were connected.

The KiCad design rule check seemed a bit awkward. All the DRC violations were highlighted at once in the pcb view window. When I clicked on a single violation in the list to highlight the corresponding item in the pcb view, it popped up a disambiguation window instead. I think this was because it was trying to reference a specific x,y position in the view, which was overlapped by several elements. The DRC also flagged the entire SSOP28 footprint as a violation, complaining that every pad was too close to its neighbors.

Final Cut

Despite these many little problems, KiCad is quite a polished and powerful product. For someone who’s built a few circuit boards before, has their own component library, and generally knows more-or-less what they’re doing, the little annoyances should be easy to work around. The lack of layer or size restrictions and ability to add new features are big pluses. Complete beginners will probably get thrown off by some of the software’s quirks, however, and may only want to consider KiCad if the layer and size limits of Eagle’s free version are an issue.

43 Comments so far

davidp May 4th, 2010
5:03 am

Apart from freeware (0$) with all the limitations, commercial light ($49), commercial standard (hundreds of $), and commercial professional (thousands of $), Eagle also has a single user non-profit license functionally equivalent to standard for $125. Board size is doubled to 160×100 (euro size). Check out http://www.cadsoftusa.com/nonprofit.htm.

The conclusion is maybe the same… kicad still has a revision or 2 to go, but it’ll be fantastic when it gets there!

Peter May 21st, 2010
4:13 am

> The DRC also flagged the entire SSOP28 footprint as a violation, complaining that every pad was too close to its neighbors.

If it complains, then it probably is your settings that make it a violation. You indicate where the pads are and how much spacing you want between traces. If the pads are closer than that, your spacing spec is wrong or it wouldn’t work anyway. Maybe you just need to understand how a computer thinks – ie, literally?

I’m a Linux user, so open-source does matter to me. I’ve tried Eagle, but I always end up doing stuff in KiCad. It has its drawbacks, like parts and footprints, and the F3 button. But I can live with that.

Best thing with KiCad is the 3D view!!

oecherexpat August 16th, 2010
3:16 pm

I have been using Eagle for years (beside other high-priced professional packages) and swichted for the last 2 projects to Kicad, mainly because of the imense capabilities for an open-source package.
And, yes, there are a few things you have to do by workarounds. First of all, I would suggest to change library parts to your needs. It might sound like a lot of work but after you did a few, you can used them as templates. And there aren’t that many footprints.
Next, if you enter the footprint in the schematic symbol it will be automatically assigned. Yes you have to go via CVpcb but it is only a few clicks.
Hope I could help

manspecs August 31st, 2010
8:18 pm

I’m an Eagle user until I found KiCAD in 2004. I use a SolidWorks to draw the 3D parts & used my own 3D library. Spend sometimes to understand KiCAD, how it works and it’s a WYSIWYG, since you can view all components & board in 3D.

Use SolidWorks to create your own part, converted to Wing3D object, share it with the rest. If you don’t like to contribute/share anything, then Eagle is a good choice, because paid users are paying for all the library.

WildZBill October 30th, 2010
11:13 am

If part manufacturers are smart, they will pay for people to create their parts in the library. If users of this program find a nicely built library part, they will use that part in preference to the parts that have problems.

Kicad is a Free (as in speech) Software. This means that, having freedom on its source code, you have the opportunity to help improving it. This simple fact make Kicad superior to any closed source PCB design software.

eda_ia February 23rd, 2011
10:08 am

As far as the footprint libraries go there is I think there is already a push to generate footprints for all the different cad tools. Both national semi, and microchip are using something called ultra-librarian to generate footprints.

Andy March 29th, 2011
10:30 pm

You say, “The quality of the few parts and footprints I examined seemed poorer than Eagle’s. The USB-B footprint did not indicate the correct edge. The FT232RL schematic did not have hidden power pins marked as hidden correctly. When choosing footprints from the giant list of 418, many of them were acronyms for something in French.”

This is why you shouldn’t rely on random libraries that are not vetted. Footprints need to be checked against design rules and how the boards are to be built (by hand, reflow, whatever). Usually a company-wide library is created, and it contains only the parts that the company actually uses and buys. Many companies will add a standard part number for each symbol, which greatly simplifies bill-of-materials generation, and the schematic symbol calls out the proper footprint.

Keith April 1st, 2011
7:55 am

I’ve just started using KiCad. Not used Eagle at all.
I’d like to add that KiCad is great but I have not figured out any auto routing (is there any?).
Having previously used just a pcb drawing package before I really like the way this is linked to the schematic and both schematic and pcb jump to the component when it is click in the other view, very handy but a big screen is now on the shopping list.
One annoying fault is that an unconnected track can not be reconnected to a pad so I find I have to tear up all the track and start again from the pad.

j April 2nd, 2011
12:50 pm

Keith, yes there is, you need to push the autoroute mode on ( small button at the end of the “button” toolbar with red and green wires crossing each other ) and then you right click somewhere on the board and select autoroute and autoroute all modules (for example).

Unconnected track can be reconnected to a pad, just go to the end of the track and press the left mouse key (if you have the track tool on ) or place the mouse on the end of the track and press X for track tool. You need to be on the same layer as the track you are trying to continue. The “annoying” thing is that the air wire always goes from pad to pad even if there’s part of the track laid, until you continue the track, after which it shows the air wire from the track to the pad.

In my opinion kicad wins easily, not that eagle is bad. The footprint selection is one of the best things in kicad. It’s the way cadsoft should’ve done it with eagle. Dealing with components in eagle is a pain in the ass, because you need to have a copy of the same footprint with each component using it. With kicad, you can use the same footprint file for all the components using it (many ICs have DIP and SMD options and different manufacturers have different packages for the same chips, so you don’t need to copy footprints, if they happen to be missing from that particular part in the library with eagle). You can define footprints for components (when they are created) in which case kicad can automatically assign a footprint for a part (click the “automatic footprint association”-button in CvPCB.

Also making new components (from ground up or by copying partly) is a lot easier in kicad.

Doug May 10th, 2011
11:27 am

There are good reasons to have the footprint divorced from the part. Different uses may call for different footprints for the same part. I lay out boards for the oil and gas industry. High temperature boards for downhole use have unique pad requirements. To deal with the shock and vibration these boards undergo, pads are made wider than the chip manufacture suggests. Also high temp soldering can only be done by hand. To facilitate this, pads are generally made longer. Parts designed into a board for above ground use generally use standard footprints.I have separate footprint libraries for above and below ground use.

From a purely esthetic standpoint I often dislike the choices made by footprint designers, especially on the slikscreen layer. I also don’t like my boards to exhibit inconsistent styles. I create 95% of my parts from scratch. Libraries provided with the layout are of little interest to me and would not enter into my thinking when choosing Cad system.

Efudd June 2nd, 2011
11:44 am

The latest rev of Eagle lets you associate as many footprints to a part as you please, so the so-called divorce advantage disappears. I always hated the OrCAD-type part/footprint split, as it’s another step between schematic and layout that’s ripe for fvckups. Tight coupling makes for slower schematics at first but less trouble IMO in layout.

But both opensource products pretty much blqw compared to PADS with all the extras. Still, if you’re short $10K, I suppose they are just okay.

bb July 7th, 2011
7:23 am

The built-in auto-router in kicad is better than you suggest. You need to set the grid to a smaller value. I believe it restricts track vertices to the grid or something like that. Try again with a much smaller grid setting.

sam July 10th, 2011
5:41 pm

i’ve spent tons of time evaluating varios products including Eagle, DipTrace, etc. once i came accross KiCad the search was over and that is what i use.

to anyone complaining about ANY software – get to know it, read documentation and practice a bit.

the only complaint i see here (including comments and article itself) about KiCad is separation of footprint and device. personally i like it, since one part can be found in different packages. Article mentions “400+ footprints to choose from”. All I can say is read the manuals, there is filter that you can use to specify which footprints apply (either listing exact names or using jokers/wildchars like ‘*’ and ‘?’). Next time you need to assign footprint for that part, click on “Display filtered list of footprints” in CvPCB. Problem solved. besides, before becomming familiar with feature of KiCAD i also used to select footprints from entire list and this step was still a breeze, despite project size (something only full edition of Eagle could even touch). in fact the same negative points were awarded to Eagle for awkward selection of parts due association of parts and footprints. are we spoiled a bit or what?

The integrated router in KiCad could be better and I never use it. for example it always routes only with default trace settings, regardless what was configured in Design Rules (for example power traces are normally set to be wider). But the external router (requires Java) as well as manual routing are great.

As previous post states, PADS is superior product, thanks to key features allowing time saving (“reuse” for example when cloning layout patterns etc.).

To “connect” with my hobbyist friends, I looked around, found Eagle in wide use, did a few boards with it.

Then someone persuaded me to try KiCad.

I find Eagle and KiCad pretty close, on balance, EXCEPT…

Why go to the not-insignificant trouble of learning Eagle, becoming fluent, if to go beyond small boards… quite small boards… it is going to cost me money? I applaud CadSoft for giving hobbyists a chance to give Eagle a serious trial… but at the end of the day, if you are going to do something significant, you are either going to be paying… or RE-LEARNING a NEW tool (KiCad), if you decide you’d rather do that work that spend the money on the commercial alternative.

The same arguement… start as you mean to go on… applies if you are on the cusp of moving from Windows to Linux, as many people are.

If none is linked here, KiCad has no way to determine what footprints it should display.
And if there is only one (like a library customized to a company should have) this is auto-selected CvPCB will auto-select this footprint.

Read the documentation. Build your own library.

(I haven’t tested Eagle yet, but several other free ones, I still prefer KiCAD)

I’ve used both Eagle (a little), a big (>$500) professional package (for years), and KiCad.

I’ve settled on KiCad for the foreseeable future.

While I admire all that Eagle has done for the hobbyist with their generous terms, mastering a PCB CAD package is not a trivial exercise. I do not want to go down the Eagle road until the day comes that I want to do more than a small board, or I want to sell my board, and then face starting again or paying significant (justified… but significant) license fees.

Like many others I tried Eagle first because this is what was suggested to me (it is advertised and offered by online parts stores like Newark etc). It is powerful product but there was two things that bothered me:
– learning curve (ok, maybe it’s me)
– limitations of free version

I needed larger boards, more parts, more layers so before buying larger version of Eagle I did some research to explore alternatives. After going through dozens of programs (various licenses) I finally came across KiCad. In one day I had learned how to use it and made my first board – at my work (PCB design is not very common at that place so investing in something big was out of question).
So far I did many projects, most board are large and packed with components.
I like that it is open source, actively updated, rock stable, I can make my own parts and show them off in 3D etc. It’s been a while since I decided to only use my own parts and symbols (I love making them). KiCad library is ok to start but I wanted more compact my own symbols, parts that are named my way, each with symbol, footprint, 3D model and footprint filter (this is what bothered author of this article, he just never got to use footprint filters). This way using CvPCB is a snap and error free, I don’t need to scroll through long list of footprints, I just highlight first part in list and press and hold enter till entire parts list has assigned footprints. Can’t be much easier than this. All you need to do is assign footprint to component you are making.
KiCad may not be perfect but it does job admirably well and it never let me down. PCB shops never had any question or issues with files or designs.
Biult in router is not very smart but if you prefer using autorouter, KiCad lets you use VERY good web router.

Normally I’m persuaded in favor of open source. But many a hobbyist in the Maker Movement seened to like Eagle better. So at first I was going to go with the flow. I DL’d Eagle and played with it some, growing very encouraged for all the personal stuff I could build. But then I started getting ideas for this or that item I might make for work. I checked out Eagle’s price list for professional use and quickly decided my chances of successfully makeing a $1600 argument with my boss were regretabbly poor, considering how seldom I would make PCBs for little gagets around the lab (even though we are an aerospace firm).

And then I thought of the things which just perhaps I might one day like to sell. And making the big-$$ argument with my own wallet was definately a no-go. So now I have set Eagle aside and am starting over with KiCAD. Sure enough, it has a few quirks. But for big-$$ which shall remain in my own wallet this is very small sacrifice.

If you need to make big things on a small budget, then Eagle isn’t the answer. If your only issue is the non-commercial restriction, though, you can purchase a $49 license for Eagle Light. That turns the free version into a commercial version that’s OK to use for things you sell, but still has the same board size and layer limits as the free version of Eagle.

Oli December 28th, 2011
7:54 pm

I’m just “migrating” from Eagle to Kicad. So far, I have made a few small projects in Kicad to learn it.

What is IMO a huge advantage of Kicad is the simpler creation of footprints and symbols. I always sucked at this when trying to do it in Eagle, but it really worked fine for me in Kicad.

Personally I *do* like the separation of footprint and symbol. I find it simpler to change certain parts in a list rather than in the schematic.

Another advantage of Kicad is the plain-text file format, making it easy to use with things like SVN/git/…

RZ March 9th, 2012
2:46 pm

I really like Eagle’s command line interface in the PCB editor. I would like to prefer KiCad, but it’s lacking two key functions:

1. The ability to add a via manually.
2. The ability to change the layer of a trace.

I suppose I can work around #1 by creating a via component, but then I’d have to add it to a dummy portion of the schematic in order to maintain schematic to PCB consistency. BTW, multiple ground vias are vital on RF boards to provide better grounding and isolation. I’d be adding dozens to prevent coupling between traces.

The work around for #2 is to delete the trace and reroute.

But perhaps I have to dig more into KiCad and get involved with forums. One day, manual vias might be added to the package.

FreePCB has the best pad editor of any PCB software I have tried. That includes Altium. Eagle, and ExpressPCB. Among others. You do have to learn how to use it. It is not as obvious as Express PCB. OTOH it is not as opaque as Altium.

Habanero May 16th, 2012
10:38 am

For the auto footprint assignmenet, when you create a library, add the footprint name in the “module” field.
I’ve been using that for a couple years now, works awesome. You can also restrict libraries for a certain component to footprint using a specific format of name using wildcards (I use RF_* for reflow components). The menu to do that is “properties”-> “footprint filter” in the library editor.

Kicad also has a huuuuuuge plus: the file formats. having everything in ascii is AWESOME, you can create parts with a single copy/paste. Once you learn how the component fields in the ascii file works, you can create components in seconds, litteraly.
Plus, it works that much better with VCS softwares for collaborative work.

As for vias, you have to add a ground trace, then it works. If you’re using ground planes, it shouldn’t matter. as for changing the layer of a trace.

The KiCAD team is movng fast lately, I’d suggest you use the snapshots listed on the wiki as they are very stable (even if some newly added functions may be buggy) and you get a lot of new features everytime.

The “divorcing” between the schematic symbols and footprints is just like the standard Orcad used for years. Eagles linking is nice, but ultimately if you want to change a footprint, it’s kind of a pain because you have to go swap out the schematic symbol as well. This is the logic behind this.

Geert Vancompernolle April 21st, 2014
5:18 am

“I get a window that says FT232RL on one side, and a giant scrolling list of 418 possible footprints on the right side. Sorry, but that stinks.”

You’re right about this. Well…. Partly…. When you look into the library files (for instance, device.lib), then you will see that there’s something like $FPLIST … $ENDFPLIST for some components. That narrows down the possible footprints for that particular item.

In the above mentioned file, take the LED component as an example. This is mentioned in the section for the LED (among other things, of course):

That means, when you’re at the CvPcb section and you have a LED in your schematics, it will only show the above mentioned ones, not the 400+ ones as you mention.

But I believe it’s based on the one creating the .lib file, if the footprint selection will be “narrow” or “wide”…

Daniel Goertzen August 27th, 2014
6:37 am

It has been several years since this comparison was written. Have any of the complaints against KiCad been resolved?

Mark G June 20th, 2016
2:33 am

Tried both. Then found Diptrace, which I find a lot better value.

Hugh J February 10th, 2017
4:52 am

I tried both and diptrace. Diptrace sucks, Eagle is so-so, now they move to subscription model it’s even less of a reason to use it. Kicad was surprisingly good and I even preferred the UI in the end after swearing a lot until I learned some of the keyboard shortcuts.

Leave a reply. Comments may not be monitored regularly. For product support questions, visit the Contact page.

name

email (
will not be shown )

website

Notify me of followup comments via e-mail. You can also subscribe without commenting.