It’s Time to Finally Figure Out How to Use KiCAD

KiCAD has been making leaps and bounds recently, especially since CERN is using it almost exclusively. However, while many things are the same, just enough of them are different from our regular CAD packages that it’s hard to get started in the new suite.

[Chris Gammell] runs Contextual Electronics, an online apprenticeship program which goes from concept to assembled electronics covering everything in between. To take the course you pay a nominal fee, but [Chris] posted a very excellent ten-part video series made during the last run of classes which you can watch without charge. The videos go through the basics of KiCAD while hitting the major points to consider when designing and manufacturing your electronics.

The project [Chris] chose is a simple circuit that blinks an LED with a 555. The first videos cover navigating KiCAD’s component schematic editor and library system. Next comes creating circuit schematics and component footprint creation. [Chris] covers PCB layout, the generation of Gerber files, and finally ordering the design from OSH Park — the purveyors of purple boards we’ve come to know and love. The series finishes up with simulating the circuit in LTSpice, ordering the parts, and finally soldering and debugging of the board. If all goes correctly you should now have a single blinking LED.

If the bright summer sun is burning your delicate skin, and you’d rather be locked inside with solder fumes, add this to your watch list now!

[Via Hacker News]

71 thoughts on “It’s Time to Finally Figure Out How to Use KiCAD

        1. True, even in chrome it will serve you up the m.youtube.com page and if you manually change it then it redirects back. If I had a need myself I’d find the work around for you but this time I’ll leave it up to you to work out how to spoof the user-agent to get the non-mobile version of the page.

        1. Ah good work! I doubt they hide it, it is just that it would have a very low priority compared with all the other UI pieces so it ends up at the bottom of a longer sequence of interactions. Google would profile how people use the application like that to guide the UI design.

  1. KiCad kicks ass. Version 4 even moreso than version 3. Okay, I’ve got a weird perspective because I’ve never used anything else, but it’s also done everthing I’ve ever needed. Learned the basics from Chris’ video series, couldn’t recommend it enough.

    1. I tried using Kicad back in version 3 and absolutely hated it. Tried it again in version 4 and decided to move over to it. I honestly don’t know why the two versions feel so different – there’s not a huge amount of difference between them. V3 just had all these little annoyances that added up to a terrible user experience and the rough corners have just passed the point of being sanded down enough in V4 to be a fairly nice program.

  2. I quite like KiCad. It has some quirks, but isn’t hard to use. In fact I just sent off my first ever Gerbers to have a PCB made, done with KiCad. It seems intimidating at first but is actually pretty easy to get the hang of. I had tried Eagle in the past but I found KiCad easier to get the hang of.

  3. KiCad is an acceptable platform for hobbyists.

    It’s also nice for entry level professionals looking to get familiar with an ultra simple layout package before moving onto something actually useful in a professional setting.

    Can’t speak for the Contextual stuff yet.

    1. I think all the people having a hard time getting used to KiCad after years of using the free version of Eagle shows pretty well why the idea of separate hobbyist leve vs professional software is a really shitty idea that just needs to die.

      Nobody is going to start out on the $2000+ package that such and such engineering shop uses. We all start out as either hobbyists or students so we use something that we can afford. Wouldn’t it be so much better if everything we learned that way directly applied in the workplace? People just don’t like change and getting the hang of your second platform is often harder or at least less pleasant than the first. You aren’t just learning, you actually have to un-learn stuff!

      Since there is no way we are all going to be able to run out and buy Altium or even the un-crippled version of Eagle how about instead we all just support KiCad until we don’t need the big expensive packages anymore? I’m not ready yet but once I have learned using it well I hope to be able to contribute some code myself!

  4. KiCad’s biggest weakness is the author’s refusal to use anything besides wxWidgets which as never intended to be used as it has been and is completely unequipped to handle the task at hand. A lot of time and effort is being wasted on KiCad and it will require a fork before it becomes something everyone can use.

    1. Gravis, KiCad doesn’t have an author; it is a collaborative team effort. Some, of course, contribute a lot more than others. My understanding is the actual PCB rendering is done with opengl. wxWidgets is used for the frames/menus/dialogs.

  5. Recent experiences with kicad were crashes, lag, and issues with save files and this is all on a modern fairly high end machine
    Not even talking about how hard it is to use over other packages

    It has some work to be done to get me to use it over other packages

      1. I’ve tried most of them and settled on DesignSpark PCB. It’s free and has a reasonably good UI. Others:

        * Eagle: Inexplicably popular. Truly awful UI that makes zero sense. I think there’s a part limit too, but mainly don’t use it for the insane UI (just Google “Eagle copy paste”).
        * gEDA: Typical cobbled together open source stuff. Don’t waste your time.
        * Kicad: Not so cobbled together, but still has a totally unintuitive UI. The fact that there are tutorials about “finally” learning how to use this actually simple program shows how bad it is. Imagine if you saw an article “its time to finally learn how to use Notepad”. Who needs to learn how to use Notepad? PCB design isn’t actually complicated. I only realised that when I stopped trying to use Kicad.
        * Multisim blue: looks ok but I discounted it due to its 65 part limit. Good integration with mouser though so worth considering.
        * Fritzing: I’ve not actually tried it. Might be good.

        1. Tim – thank you for taking the time to answer my question. I hadn’t heard of DesignSparkPCB before but will check it out! Also, best line of your response was “I only realised that once I stopped trying to use Kicad”. LMAO!! 😀

      1. Try a QEMU based solution if you have enough flops on that ARM to make the attempt even remotely realistic. I think that some German guy did it a few years back so it is possible. However I can’t tell you if LTSPice will run on ReactOS on QEMU, anyway it is your problem so let us know how you go solving it. :-)

    1. That’s cool if all you want to do is schematic capture and simulation. The last I checked LTSpice had no support for PCB design. I know some people like to just enter their schematic twice, once on a tool for simulation and once on a tool for PCB design. I don’t really think that is a good workflow. Besides being extra work it is an opportunity to introduce error!

      1. “The series finishes up with simulating the circuit in LTSpice,…”

        Can you output a net-list from KiCAD for testing in LTSpice (or a FOSS equivalent)?

        Does that make more sense?

  6. I tried it once, but I kinda got stuck when i wanted to make a board. Maybe somebody can enlighten me on this.
    When you want to design the PCB, you have to pick the footprint for every single component. If I recall correctly, it doesn’t give you a selection box with the available footprints for that component, you have to fish around through every single footprint for every component ever made until you find the one that fits, and hope that you have chosen the right one.
    The footprint names are a strange alphabet soup that won’t make any sense unless you are staring directly at the datasheet for the part.
    I asked somebody about this and they said that they didn’t use any component libraries, they made their own components and footprints for every part that they used. That seems rather excessive and difficult to me. Am I missing something?

    1. Yeah, you’re missing something. Footprints are organized by category, and you can have also have it show only footprints with the same number of pins, same type of part, by keyword, etc. I like the way it is set up because I can put a generic part into a schematic (such as an LED) and then specify what footprint it should use for the PCB. And if I decide to use a different type, I just have to change the footprint association without having to modify the schematic or anything else.

      Also, footprints can be defined in bulk. For example, if you have 50 resistors on a board and they are all the same type (same size through-hole or SMD), then all of them can have the footprint assigned all at once.

      KiCad isn’t perfect, but considering its price it’s a surprisingly useful piece of software.

      1. Organized however you like. The primary method is via the part group/folder that contains the footprints. My personal parts are unorganized. But I know if I’m looking for a footprint I made, it will be there.

        Also, schematic symbols can have footprint filters which pull up those matching first.

    2. That is a nail on the head moment. I have just been through exactly that problem but it ceases to be a problem once you get a little bit fluent with it. It does seem strange that you have a library per project but it really is no problem. You can just copy them out of existing libraries and edit or not then save them into your project library.

      Over the last few months I have forced myself to use Kicad and move away from Geda (I think that was it), it was a seriously steep uphill battle but I stuck with it and have just had my first Kicad PCB back from Dirty Prototypes. All is good now and happy I forced the change on myself

      1. What was the primary motivation for the switch from gEDA to KiCAD? I mean, considering you had to force yourself, and it was hard, would you give your point of view comparison, “KiCAD vs. gEDA”?

    3. As a designer, I refuse to have the layout person free rein on choosing the package. A lot of the time I specify a package because of thermal and electrical properties. Layout persons do not necessarily have the EE training nor should have design authority for that. Every CAD packages I use for work recognize this for good reasons.

      Since KiCAD is dead set on this, I will not use it.

      1. It isn’t dead set on this, you can, as the designer, choose what packages to use, either at design time (by selecting ‘edit’ on a component and specifying a package) or when creating symbols (by restricting the package selection).

      2. if your layouter changes packages from what they are in the netlist with out consulting the designer you have other problems, what CAD package prevents you from doing that if you really insist?

      3. @tekkieneet,

        What are you talking about? Professionally, when I design something it comes with my schematic and my full BoM complete with manufacturer’s part numbers. I will meet with the person doing the layout to direct parts layout, signal busses and flow, power, and ground planes. I do listen and often agree with changes. But nobody has “free reign” over anything but me. If your work flow doesn’t follow this philosophy, you’re asking for trouble!

  7. I’ve tried to use Kicad quite a few times but each time I spend a few hours on it and give up in frustration. The library manager and editor seems next to useless

    1. I’ve had the same experience. Seems the base KiCAD comes with absolute bupkis in the way of useful parts, and trying to find/download anything on the official repo is, at best, an exercise in futility.

      Every time I’ve tried to use KiCAD, I’ve wound up back at EAGLE.

      1. I NEVER trust downloaded parts and footprints. It has bitten me a lot in the past (even when i was using eagle) and if I need a part with 100+ pins, i make it in a libreoffice calc sheet and be done with it. Strangely when making a footprint, the most tome is lost decyphering the weird drawings in the datasheet.

        1. I agree with the ‘decyphering the weird drawings’ part. Some manufacturers just have terrible drawings, hiding measurements into a weird corner of some other page, with font as small as sun-burnt ants.
          One does get a hang of it after making the first few dozen parts, but even then some drawings are just bad.
          Meanwhile manufacturers like TI, Wurth, STMicroelectronics, etc. have learnt how to please the designers.

          Oh! Don’t even get me started about the far east!

    1. OK, so what DO you use then for projects? Can you put values on the fractions? (In theory 95/100 is a fraction, but I got what you were trying to say). Thanks!

  8. Or just accept that developers aren’t interested in making it easy to use and download Designspark PCB instead.

    Trust me you won’t regret it. I always thought that designing PCBs was complicated but it turns out that GEDA and Kicad just suck.

  9. I use it on a daily basis and am switching from F9 to F11 and back while placing parts on a board a lot. I really like the push and shove placement of the OpenGL rendering, but also the semi translucent view of the legacy renderer. The only problem I have is the way the developers set the git repository as the default for parts and footprints. *that* is a major flaw. They seem not to comprehend a system where you always *copy* a part/footprint to your project in stead of linking directly.

  10. When someone compares it to Altium, I’ll listen. Until then, no dice. I used it in college, like eagle more, but once I found altium (on the job), it fit like a glove.

    1. Altium costs $7000 and takes up 8GB on your hard drive. KiCAD is free, there are no restrictions on PCB design, it runs fast, and it takes about 300MB on your drive. Oh, and it doesn’t require an internet connection to run.

      The thing about KiCAD is that it’s for people who don’t like or can’t afford the clusterfuck that Altium has become.

      1. I bought Altium for $4500, it took up 10GB. It does NOT require an internet connection. CircuitMaker is Altium’s free version which requires an internet connection.

        Neither have PCB restrictions and both are massively more capable than KiCAD.

        All three are clusterfucks with shitty interfaces.

        Just doing PCB layout for fun? Go with the free versions.

        Doing this for a job? They will likely already have an Altium license for you, so no worries.

        Want to start a business around a product and you’re not sure…. I recommend against it. Good luck.

      1. Thats a really bad way of thinking.
        Hardware guys say “we have to add more and more RAM, processing power and hard disk space to our products (PC) because software needs them”
        Software guys say “why should we make effort to make small and efficient programms, PCs have plenty of ressources”
        welcome to the vicious circle of bloatware…

  11. Video person here. Thanks to Gerrit for linking to me.

    For those saying, “I would never switch”, that’s fine actually. Asking someone to stop everything they’re doing with a CAD tool and start a brand new workflow is like asking someone to change religions. It just doesn’t happen.

    But! When you’re ready to try something new, give it a few hours and try it out. I have tried a lot of CAD packages over 10+ years of electronics and they ALL have quirks. I landed on KiCad because open source means I’m never dependent on a company to support me into the future. Also, I like open source. It was worth the tradeoff of quirkiness at the beginning and now it’s my main tool. Then you’ll end up gripping it tightly when someone tries to get you to change to the next CAD tool. Good luck!

    1. Chris – “Tim” recommended DesignSparkPCB. Do you have any experience or thoughts on it vs. KiCAD? I’m just starting into hobbyist PCB design for my own use and am exploring which free program to start learning to use. Thank you.

  12. …this KiCad tutorial is the 1st one I didn’t ditch within the 1st few minutes… so let’s see whether I can reach the happy end this time…

    No spoilers, please!

    …except if whispered into my ear by River Song!
    o;-)

  13. Played with KiCad more today.

    The libraries included are bare bones. Not sure if any of the footprints are IPC. Also have not yet figured out how to rotate a part, but not the text on the part.

    I don’t think I will be able to use a tool that allows you to pick and choose part footprints at will instead of having a part that includes an orderable part number and footprint. If you can’t order parts from a BOM, then you haven’t made a BOM.

    The PCB layout tool is much more difficult to work with…

    Importing the netlist stacks all of the components on top of each other. That would be fine for most click-n-drag tools, but KiCad almost seems to require the end user to select the part by name, through a dialog as the “Part Selection Clarification Menu” appears to do nothing when you select the part you want to move.

    I should be able to select a part, move it and rotate it before placing it. This should be a really easy thing to do in any PCB layout tool.

    I’m hoping KiCad will keep improving.

    Maybe automate some of the steps to make the different parts of the tool feel more integrated (why do I have to generate a netlist, then open it, before doing a layout, even though there is a layout button?)

    Would you really want to draw a schematic, and not have a netlist? Why not just make one automatically?

    1. > Importing the netlist stacks all of the components on top of each other. That would be fine for most click-n-drag tools, but KiCad almost seems to require the end user to select the part by name, through a dialog as the “Part Selection Clarification Menu” appears to do nothing when you select the part you want to move.

      In the “nightly release” of Kicad, importing netlist will put the parts in a nice grid for you. Also, there is now a shortcut to update the PCB from the schematic editor – just hit “F8” while in the schematic editor.

      > I should be able to select a part, move it and rotate it before placing it. This should be a really easy thing to do in any PCB layout tool.
      >Also have not yet figured out how to rotate a part, but not the text on the part.

      You can do this by pressing ‘m’ on an object to pick it up, ‘r’ to rotate it, and using the mouse to move it. To place it, click on the board. Unless I’m misunderstanding what you mean. You should be able to rorate text on the part (in both the schematic and pcb editor) in the same way.

      >Maybe automate some of the steps to make the different parts of the tool feel more integrated (why do I have to generate a netlist, then open it, before doing a layout, even though there is a layout button?)
      >Would you really want to draw a schematic, and not have a netlist? Why not just make one automatically?

      As I mentioned before, the F8 shortcut does that for you. I agree, in older versions of kicad this was silly for 99% of use cases.

      I think one of the issues is that there isn’t a nice guide showcasing the features that it has (or even updates, “hey we added this feature in”), or how you’re ‘supposed’ to use it. Chris Gammel’s tutorial is a good start on this however.

  14. For all the people who complain about KiCad. Compared Eagle, the KiCAD is much more effective if you know the keyboard shortcuts. It’s much faster at work than work with obsolete Eagle…

  15. Thanks to Gerrit and Chris for bringing KiCAD to my attention. I’m working through the videos and I think the program is fantastic. Chris’s videos are exceptional as they include descriptions of key-presses and small important details that many instructors leave out, which can make it hard to keep up. With Chris’s videos I can follow along just from the audio for much of the lesson.

    In response to the pricing discussion on this page, ECAD software doesn’t jump from $0 to $7000. A program such as Easy PC (which DesignSpark is a free version of) is only a few hundred dollars.

    I am deciding between KiCAD and DesignSpark. DesignSpark has the advantage that I could upgrade to Easy PC and not have to re-learn anything. Therefore learning DesignSpark is learning a professional package, albeit low-end one. I don’t know how far DesignSpark locks the user into RS. DesignSpark could also be disabled at any time, and currently I don’t want to spend a lot of money of ECAD software. KiCAD had the advantage of being free forever, for sure. I like KiCAD’s approach to a footprint per part per board, instead of a footprint per part.

    My biggest complaints (in discovery order) are:

    1. In the Windows version, the footprint library is online (Github), and if there is a connection problem (firewall/proxy) the program hangs and crashes. Deleting the online copies and downloading offline copies isn’t too hard, but there is nothing in the program that indicates the problem or the solution.
    2. A rats nest line doesn’t disappear once a track has been made. If it did I could see what is left to connect, which would help enormously when shuffling components around. This is the only potential deal-breaker I have found with KiCAD. Could some clever programmer please fix this?
    3. The component footprint filter doesn’t work for some .pretty folders including any that I make myself. I’ve tried stable and nightly and since these releases are years apart and the bug remains, I am not expecting a fix soon.

    One thing that is concerning for KiCAD is that any time someone asks for a superficial pros/cons comparison with DesignSpark, the question is ignored. It’s surprising that there isn’t a video comparison on YouTube, but I can at least watch tutorials for both (though that is a significant time investment). It does seem however that these are the only sensible choices for hobbyists.

    I also suggest giving Qucs a try. It’s a circuit simulator and it’s very good. I would like to see import/export options between Qucs and KiCAD, and at least a shared schematics parts library. That’s in everyone’s interest, isn’t it?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s