Urban Bruhin
GitHub icon

Creating a FOSS printed circuit board design tool

Hello, who are you and what are you working on?

Hi, my name is Urban, I'm 30 years old and I live in Switzerland. As an electrical engineer, I develop hardware, firmware, and software. My project, LibrePCB, is free software to create printed circuit boards (PCB) for electronic devices. It allows hobbyists and professionals to draw schematics, route the copper traces and export the data needed to manufacture the printed circuit boards.

Why did you start LibrePCB?

Around 2013, I was building a quadcopter from scratch so I needed a tool to design the printed circuit boards. Until then I had used proprietary software but wasn't really satisfied with it. After looking for another tool, I realized that the whole situation was horrible - there was simply no tool available which was intuitive and powerful, even less multiplatform and open source.

This was the point where my hardware project turned into a software project - I stopped my activity on the quadcopter and tried instead to develop a PCB design tool. The goal was to continue with the quadcopter project someday, but I haven't returned yet, more than six years later ;-)

What were the early days like?

Well, at the beginning I was wondering whether developing such software was even doable as a single developer at all, or if it's completely impossible. After some reading and comparing the available technologies, I started a proof-of-concept with C++ and Qt. It turned out to be basically possible, although requiring a huge effort. I decided to continue with this project and regularly worked on it, but without publishing it yet on the Internet. Since I was studying at the time, some classmates helped from time to time with brainstorming and coding.

How have you gotten other contributors involved?

A few years later, I published the project on GitHub, started to spread the word about LibrePCB, wrote documentation, contribution guidelines and so on. In February 2018 I had a presentation about LibrePCB at FOSDEM in Brussels, Belgium - this was by far the most important action to get more users and contributors involved in LibrePCB; the impact on community activities was clearly noticeable.

How do you manage the workload and the community?

That's a good question. Sometimes it's a bit frustrating to see how much work is still to be done while at the same time the available resources are very limited. To still make progress on every aspect of the project, I try to rotate between the different tasks: implement new features, evaluate long-term strategies, improve documentation, update the website, discuss with the community and so on. But from time to time I still have issues keeping track of all the ongoing tasks.

How much time do you devote to LibrePCB?

Since the earnings from LibrePCB are far too low to pay the rent, I still have a 90% job and work on LibrePCB evenings and weekends. I don't keep count of the time working on LibrePCB, but it's a lot considering it's still a hobby project. I wish I could work full-time on LibrePCB, but unfortunately, it's simply not possible yet.

What are your hopes for the future of LibrePCB?

I hope the project continues to grow until almost every electronics-hobbyist uses LibrePCB to develop their printed circuit boards. It's awesome to see people realizing their electronic projects using tools that I've created (alongside other contributors). But to ensure the future development and maintenance, it would be very helpful to generate enough earnings so I could work full-time on it. I think this would give LibrePCB a huge boost regarding the implementation of new features.

What advice do you have for other open source projects and maintainers?

I think it's important to realize that an open source project needs much more than just publishing its source code on the Internet. To make a project successful, a lot of effort needs to be invested in things like documentation, website, promotion, community and so on. Unfortunately, even the best software is worth nothing if nobody knows of its existence.

To find out more about LibrePCB, you can check out the website or contribute on GitHub. To sponsor Urban's work, you can donate via Patreon, or now via GitHub Sponsors (which will match any donations given).