panic mode
- Joined Oct 10, 2011
- 2,759
I am using KiCad for last couple of years. I was doing PCBs off an on using variety of programs but eventually I needed to do couple of larger boards for work and that was a turning point. I used Eagle few times before on smaller jobs and frankly it was cumbersome (at least for me). I like the libraries but that's about it. It is way over-hyped product imho. Someone may say i didn't spend enough time to really learn it. Perhaps so, but I assure you, I've put way more time into getting to know Eagle than any other PCB software (and i tried few).
I looked at alternatives (missed DipTrace at that time), tried many of them including DesignSpark PCB. I really liked what Spark had to offer until I was forced to renew activation - I didn't use the software for few days (I was away) and the software decided that I had to re-activate to show my commitment. The problem was I could not access completed design and there was a glitch somewhere in activation loop. Ultimately it took couple of days to resolve it but it was bad timing so I had to say good bye. Meanwhile improved DesignSpark PCB is available in version 3 supporting 3D and circuit simulation. More importantly (from what I can see) it requires activation only once - one does not get locked out any more. If this was the case back then when I evaluated it, I'd probably still be using it. But at that time, this was serious issue and strong push in a different direction. And just when I was going to fork some serious (company's) dough on Eagle, I came across KiCad. It worked for what I needed so money was saved.
So what exactly did I find:
First thing is I was able to just read through help files and two hours later I was making first design, along with multi sheet schematic, hierarchical drawings and couple of new parts, symbols and footprints that were not in the library. I honestly wish it was that simple with Eagle. By the end of the day, two large boards were done and order was placed. That was neat, plus when the boards arrived they looked awesome and worked without issue. That was nice boost in confidence...
Note, workflow in KiCad adds one more step - footprint association, but i'll mention that later. In general it is three step process:
1. capture schematic (this is common to just about any PCB software).
2. associate footprints
3. do the board layout.
As mentioned, 2 is the "extra" step, because each component used in schematic need to be associated with some suitable footprint. This makes sense given that components come in variety of packages, in fact it must be done in any PCB software but it is done at different stages. But this is one thing most people dislike before getting to know it. Key here is footprint filter (you can associate parts with one or many footprints). Unfortunately, freshly installed KiCad comes with no filters preloaded. Once the filters are configured this step is a snap - just one button click (so I did it for all parts i use, and yes, it took over an hour but it's done). So anyone whining about having to do it every time for every project - you just need to associate footprint with component once and you are set for all future projects.
Board design is straight forward, import netlist, spread parts, route, check, export gerber and drill file.
There are several project in sameples\demos. If you have installed KiCad, check them out.
But it cant be all rosy in the land of open source, can it? Nope, there will be users of any program that complain about this or that (and I am big on complaining ).
I have to admit that my complaints have largely been acknowledged and fixed already (yey, open source ), besides since it's open source, everyone is free to try his programming skill to change or add something. New releases are quite frequent (about every 3 months or so). There are also patches that are released more frequently for those who don't want to wait for next release.
Supplied libraries are rather small. More over many things are not even well 'connected' (no filters, 3D footprints although installed are not allways associated with components etc.), it is more of a skeleton demonstrating what others have tried to do.
Philosophy here is that one is supposed to make and maintain his own libraries. There are plenty of libraries to choose from, some people simply wrote scripts that convert libs from other products like Eagle. Some have started from scratch and created entire libraries to completely replace libs supplied with KiCad etc. Some created scripts that generate component families (parametric). One will have to make own components in any software as new parts reach the market. And the way I look at it, you design component once and use it many times. I don't throw hundreds of new components into one design, new parts are introduced gradually. I chose to make my own libs because i find it fun (need something to do when there is nothing better to do), gives me freedom to make things exactly the way I like (and I can be picky) and helps me make sure that no mistakes creep in. For me this is no longer an issue, now it takes me minutes to make entire part from scratch, including symbol, footprint and 3D (yes - it took some practice).
If there is one good thing about slim libs - reposnse is faster (I find Eagle is so slow here, as expected). Also when I make multiple versions of parts, i name them uniquely (DEVICE_DIP, DEVICE_TSSOP, DEVICE_SOIC etc.) in order to zip through step 2 mentioned above. Another reason is that same device may have different pins present (or non-present) in different packages. Yesterday I watched DipTrace tutorial and they use the same naming method.
Routing: many n00bs are looking forward to let autorouter do the job for them. I will stay out of discussion what routing method is the best but in case of KiCad, there are three options:
1. Manual routing (very good, intuitive)
2. Built in autorouter (very primitive)
3. External router (excellent, requires Java installed and web access).
Good things - no design restrictions, no activation, no legal restrictions (I can make whatever I like and sell it if I want to).
Overall I find KiCad to be light and stable (i use it on Windows and never had it crash, also it works smooth even inside virtual machine) it works on variety of platforms, comes with bunch of actual datasheets (integrated into IDE) etc. This is by no means perfect product. It's evolution is driven by user feedback. I am just presenting my own experience to hopefully make easier choice to those looking for right product for them.
I looked at alternatives (missed DipTrace at that time), tried many of them including DesignSpark PCB. I really liked what Spark had to offer until I was forced to renew activation - I didn't use the software for few days (I was away) and the software decided that I had to re-activate to show my commitment. The problem was I could not access completed design and there was a glitch somewhere in activation loop. Ultimately it took couple of days to resolve it but it was bad timing so I had to say good bye. Meanwhile improved DesignSpark PCB is available in version 3 supporting 3D and circuit simulation. More importantly (from what I can see) it requires activation only once - one does not get locked out any more. If this was the case back then when I evaluated it, I'd probably still be using it. But at that time, this was serious issue and strong push in a different direction. And just when I was going to fork some serious (company's) dough on Eagle, I came across KiCad. It worked for what I needed so money was saved.
So what exactly did I find:
First thing is I was able to just read through help files and two hours later I was making first design, along with multi sheet schematic, hierarchical drawings and couple of new parts, symbols and footprints that were not in the library. I honestly wish it was that simple with Eagle. By the end of the day, two large boards were done and order was placed. That was neat, plus when the boards arrived they looked awesome and worked without issue. That was nice boost in confidence...
Note, workflow in KiCad adds one more step - footprint association, but i'll mention that later. In general it is three step process:
1. capture schematic (this is common to just about any PCB software).
2. associate footprints
3. do the board layout.
As mentioned, 2 is the "extra" step, because each component used in schematic need to be associated with some suitable footprint. This makes sense given that components come in variety of packages, in fact it must be done in any PCB software but it is done at different stages. But this is one thing most people dislike before getting to know it. Key here is footprint filter (you can associate parts with one or many footprints). Unfortunately, freshly installed KiCad comes with no filters preloaded. Once the filters are configured this step is a snap - just one button click (so I did it for all parts i use, and yes, it took over an hour but it's done). So anyone whining about having to do it every time for every project - you just need to associate footprint with component once and you are set for all future projects.
Board design is straight forward, import netlist, spread parts, route, check, export gerber and drill file.
There are several project in sameples\demos. If you have installed KiCad, check them out.
But it cant be all rosy in the land of open source, can it? Nope, there will be users of any program that complain about this or that (and I am big on complaining ).
I have to admit that my complaints have largely been acknowledged and fixed already (yey, open source ), besides since it's open source, everyone is free to try his programming skill to change or add something. New releases are quite frequent (about every 3 months or so). There are also patches that are released more frequently for those who don't want to wait for next release.
Supplied libraries are rather small. More over many things are not even well 'connected' (no filters, 3D footprints although installed are not allways associated with components etc.), it is more of a skeleton demonstrating what others have tried to do.
Philosophy here is that one is supposed to make and maintain his own libraries. There are plenty of libraries to choose from, some people simply wrote scripts that convert libs from other products like Eagle. Some have started from scratch and created entire libraries to completely replace libs supplied with KiCad etc. Some created scripts that generate component families (parametric). One will have to make own components in any software as new parts reach the market. And the way I look at it, you design component once and use it many times. I don't throw hundreds of new components into one design, new parts are introduced gradually. I chose to make my own libs because i find it fun (need something to do when there is nothing better to do), gives me freedom to make things exactly the way I like (and I can be picky) and helps me make sure that no mistakes creep in. For me this is no longer an issue, now it takes me minutes to make entire part from scratch, including symbol, footprint and 3D (yes - it took some practice).
If there is one good thing about slim libs - reposnse is faster (I find Eagle is so slow here, as expected). Also when I make multiple versions of parts, i name them uniquely (DEVICE_DIP, DEVICE_TSSOP, DEVICE_SOIC etc.) in order to zip through step 2 mentioned above. Another reason is that same device may have different pins present (or non-present) in different packages. Yesterday I watched DipTrace tutorial and they use the same naming method.
Routing: many n00bs are looking forward to let autorouter do the job for them. I will stay out of discussion what routing method is the best but in case of KiCad, there are three options:
1. Manual routing (very good, intuitive)
2. Built in autorouter (very primitive)
3. External router (excellent, requires Java installed and web access).
Good things - no design restrictions, no activation, no legal restrictions (I can make whatever I like and sell it if I want to).
Overall I find KiCad to be light and stable (i use it on Windows and never had it crash, also it works smooth even inside virtual machine) it works on variety of platforms, comes with bunch of actual datasheets (integrated into IDE) etc. This is by no means perfect product. It's evolution is driven by user feedback. I am just presenting my own experience to hopefully make easier choice to those looking for right product for them.
Last edited: