PCB Design Software

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 :p).

I have to admit that my complaints have largely been acknowledged and fixed already (yey, open source :D), 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:

elec_mech

Joined Nov 12, 2008
1,500
Okay, I'm liking what KiCad is capable of - thank you for the detailed explanation panicmode - but I still can't make a darn trace on it to save my life. Could any of you pro-KiCad users explain to me how one goes about opening the PCBeditor and creating a board from scratch, insomuch as adding an IC part and making a trace from one pin to another?

I've opened all the manuals and tutorials they provide and every one of them uses a schematic to create a board. I can't find one example on how to create a board from scratch. I'm sure I can figure out board size, layers, and all that, I just want to how to properly add a part and make a trace between pins.

Can anyone help here?
 

panic mode

Joined Oct 10, 2011
2,759
read help - menu Help>Content
or

step1: open KiCad and create new project
step2: open EESchema and make schematic, when complete Save netlist
step3: open CvPCB, open netlist and assign footprints, save (completes netlist info)
step4: open PcbNEW, open Netlist, arrange parts into any form you like
step5: (optional) edit DesignRules (create classes of nets, with their own dimensions; for example you may like 8mil traces for signals and 40mil for any power signals etc.)
step6: route. if routing manually click on "Add tracks and vias" icon, select layer, then click on one pin (everything that is on same net will highlight), just move mouse till you are at nearest highlighted pin.

some people insist on making PCBs without schematic :)eek:). in that case turn off DRC. this will allow you to randomly connect anything to anything.
 
Last edited:

elec_mech

Joined Nov 12, 2008
1,500
some people insist on making PCBs without schematic :)eek:). in that case turn off DRC. this will allow you to randomly connect anything to anything.
Ha-ha! I knew it was simple! I would have never figured that out otherwise. Thank you panicmode!

I'll try the schematic route when I go to do the board. Does seem that would be a lot easier. Thanks again!
 

panic mode

Joined Oct 10, 2011
2,759
attached images should help:
note selection of layer and "add tracks and vias"

next image shows arranged parts, white lines are called rats nest and indicate connections to be made

next image shows appearance when manually routing net. note that all pads belonging to same net are highlighted. in this example i just clicked on left side of R1, after this one has to move mouse to one of highlighted pads, once at destination just doubleclick pad to terminate trace.
 

Attachments

ErnieM

Joined Apr 24, 2011
8,377
some people insist on making PCBs without schematic :)eek:). in that case turn off DRC. this will allow you to randomly connect anything to anything.
As I would never do that I wouldn't even think of turning off the DRC.

Once you get to the point where there IS a netlist driving the board do keep in mind that Kicad will not let you lay a bad trace: if it violates any rules it too will promptly disappear (even when you knew about the violation and were intending to immediately fix it).
 

panic mode

Joined Oct 10, 2011
2,759
there was a lengthy thread about this in yahoo group. one of the explanation why someone would want to do this it to put some pads or connections in free space on the board and leave it as prototyping area.
 

elec_mech

Joined Nov 12, 2008
1,500
I already have my schematic done in Visio, so I was just going to make the PCB with a PCB only program. Panicmode and ErnieM inferred that the proper way to do it is to start with a schematic capture. So at the risk of spending more time in the hopes of saving some later and doing things right, I attempted to use KiCad's schematic capture.

Okay, let me start out by saying I appreciate panicmode's and ErnieM's advice, but KiCad is not real user-friendly to those unfamilar with schematic capture programs. This is the first time I've tried doing a board at home and it's certainly my largest board to date.

Anywho, I've made my own ICs in KiCad and was feeling good. However, whenever I need to move something, I first have to hold down the mouse and create a box partially over the object I want to move/rotate. Inconvenient, but okay. However, half the time I create a box over just a part, it selects two parts. To deal with that I have to first select the other part, move it, then move the first one I wanted. But wait, when I move the part I didn't want to move in the first place, all the traces to it stay where they are (they don't stay connected to the part).

If I select a trace to move, the program will move the trace and another part I don't want moved, but then the traces to said part are moved with it. Go figure.

I'm not saying this is a bad program, but it is not one to use if you're unfamilar with schematic capture and are in a hurry to get something out.

I'm a noobie to PCB programs and I may simply not have the patience to read through the entire manual, I'm doing something dumb, or I have an unknown UI difficulty setting on 'high'. If you guys have any suggestions as to what I'm doing wrong, I'm all ear. . . well, eyes.

Because this program is making me dread designing a PCB, I'm going back to manually laying out a board ExpressPCB which is far simpler and more intuitive for my inexperienced ways. :)
 

panic mode

Joined Oct 10, 2011
2,759
interesting...

well, one thing is that you can make circuits without long wires.
this can dramatically reduce effort when making changes like selecting and moving things around.

simply place component (IC or whatever), attach to each pin short wires, and label wires...

as long as those labels have match somewhere else, they will be treated as connected.
in this example i used global labels but on a single sheet local labels (net name) will do too.

then selecting something is much simpler as circuit is broken into series of mini-blocks.

just an idea...
 

Attachments

ErnieM

Joined Apr 24, 2011
8,377
To move footprints hover over it and press the letter M. You may have to confirm the exact object to move.

To rotate an object press R. (BTW, case does not matter)

If you have an existing schematic in Visio it may be possible to find a program to convert the netlist to EESchema.

A net list is just a text file data file to keep a list of components, pins, and connections. Thus it may be possible to do a "manual" conversion (lots of "find & replace" and then some).
 
Top