I have completed my first board all the way through and it appears to have been accepted by a Chinese PCB manufacturer. While waiting for it to appear, I thought it might be useful to put down my observations, while this is fresh in my mind.
This project started on July 3, so it has taken just over three months (part time- hobby). It is fairly complex, and two linked boards had to be first captured by EESCHEMA before this first one could be laid completely out.
-
Schematic capture. This works very nicely, I like the interface mostly, once I got used to it. It is missing some things- like being able to select one or a group of components and do ctrl-C to copy them and ctrl-V to paste them on the same schematic, or a different schematic or even a different project. In fact EESCHEMA does not seem to use the standard Windows clipboard. Admittedly I am using the Windows version, and maybe there are other standards for this in Linux OSX etc., I don’t know. I also back-tracked a lot because I did not realize you really have to add any fields first for the parts before you use them. The selection works nicely, just like in ORCAD, where if you draw a rectangle and any small part of a symbol is inside it, the symbol is selected, unlike Altium where you have to select every part of the symbol to select it. Also, in Kicad, when you rotate a part, the reference designator doesn’t so you have to do that by hand. And when you annotate the schematic, the reference designators frequently go back into the parts, so you have to go around and move them. This is true to a greater or lesser extent with all schematic programs, once you have the connectivity, getting a pretty (or even readable) schematic can take bit of time.
-
Text editor and Python. You really have to get good with whatever text editor you use. In the schematic capture phase I spent as much time opening the files in Notepad++ as I did in EESCHEMA. I also wrote numerous Python scripts to rearrange things, replace things and so on. If you don’t yet know Python, now would be an excellent time to learn it! All KiCad files are human-readable text, which is a plus, but the minus is that it is hard to get through a complex project without opening and working on most of these files. I would recommend Notepad++ for an editor and the Anaconda distribution of Python.
-
Symbol creation. This is painful in the extreme. Especially the arc drawing, which is very primitive. Also, you will notice a “feature” of Kicad is that the y axis increases going down instead of up. The first quadrant of the plane in mathematics has x increasing to the right, and y increasing going up. Been this way for centuries. This is the first CAD program I have used where the y numbers increase going down, I have been trying to remember this, but it still trips me up occasionally.
-
Board layout, routing. This is in many ways the most pleasant part of the process, I was dreading it but it was almost painless. The worst part is managing footprints (aka modules). You can Google and find literally thousands out there on a large number of sites. I have downloaded a lot, but the CVPCB has almost no way of sorting/filtering them. I have nearly 3,000 symbols, and scrolling through them looking for parts takes forever. There are some filtering buttons, but there seems to be no way of changing the filtering values. So my “hit rate” on finding symbols and footprints has been very low, around 25%. The rest I created myself which was not too hard, the footprint editor works quite well. Once you get a “clean” run through CVPCB you can move on to routing, which took me less time than the footprint assignment (about one third as long).
-
3D visualization. I never used this, as I say my hit rate on parts that might have had an existing 3D drawing was too low to worry about. Also, I have to learn either 3dwings, freecad or something. Maybe I will do that when I have finished this project and have some free time. The pictures of boards like the HackRF one look gorgeous, I am sure it is capable of good things, but there is very definitely a learning curve.
In summary- like most CAD programs Kicad has its peculiarities and even bugs, but actually no more so than other programs I have used, like Altium. Almost all CAD has about 90% that is the same as every other CAD, is normal and predictable, and about 10% that is peculiar. I have found with all CAD that far from “learning it”, it trains you to ignore or embrace this weird stuff. So considering the price for a seat of Altium, KiCAd is a wonderful program. This project was for a ham radio development, but any company that is working in the brave new open source world would do well to consider Kicad.
If there was one thing that would transform all CAD, it would be a unified way to manage symbols and footprints. I am think of a database line like Digikey has, with a bunch of filters and sliders you can move around, and with the symbol shown above and to the left, and the footprint shown above and to the right, and maybe the 3D model in the middle. No CAD system I have used (Kicad, ORCAD, Altium, DesignSpark) has anything like this. Altium has “vaults” but they are also mysterious and hard to use. DesignSPark comes the closest, but you are tied in to RS. Plus the number of parts is too limited, but the general idea they have is really on the right track, it just needs to be extended and made open. Once you have the symbol and footprint you like, you put it in your schematic and it will carry through to the PCB, 3D visualization etc.
I apologize for the long post, but maybe this will be helpful to someone. I give KiCad two thumbs up! Thanks to the people involved for all the hard work, it is making many projects (mine included) possible and enjoyable. I will now proceed to the CERN site and donate!