When you finish the design and prototyping of your project and you want to make a PCB, you need to use some kind of PCB layout software. While there are a plethora of commercial products, most of them expensive – very expensive, there are relatively few that are low cost or free for the open source designer. This guide will look at the options available and make recommendations based on the author’s knowledge and preferences.
NOTE: There may be some other applications than the ones I have mentioned. Since I use Linux on my PC, I have only looked at the packages than run under Linux. I believe the ones listed run under all three mainstream operating systems, but I am only certain about Linux versions.
Online PCB Software
Some commercial PCB fabricators offer their own free online software. While some of these products may be quite capable, they suffer from one huge drawback – you are locked into their services. If you want to have your PCB made elsewhere, you are out of luck. For that reason I don’t give these programs a second look.
The Eagle CAD package offers both schematic and PCB layout programs. It is the favorite among open source hardware designers. For that reason there are a lot of extensive component and footprint libraries available for many of the parts used by hobbyists and the open source community. While it is a commercial program, the company offers a freeware version limited only by the PCB size. With all of these benefits, one could reasonably conclude that this package is the one to use.
Unfortunately, myself and a few others do not agree. Despite all these advantages, Eagle suffers from some major issues- show stopping issues, in my opinion. They are not bugs, nor are they limitations in its capabilities; the problem is in the user interface. It seems like it is a relic from the DOS era, which may indeed be the case. The user interface is all backwards from the normal mouse driven interface commonly used by all modern operating systems. If it was merely different, it would not as much of an issue but it is also incredibly inefficient and really difficult to use.
How difficult? I spent over three entire days working on a components library just to add a few parts. I had already imported existing ones. I then spent another few days laying out a couple of PCBs. It was very slow going. Not only was the learning curve steep, but actual usability wasn’t any better. It takes a really long time to do pretty much anything in this program.
I don’t think it is just me either. There are serious design flaws in this package and using it is just a nightmare. It is a shame the open source hardware community has rallied around it, because it is just not a good package. It is also limiting since the freeware version limits you to a fairly small PCB size. Compared to the other programs available, I really cannot recommend this application to anyone.
The gEDA software suite has the big advantage of being entirely free and open source. Unfortunately, it is pretty much a labor of love for its developers with little outside support. It has been around a fairly long time and is still lacking in a lot of user interface areas. While it is not fundamentally flawed as Eagle CAD is, it is just too hard to use for me. Some folks are happy with it, and being open source does commend it somewhat. For now though, I would not recommend it.
KiCAD is another schematic/PCB layout package that is also completely free and open source. It is much more advanced in its user interface than gEDA and enjoys a fair amount of popularity. It has one major flaw though. The process to go from schematic to PCB requires a lot of manual steps and does not match the common component library concept where a part consists of a schematic symbol and a footprint.
I suppose the flexibility offered by the KiCAD model is not necessarily bad, I nonetheless found it difficult to use in practice. Basically, once you have a schematic you like, you then launch a component match-up program where you choose footprints to go with the symbols. While this step isn’t the greatest thing in the world, I could live with it. The problem I ran into though, was whenever I needed to make design changes. Instead of a single back or forward annotate command, I had to go through this several step process each time. The problem is not just the several steps, but the awkward nature of them. For example, one step requires you have to save a file over an existing file, and confirm it. Why can’t you just click once to reassign the footprints and be done with it?
Until this problem is resolved, it makes KiCAD just a little too difficult to use. While not nearly as bad as Eagle CAD or gEDA, it is troublesome. If there was no other choice, I would gladly use KiCAD. If I figure out a way to easily incorporate design changes to both PCB and schematic without going through a lot of tedious steps, I would give it my full recommendation. As it stands now, I say use it if you have no alternative, otherwise I offer another choice.
DipTrace is a schematic and PCB layout suite from the Ukraine. It is a commercial package with a freeware version that has some limitations. The limitation is on the number of pins in your design. It is very generous and you are not limited to PCB size. If you need to design a larger circuit than the freeware version allows, the commercial pricing is pretty reasonable – affordable by anyone making money from their designs.
NOTE: It is the only software mentioned in this review that does not run natively under Linux. It is a Windows only application. However, it is very well behaved under Wine, and despite that shortcoming, I still find it very usable under Linux.
The user interface is done correctly, the way you expect a modern program to behave. In contrast to the several days it took to learn to use Eagle CAD, I learned this application in less than a day. I even created my own library from scratch in only a couple of days.
The drawbacks to this software is the lack of component libraries contributed by the open source hardware community. I plan to remedy that situation by posting the library I have created. On the positive side, there are a fair number of commercial footprints, and it is very easy to create your own. If I need a new one I use either drawings or an Eagle CAD library footprint to copy. It only takes ten or twenty minutes to draw one from scratch.
When creating components in DipTrace, it offers some big advantages over Eagle CAD’s interface. For example, Eagle CAD requires the designer to define the solder mask and solder paste artwork. DipTrace on the other hand calculates these shapes automatically according to parameters specified by the designer. With advantages such as this one, DipTrace is a highly productive application.
At this time, I heartily recommend DipTrace and urge my fellow open source hardware designers to use and promote it instead of Eagle CAD. I am also not ruling out KiCAD. It also is an easy to use program. I think if a little effort were put into streamlining the annotation between schematic and PCB, this program would be a real winner.
If you have any experiences you would like to share, please post them in the comments below.