Reflections on KiCad and EDA Tools

A recent interview with a KiCad developer prompted some reflection on KiCad and EDA (electronic design automation) tools in general. Below are samples of several PCB (printed circuit board) designs, created with KiCAD, and implemented as part of the SimpleIoT project in the last couple months.

The experience has been excellent. Above all, the tool is very fast, efficient to use, and stable. Schematic and PCB integration works well enough, and routing and copper pours are easy. Switching between inches and millimeters can be done on the fly. The KiCad library has many parts in it, and other organizations, such as DigiKey, Seeed, SnapEDA, and Ultra Librarian are also providing libraries. If a KiCad symbol/footprint for a part is not already available, it is relatively easy to create new symbols and footprints as needed. There is a good KiCad support forum. KiCad is a pleasure to use and production-ready for standard PCB designs.

Choosing an EDA tool is an investment. There are several aspects to consider:

purchase/licensing cost of the tool

time invested in learning the tool

time spent implementing designs

time spent maintaining designs

#2, #3, and #4 swamp #1 for many projects — at least when low end EDA tools are used. Thus we want to be confident that the tool we choose will be around for a while and will be well maintained. With all the churn in the EDA industry in the last 10 years, it is hard to have a lot of confidence in the long term prospects of many tools. For KiCad, however, the development statistics indicate that momentum around the project is increasing and that this tool will likely be around for awhile.

With 183 contributors, the KiCad project appears to be healthy — it is doing something right.

Some may fear that open source projects (like KiCad) are taking away the opportunity for companies to make money and are not sustainable. Has the advent of Linux decreased the amount of money being spent on operating systems? On the contrary, Linux has greatly increased the operating system ecosystem — much more so than if proprietary Unix were the only option. Redhat, Ubuntu, and many other companies seem to be doing well. Linux is used in everything from watches to supercomputers. Unix would never have enabled this breadth of products — it is simply too large a task for any one company or team. Collaboration is the only way to accomplish a project of this magnitude. When the commodity layers are taken care of, then people are free to work on higher level problems. If a commercial EDA tool does about what KiCad does, that product is likely not going to fare well long term. But there is plenty of space to add value higher up the stack. Examples might include tools that work with KiCad such as auto routers, advanced placement tools, library management tools, RF design, SI/EMC simulation, high voltage design rules, etc. There is endless opportunity. The “pie” of opportunity is not fixed — it can grow. Contribute code to KiCad that will enable proprietary tools to run in tandem. If companies build on top of KiCad, then they will not have to duplicate the task of building a basic schematic and PCB layout editor and can instead focus on other features, and as a result, there will overall be more value for society. Companies will already have a large market of people who are more likely to spend incremental amounts of money to add functionality as needed. The alternative is for every company to try to provide the entire EDA stack, which can be a tough sell, as it is expensive and customers will need to change everything they are currently doing. There is no reason EDA software cannot become modular like the software development ecosystem.

KiCad may displace a few commercial EDA products, but the value and opportunity KiCad will help create will far outweigh this loss. More companies will build more stuff, with less friction and effort. There will be more innovation. More problems will be solved (and likely a few created). There will be more collaboration. Even now, it is practical for developers, who only design PCBs occasionally, to use production grade tools.

EDA tools should not be evaluated merely on technical features and price, but also on the hassle factor, the capability to facilitate collaboration, and the ease of long term product maintenance. Who will maintain your product in two years when a part goes obsolete, the design needs tweaked, and the designer and the obscure tool used on the original design is long gone? If you contract out a PCB design, why not require that the design be implemented using a tool that anyone can use in the future? Part of the value of a product is its maintainability. Companies who can quickly adapt as things change will have an edge. The costs of not being able to quickly respond to some product need, or of having to learn new tools and re-implement a design are significant. Over the life of some products, maintenance costs may be much larger than the initial development costs.

In years past, I’ve used a number of different PCB design tools (Mentor Board Station, OrCad, P-Cad, gEDA, Eagle, etc). Some have been good experiences, others not so much. While there are no doubt EDA tools that have more features and are better than KiCad in some ways, KiCad is the low friction solution for your standard PCB design. It can be used easily by any one at any time on any computer. This flexibility is a big part of KiCad’s value. EDA tools are the “build system” for your hardware. They work best if they are open and easy to use by anyone on the team. There are many “free” PCB design tools available, but few of these are open. Some are cloud based, are very convenient to use, and technically a marvel that we can run a PCB design tool in a browser.. But the design is still locked up in a proprietary format. It is not easy to customize or extend these tools. And the sheer number of these commercial options available today suggests that long term they probably won’t all be around. “Open” is more important than “Free” in my opinion — especially for the long term.

KiCad is certainly a noteworthy project in the technology landscape, and deserves consideration. The availability of such a tool will change the world. The open source hardware movement will grow. Companies who learn to leverage this movement will benefit in the same way that most companies now benefit from the use of open source software. More wealth will be created for society. The traditional barriers between hardware engineers, software developers, and PCB designers will be reduced. Just as hardware engineers have had access to about any software development tool they want to use, now software developers have access to tools to develop and tweak hardware. The small amount of time required to learn KiCad is a worthwhile investment.