When you start designing your own open-source hardware projects, you usually start by building a prototype, where you assemble your project on a breadboard using already existing components. And after that, you have the PCB (Printed Circuit Board) design step, where you will formalise your design in the form of a PCB that you can later produce in large quantities.
Some years ago, when I started studying electrical engineering, the choice was simple: to design a PCB, you needed to get a PCB design software (paid or free), install it on your computer, and start designing your board. Today, it’s a bit more complex: there are now SaaS (Software as a Service) solutions out there to design your PCBs online, without having to download or install anything. So which solution is better to design open-source hardware? Local or SaaS? Paid or free? This article tackles this question with four examples of PCB design software.
The first software I want to introduce in this article is of course Eagle by Cadsoft. I wrote ‘of course’ because it is the de facto software to design open-source hardware projects. The software itself is not open-source, you even have to pay for it (even if you can do a lot with the freeware version). However, nearly all open-source hardware projects out there are using Eagle. For example Arduino is releasing all their board designs in the Eagle format.
The interface is a bit dated, even if they made a lot of improvements with the version 7. It is also directly compatible with some online PCB fabrication services like OSH Park, where you can just upload your Eagle design files directly. So yes, it is not the best software out there, it is not open-source, but it is still a good solution to go for if you want to re-use already existing open-source hardware designs.
KiCad is an interesting project. It is the best open-source PCB design software I know. It has a decent interface, nearly at the level of Eagle, and is available for all platforms like Windows, OS X, and of course Linux. All the modules of this PCB design software are open-source, it’s of course completely free, and even has some nice modules like 3D visualisation of your PCB.
It has also be supported by the CERN which promised to put a lot of effort into it to make it even better. You won’t find that many projects out there (yet!) in the KiCad format, so if your main concern is to re-use existing open-source designs, you might consider Eagle instead. However, a lot of people are currently working on porting popular open-source designs to KiCad, like the Arduino boards reference designs.
Upverter is the first online PCB design service that I heard of. And I have to admit, coming from a very ‘traditional’ PCB design background, it’s pretty damn cool. Not only you don’t have anything to install (you just need to create an account and you’re done), the interface is really modern and clean. Miles away from a software like Eagle.
It stills lacks some functionalities and some components compared to Eagle, but you can already design some serious PCBs with it. The nice thing is that you also have all the advantages of an online software: you can instantly see what other people are doing, and re-use their open-source designs. You can also instantly fabricate your PCB as they have links with PCB manufacturers. And if your project is open-source, you can use Upverter for free!
Finally, I couldn’t not mention the online tool EasyEDA. Not only you can design PCBs using this tool, but you can actually also simulate your circuits in your browser! Of course, not all components are supported, but it can really give you some insights on your design and make sure you are not making a fatal mistake.
They also have all the ‘online’ features of Upverter, like the possibility to browse designs made by other users, order your PCB directly from the browser, etc… The interface is not at the level of Upverter, and there are still missing functionalities, but it is definitely a tool to watch for in the future.
So What to Choose?
Of course, choosing the ‘right’ software for your project is a complex question. I believe that as with all software, the future is in online SaaS solutions, and therefore my first choice would be Upverter. However, if re-using existing designs is really your priority, then Eagle is the only choice at the time this article was written, but I really think it is going to change in a close future. Finally, if you really want to stay open-source all the way, then go for KiCad.
What software are you currently using to design your open-source hardware projects? Please share below in the comments!