BMOW title
Floppy Emu banner

Eagle vs. KiCad Revisited

kicad-vs-eagle-revisited

Four and a half years ago, I wrote a mini-review of Eagle vs. KiCad, two of the most popular software tools for hobbyists creating custom circuit boards. I concluded that while KiCad had lots of promise, it was too full of quirks and bugs to recommend, and Eagle was the better choice for most people.

This week I had an opportunity to try KiCad again. Although nothing had fundamentally changed, I found that my overall impression of the program was much more favorable. KiCad still has lots of annoying issues, but frankly so does Eagle. And with 4 1/2 years more design experience, I can now appreciate how some of what I originally saw as flaws in KiCad were actually just different design decisions, whose value I can now appreciate.

 
The Software

If you’re not familiar with either of these tools, Eagle is a commercial program created by the German company CadSoft, and according to Wikipedia it’s been in continuous development since 1988. There are several versions of Eagle, but the majority of hobbyists use Eagle Light. This version is free (as in beer), but is limited to a maximum board area of 100 x 80 mm, and may only be used for non-commercial purposes. There’s also a separate non-profit license available, and an inexpensive commercial light license. Eagle is presently the “standard” for open source hardware and hobby projects found on the web, although this is changing.

KiCad is a free program (as in freedom, and beer), developed by a team of volunteers, and more recently with help from CERN. Wikipedia says KiCad has been around since 1992, although I only first heard of it a few years ago. While Eagle is a single monolithic program, KiCad is a loose collection of several different cooperating programs for schematic editing, board layout, and other tasks.

This is not a debate over free software. The nice folks at CadSoft are great for offering the very capable Eagle Light for free, and I have nothing against people charging money for software, since that’s how I’ve employed myself most of my life. πŸ™‚ My interest is solely in which tool is better for the job.

I tested KiCad build 2014-10-27 and Eagle 6.3.0, both running on Windows 7. This is an older version of Eagle, which isn’t quite fair, but the test was more about how KiCad has changed since I last looked at it.

So which tool is better for hobbyists? I’m going to score them roughly even, but each has its strengths. Most open source hardware projects come with Eagle design files, so if you’re extending an existing project the choice may already be made for you. Eagle is also more scriptable, and may have an easier transition path to professional-level EDA software. But KiCad’s user interface is more intuitive, its board layout tool has some nice extra features, and it can create boards of any size. If forced to pick a favorite, I would say KiCad just edges ahead for the win.

 
KiCad Gripes

In my original review, my biggest complaint with KiCad was the way footprint selection was divorced from component selection. In Eagle you can place a 555 timer in your schematic, switch to the board view, and place it. In KiCad, you can place a 555 timer in your schematic, then you need to run another tool to select which footprint to associate with it. Only then can you place the chip on the board and route its connections. To a beginner this is a turn-off, feeling confusing and cumbersome. But once you’ve been around the block a few times, you’ll appreciate the flexibility this approach offers. This is one feature that grew on me after a while.

The earlier review complained about graphical “droppies” on the screen, and unfortunately this hasn’t gotten better. In the layout tool especially, virtually every time you do anything, you’ll be left with half-redrawn garbage on the screen, broken lines, or other visual artifacts. But as annoying as this problem is, I found I quickly developed the habit to refresh the view or change the zoom level after every operation, restoring the screen to normal.

Other problems from my original review seemed at least partially fixed: flawed footprints (didn’t notice any this time), random pieces of text in French or German (still happens), rat’s nest wire drawing problems (seems OK now).

KiCad doesn’t automatically add a board outline. This confused me before, and it confused me again this time. It’s just a minor gripe, though. By making me draw my own board outline, it may even force me to think harder about exactly what shape the board should be, or defer the board outline decisions until the main components have already been placed.

Creating new libraries of schematic symbols and footprints was pretty challenging to understand the first time, and I had to search out web tutorials. The process is just as bad with Eagle, though. Once I had my new library created in KiCad, the process of copying, modifying, and creating new symbols and footprints felt substantially easier than with Eagle.

Modifying tracks that have already been placed still seems cumbersome with KiCad. Once a board gets crowded, you often need to introduce extra little bends and angles in already-placed tracks, in order to make room for new tracks. KiCad can do this, but it seemed like 90% of the time it complained about “two collinear segments”, or just moved sections of track in a way other than what I wanted. I found I had to resort to deleting the track and routing it over again more often than I’d like.

One spot where KiCad still lags is the integration between its various sub-tools. With Eagle, changes made in the schematic are automatically reflected in the board layout, and vice versa. With KiCad you have to export a netlist file from the schematic editor, and import it to the board layout editor, every time you make a change.

 
KiCad Likes

The more I used it, the more I appreciated KiCad’s “Google Maps” board layout view, where high zoom levels show each track and pin labeled with a signal name like a street map. Very handy.

In the last review I complained about problems with the design rule checker, the tool that verifies clearance between tracks and neighboring tracks, pads, and vias. This time I had no trouble with the design rules, because they’re automatically enforced as you route the tracks. If a particular track placement would violate a design rule, it just won’t let you put the track there. If routing worked this way before, I don’t remember it. It’s a very nice feature.

