Breadboard to circuit layout

Prototype on breadboardIn order to make my own PCB for the CGA to analog converter project, the first step is to do what is called schematic capture, and get the schematic drawn in the computer. While it’s certainly possible to draw a schematic in a program like Paint, or using something more sophisticated like Illustrator, using a specialized program is a better choice because it will understand how things are connected and will help with converting the schematic into a PCB layout.

I’ve used Eagle before but this time I wanted to use something free that didn’t come with a lot of restrictions. Lots of the electronics communities that I read have been talking about KiCAD lately, so that’s the one I’m going to try.

One thing I’ve found about many CAD programs, both free and commercial, is they seem to be throwbacks to the 1970s before pointing devices were common. It’s as if the people writing them have never used a computer with a GUI and are just completely unaware of how drag & drop works. Eagle’s interface can be learned, but it’s not intuitive and the tools feel very crude. KiCAD is very much the same. In fact in KiCAD, you don’t even click to select and move objects, you hover the mouse over them and then hit M on the keyboard!

Schematic for the circuitThere are a few written KiCAD tutorials available, but they are all somewhat out of date. The main problem is simply that the icons have changed and the menus are named a little different, but the methodology used in KiCAD is pretty much the same. For me those kinds of differences were minor so the dated tutorials were enough for me to figure out the basics.

After getting the schematic in, I expected the next step was to layout the PCB. Not quite, first you have to create the netlist and setup footprints. At that point you can start moving components around and routing traces. KiCAD helpfully dumps all the parts on top of each other and you need to do a trick to get them spaced out where you can work with them.

Single sided PCB layoutI was disappointed to find there was no built-in auto router. There’s supposed to be a way to use some external website to do it, but the Java app no longer works under Java 7 because of security issues. When working in Eagle I liked putting the components where they seemed good and seeing what the auto router could do, then manually ripping up some of the traces and tweaking component positions. By the time I was done I probably had moved most of the traces manually, but for someone who hasn’t done a lot of circuit layout, the auto routing made an easy starting place.

While doing the PCB layout I did make a few design changes. I discovered that if I put the 74hc244 close to the DE9 connector it made more sense to bring all the inputs into the higher numbered pins since I could then keep a couple of the chips oriented the same way. After making the changes to the schematic and recreating the netlist, I was able to update the PCB without it entirely freaking out and losing what I had been working on.

Test fitting the D-sub connectorsMany iterations later I was able to shrink the PCB down considerably, and even get all the traces routed on a single side. I’m not ready yet to try making a double sided PCB. This layout may not be perfect and I’m already thinking about changing some components, but it’s good enough for a prototype to try to mill on the CNC.