Since being laid off at Dynon Avionics, I have been looking around at schematic capture and PCB CAD packages. Chris at Contextual Electronics has encouraged me to try out KiCAD. I decided to give it a go and design a small 1 square inch microcontroller board with a full-on ATMega 328 processor and the minimum circuitry necessary to build an (almost) UNO clone. The "almost" part is the fact that there will be no USB port on the board and it will need be programmed using the ISP connector.
The circuit diagramme I decided on looks like this from KiCAD:
Nothing here that doesn't need to be here for a minimal controller. I have the entire I/O pin set that can be found on an UNO, plus since I use the TQFP package, I have two additional analogue input pins.
The board layout is pretty dense at one inch square. Here is the board layout showing all of the layers from KiCAD. I am not terribly impressed with KiCAD's copper pour capabilities, at least as far as I have explored them, but what do you want for free, eh?
Producing the Gerber files was trivial and I zipped up the lot of them and shipped them off to OSHPark to be manufactured. Here is the screen shot of their rendering of the gerber files for the front and back of the board.
So, now we wait for the little purple envelope to arrive. Meanwhile I will collect up the set of parts to build a few of these up. This was an experiment to enable me to learn KiCAD and at the same time to produce a useful gadget for other projects. Once I have verified the functionality is correct, I will publish the OSHPark boards so others can order them directly if desired. At $5 for 3 of them, they are pretty cheap.
Overall, I found KiCAD relatively easy to learn, once I got a couple of key concepts down. The main one was that hot keys apply to whatever your mouse is hovering over. I found myself wanting to click to select something before hitting a hot key and this lead to all sorts of grief. Moving objects once they are placed also needs a lot of work. Rubber-banding of traces pretty much sucks. Once I figured out how to drag an object, the best that KiCAD could do is straight line connect all the existing traces. This ends up being pretty much worthless for anything other than adjustments of a few centimetres and you end up deleting all the traces and redrawing them anyway.
Selection of wires in schematics needs an easy way to select only a line segment or the entire line without having to draw box around it. When you move the line, it needs to rubber-band the end points. Straightening out a series of segments needs to collapse them into one segment and it needs to be able to easily break a line segment in two without disconnecting them. All of these comments also apply to traces in the PCB layout editor.
I did like that KiCAD included the ability to view gerber files, a comprehensive footprint editor as well as building the notion of hierarchical schematics into the product as a key feature. I cannot however get the bill of materials functionality to work, so I must be doing something wrong. Always more to learn.
For a free, open-source product, it is quite compehensive and there are a lot of part footprints available out-of-box and from 3rd parties. Overall, I would continue to use it for hobby projects. I would need to try and build at least a four layer board to have an opinion about suitability for commercial projects.