I also griped about the autorouter last time. Since then, KiCad has added integration with FreeRouting, an external Java-based autorouter. There seems to be some legal dispute surrounding FreeRouting, and the web-based version of the tool that KiCad links to no longer exists. However, I was able to download a precompiled Window executable of FreeRouting, which worked fine with the file I exported from KiCad. It successfully routed what I thought was a difficult section of board in only a few seconds, and the result was easy to import back into KiCad. The result did have a few crazy tracks that spanned half the board, but if I’d been doing that part myself manually, I probably would have given up before I ever finished it.

 
Final Cut

The reality is that KiCad, Eagle, or any other circuit layout tool has a fairly steep learning curve, and you’ll have to invest many hours of time learning to use it effectively. With the current version of KiCad, I believe it’s worth that investment of time. Those who are already happy with Eagle will probably find little compelling reason to switch, but for new hobbyist engineers, KiCad certainly deserves a close look.

Read 17 comments and join the conversation 

17 Comments so far

  1. M Belanger - December 11th, 2014 5:02 am

    Hi,

    I would like to add to your comments in the last part of Gripes, that modifying tracks is easier than what you describe. Kicad has a new feature developed by CERN called Push & Shove that you can visualized here. https://www.youtube.com/watch?v=zxHDAHpR5Ls. Basically you can move track around to make room for new tracks. Or tracks can be pushed away as you lay-out new tracks. Very efficient tool.

    New very good features will be release soon as matched pair routing and high speed differential matched length routing. But to be fair in your evaluation you need to consider only what is available up to now.

    Regards.

  2. Steve Chamberlin - December 11th, 2014 7:37 am

    The P&S routing looks nice. Is that in the current KiCad build? I didn’t notice it – how do you activate it?

    I discovered another KiCad gripe yesterday, or maybe just a point of confusion. I’m not convinced KiCad handles slots correctly when generating Gerbers. I made a board with a DC barrel jack, whose footprint has three slots for the metal blades on the bottom of the jack. When I looked at the resulting Gerbers in my stand-alone version of gerbv, the slots appeared as tiny drill holes at one end of the slot. An online Gerber viewing tool showed the same thing. But the version of gerbv that’s bundled with KiCad showed slots correctly. Check out this Arduino Yun PowerStack 0.1 board – it has the problem I’m describing. https://oshpark.com/profiles/sirkha

    I ended up changing the footprint to use regular drill holes instead of slots. But I would like to understand if the slots would have worked.

  3. Jan - December 18th, 2014 7:20 am

    Here is a tutorial on the push & shove routing. You need a fairly recent build of Kicad, though. A minor gripe is the need to switch between normal and OpenGL canvas – P&S works only in OpenGL, some other things work only in normal mode πŸ™

    https://www.youtube.com/watch?v=fdfz_c5Mbrc

  4. arhi - December 18th, 2014 7:51 am

    I moved almost all my projects to kicad (few are still on Altium and Proteus but all new ones are on KiCAD and most old ones are moved to KiCAD).. I still hate the footprint selection and I still hate that you can’t go around it.. I still hate the lack of connectivity between pcb and sch, cross select is something I have a serious problem working without πŸ™ …

    Anyhow, wrt your txt it seems you went with the latest “download a build” and that lacks some serious umpf comparing to latest sources. download https://launchpad.net/kicad-winbuilder and build yourself latest kicad (make.bat will download what is needed, compile etc .. then runKicad.bat will start you a freshly built kicad πŸ˜€ ). Routing is waaaaaaaaaaaaaaaaay more improved then in “download a build”, unfortunately still not as good as in Altium but it’s very usable compared to “download a build” version of KiCAD πŸ™‚

    Current KiCAD version is 2014-12-16 BZR 5324

  5. Steve Chamberlin - December 18th, 2014 7:58 am

    I used KiCAD version 2014-10-27, so unless push and shove routing was added in the past six weeks, I don’t think that should make a difference. I suspect Jan is right, and I didn’t see P&S because I wasn’t using the Open GL canvas. I’ll look again next time I do another board.

  6. M Belanger - December 18th, 2014 8:00 am

    @arhi. If you go to this page (http://www.ohwr.org/projects/cern-kicad/wiki/WorkPackages), you will see that your wish list is already planned to be developed by CERN with some already been developed! CERN over the past year have been active adding new interesting and fundamentals capabilities.

  7. arhi - December 18th, 2014 8:29 am

    @steve, it is added before that but you have to build yourself, the “official binary” don’t have any of the goodies

    @belanger, I know, I follow CERN todo carefully, that’s the only reason I decided to move to KiCAD, pre-cern it was unusable software for me with no interesting future :), with cern it’s project with future

  8. Juan - February 25th, 2015 8:03 pm

    I propose to do an advanced and extensive review Kicad after few months, to see how this project progress.

    I hope It will surpass Eagle and get nice stuff from big EDAs too, specially in the layout editor and component library management.

    A RTEC feature would be amazing, with a approval needed one for environments such as schools and big teams. It can be a killer ap if done properlr!

  9. Juan - March 24th, 2015 2:41 pm

    Hekko.

    Any news? Would you like to review KiCad again? I propose KiCad vs Eagle & gEDA & DipTrace & Pulsonix & Cadstar & Allegro & Altium. It would take ages to finish and some may think to be an overkill, but KiCad needs to get the best from the leaders imsteam the bottom line.

  10. Jose - May 12th, 2015 2:47 pm

    KiCad is progressing nicely! Any news? Maybe you’ll like it more!

  11. Justin - August 13th, 2015 3:39 pm

    I just finished my first PCB Layout project that did not involve following a tutorial. I followed sparkfun.com’s eagle tutorials in the past. This time I used KiCad and had no tutorial. I am a RHCE and Linux system admin so I like the idea of FLOSS and will normally give it the benefit of the doubt and forgive many things. Despite that KiCad really felt like I was pulling teeth.

    Gripe 1: My project was a buck converter so it had a lot of copper fills and via’s to connect top and bottom layer ground planes. Those via’s would lose their net association if I would breath on the screen wrong and would all need to be deleted and re created.

    Gripe 2: As you mentioned reshaping traces or copper fills was next to impossible. I knew how to grab segments but nothing moved how I wanted it to. In almost 100% of the cases I had to delete the fill or the trace and do it over. This became extremely tedious considering all the copper fills I had. I spent way way too much time on fighting with the router rather than the logical layout.

    Gripe 3: I like the CERN router a lot better than the default router but it would crash anytime I ran trace/via cleanup on the latest build for OSX. I had to go back to the default router first. I found myself needing to switch back and forth quite a bit. This resulted in green bottom layer traces showing up on the top layer. The board was correct but the view/hide selections where wonky.

    Gripe 4: In additional to the artifacts left in the working area I had chrome issues where the actual KiCad GUI was blanking out until I moved it around. Especially the area over the F.Cu and B.Cu selections.

    For what its worth though even as a absolute beginner the ability to separate the logical (schematic drawings) from the physical (footprints) seemed like a big benefit of KiCad to me. Maybe its because of my background in IT and design patterns but this did not seem confusing to me as a beginner. Since I had to create a schematic drawing for my buck converter IC and the part came in 3 packages it immediately made sense to be able to have a single schematic symbol and 3 separate footprints. At least where the pin outs match between packages.

    Just a absolute beginners view. I think I will be doing my next project in Eagle again. But I will be watching the CERN contributions.

  12. Joselin - September 20th, 2015 4:18 pm

    What about KiCad 4.0 RC 1? πŸ˜‰

  13. Claudio - November 29th, 2015 10:33 pm

    Kicad=pile of shit.

  14. John - February 24th, 2016 1:55 pm

    Claudio.

    I love your arguments πŸ˜€

    Any news about the newest version? They are improving it πŸ™‚

  15. Juan - June 15th, 2016 8:39 pm

    Any new review? πŸ™‚

  16. Selina - October 17th, 2016 12:40 am

    Hi,

    Each has its strengths and weaknesses. Please also take a look at https://easyeda.com/.
    EasyEDA is much easier to learn than Eagle CAD,Kicad is probably the tool of choice for real work, but EasyEDA can be a quick (and inexpensive)path to descent boards.

    EasyEDA is a cloud-based EDA tool suite which supports open source and working collaboratively.
    Tools from EasyEDA include circuit simulation using Spice, PCB design, electronic circuit design and now RS-274X (Gerber) and Excellon gerber viewer, all are free.

    Review:
    i) it’s web based so, with nothing except a bit of javascript to install, it can be used by Linux, Mac and Windows users and – if they have a big enough screen – Android and iOS users too;

    γ€€γ€€ii) work can be shared and – with a bit of agreement on who saves what, when via a 3rd party instant messaging service – it supports collaboration;

    γ€€γ€€iii) it has some pretty impressive import and export options such as importing Altium, Eagle and LTspice files and exporting spice netlists and svg, png and pdf files for documentation. It also uses open standard JSON format files internally so it’s easy to do some quite whizzy things just using a text editor;

    γ€€γ€€iv) all use of the tool is free even to the point where the user can download PCB Gerbers and send them off to any PCB supplier;

    γ€€γ€€v) it also offers a low cost PCB service: PCBs can be ordered directly from within the tool (this seems to be the way the money is made to keep the whole thing afloat);

    γ€€γ€€vi) it can even be used without registering with files being saved in an Anonymous mode that works a bit like pastebin where files can be retrieved and shared just by their urls.

    γ€€γ€€it’s easy to drive .There are lots of examples on the site and a useful tutorial.
    https://easyeda.com/Doc/Tutorial/

  17. Bill - January 30th, 2017 3:42 am

    Kicad versuin 4.0.5 Jan 2017.
    Kicad is still a pile of dung.
    In schematic a component STILL can not be moved with the wires SENSIBLY following it.
    That is, horizontally and vertically. This should have been in the very first in-house version.
    Instead the wires follow the pins in an angle. Then suffering starts to correct the wires.
    Well, it is a \\\’sufferware\\\’.
    And the MOST un-intuitive user interface.

Leave a reply. For customer support issues, please use the Customer Support link instead of writing comments.