
@ubruhin
August 5, 2025
The past 3 years were very exciting for me and the LibrePCB project, completely different to the previous 10 years of the project’s existence. With this blog post I’d like to give you some insights about my "new" everyday life.
Usually I don’t like to expose my life in the internet — maybe you aleady
noticed this, if you ever tried to find me on social media platforms. Though
there’s nothing to hide, I just don’t feel comfortable to share my life with
the public (and with all the profit-oriented companies grabbing that data).
But since it’s also related to LibrePCB — which I obviously do want to
share with the public — let’s make an exception for this blog post (well,
I still couldn’t resist to add this post to the disallow list of robots.txt
).
Until mid 2022, my life was kind of "normal". Full-time employed as an electrical engineer, I was going to work 5 days (42 hours) per week, and worked on LibrePCB in my free time evenings, on weekends and during holidays (I don’t know what else holidays are intended for…). But after doing this routine for many years, some things have changed over time, and I realized today’s industry is only interested in profit rather than developing useful and reliable products in a meaningful way. I felt like this is not the way I want to spend the rest of my life, so I quit my safe job with no idea how I will generate the income needed to pay the rent, food, insurances etc. The only thing I knew, was that I wanted to work harder on LibrePCB, as I was (and still am) convinced the world needs a proper open-source EDA tool. This was the moment my life got interesting…
At the time, it was a tough decision and I hoped I wouldn’t regret it. But first of all, I enjoyed the new flexibility to travel a bit — something I never did on my own in my life before. Well, "travel" means I took the laptop and went to destinations where the weather was better than at my home in Switzerland and where I could continue working on LibrePCB. 🤓 To get the work done, I tried coworking spaces for the first time and discovered their focused "work atmosphere" and absence of distractions allow me to work very efficiently. Now, I occasionally even work from a coworking space near my home.
While I was not yet thinking about my future income, a friend & contributor of LibrePCB (@rnestler) asked if I ever considered to apply for a grant, e.g. from NLnet. I’ve never heard of NLnet, and was not very optimistic that "next generation internet" is interested in supporting a hardware-related project from a non-EU country, but nevertheless I submitted LibrePCB as there was nothing to lose. Their evaluation took quite long, and during that time I just used the savings from my previous job to continue working full-time on LibrePCB. This felt quite good, and even better when from time to time an email from NLnet mentioned that LibrePCB made it into the next evaluation round. Yay!
While there was no decision about the grant yet, I had the opportunity to generate some side-income by planning and building a 19 kWp solar plant. A bit later another 17 kWp plant followed. These were interesting projects where I could learn a lot (electrical installations are actually not my usual business), but I am mainly mentioning it because it is part of the income diagram at the bottom of this blog post ;-)
In the end, the NLnet evaluation took more than 4 months and it was April 2023 — already more than 6 months without being employed — when the final decision was made that LibrePCB will be supported. It was a huge surprise and a game-changer for me, since it finally gave me the confidence that I can work a full year on LibrePCB without worrying about income — no need to look for another job, just focus on the development of LibrePCB all day (and night)!
During this time, I was able to finish LibrePCB 1.0 and LibrePCB 1.1 with tons of new features and improvements. It was a great time since I was flexible in the way how I get the work done (e.g. it didn’t matter if I worked from 8AM to 5PM or from 11AM to midnight, or if I worked from cold home or from a better climate zone). But time flew by, and in April 2024 the grant ended with the release of LibrePCB 1.1 — and with that also the income suddenly stopped (except the donations and sponsorings).
Then, luckily a friend asked me if I could do some freelance hardware & firmware development for their company. Although I love to work on LibrePCB, it was a no-brainer to accept this offer since it is a great way to stay flexible — with freelance projects, it is much easier to keep enough free time for LibrePCB compared to having a full-time job.
Unfortunately for legal reasons it was necessary to create a legal entity (GmbH / LLC) to do the freelance work. I was not very happy about it, but figured it could actually be a chance to build up a long-term side-income (if more freelance projects follow) so I can continue working on LibrePCB with a high flexibility. Long story short, I am now also a company owner (with myself as its only employee) and need to do accounting, tax declaration and things like that 😭 Not what I like to do (don’t tell the Swiss authorities I have no idea about it!) but luckily with only a little freelance activity it’s not that much paperwork…
As of today, I’ve already finished three freelance projects and a fourth is in progress. In two of them I even designed PCBs with LibrePCB, how cool is that! 😃 Anyway, thanks to the second NLnet grant which started in October 2024, I could focus back on LibrePCB, meaning >90% working on LibrePCB and <10% on the freelance project. Though interestingly the freelance work generates a substantial percentage of the income ;-)
To summarize my life since I quit the job: Way less income & more work, but also more flexibility and more happiness. This working mode will stay until roughly October 2025, when the second NLnet grant is running out and LibrePCB 2.0 should be finished (possibly with some delay). Afterwards it will get interesting again how things continue, since the financial support from NLnet is currently my main income. Generally I’m striving for a funding model that doesn’t rely on further grants from NLnet since many other open-source projects out there also deserve a fair chance to get such grants. I plan to publish a separate blog post soon about the detailed finances of the LibrePCB project and about future plans.
In any case, just to make it clear, I commit to push the LibrePCB project forward into a sustainable future — the freelance work should just help to pay the bills until the LibrePCB project is financially stable. And of course, any donations really help me to spend my time on LibrePCB rather than on freelance projects!
By the way, a lot of exciting work is currently ongoing for LibrePCB 2.0, I’ll post a status update soon!

@ubruhin
May 20, 2025
In the past few months our libraries got some nice contributions and also I created more than 70 important library elements and 285 3D models by myself to provide you more ready-to-use components and devices: screw terminals, push buttons, mounting holes and more!
Changes
The rather incomplete libraries are a major criticism of LibrePCB, which also shows our user feedback survey where this is at rank one of things to be improved (but we would also assume it without the survey). In the past few months I have worked a lot on creating more of the important library elements to improve that situation. Also we got some contributions from the community which are now part of our official libraries.
Here’s an overview of the library elements which were added between November 2024 and April 2025:
- LibrePCB Base
- CK
- GCT
- Lolin
- Phoenix
- Sensirion
- Texas Instruments
- Tubes
-
-
K155ID1 / К155ИД1 BCD-to-decimal decoder (thanks to @dbrgn!)
-
IN-12B nixie tubes (thanks to @dbrgn!)
-
Behind the Scenes
Many of the new library elements were somehow repetitive (screw terminals, capacitors, mounting holes etc.), therefore I extended librepcb-parts-generator with new scripts to generate a large percentage of them.
These scripts also use CadQuery to generate STEP models, thus almost all of the new packages come with 3D models out of the box! In addition, all new devices come with MPNs so you will get an accurate BOM for your project without entering MPNs manually.
What’s Next?
After these library additions, I’m now priorizing the development of LibrePCB 2.0 where I’m making pretty good progress. But I have already planned to make more library contributions later with a focus on modules & devkits (like Arduino, ESP32 etc.) since those things are used in many projects nowadays.
I’m open to receive suggestions about which modules to be added, please tell us in our discussion forum or in our chat!
And don’t forget to update your workspace libraries to get all the new library improvements! Some of the libraries are even entirely new so you might want to install them too.
Credits
Most of these updates were part of the NGI0 Commons grant we receive from NLnet, thanks a lot for their support!

@ubruhin
March 24, 2025
Today we released LibrePCB 1.3.0 with an interactive HTML BOM export, several bugfixes and more! See the full changelog below.
Highlights
Note that this is mainly a bugfix release and most features currently in development will land in the LibrePCB 2.0 release which still takes some time. Nevertheless there are some noteworthy changes in this release.
Interactive HTML BOM (#1485)
Printing out the assembly plan and the BOM for manual PCB assembly and marking the assembled parts line by line is no longer required thanks to a new output job. Instead of a PDF, you’ll get the assembly plan as a HTML file which is interactive — you can sort, filter, search or mark parts as assembled using a web browser. Instead of a paper sheet, you could use your laptop or tablet on your desk while assembling the PCB step by step.
The HTML/CSS/JS core of this feature is from the existing Ineractive HTML BOM project, already well known as a KiCad plugin. In LibrePCB, this is now a built-in feature!
KiCad v9 Compatibility (#1492)
As KiCad v9 was released with some changes in its library file format, we updated our KiCad library importer to support that new file format. Of course older file formats are still supported, and actually their compatibility was even improved too in this release.
Initial Usage of Rust (#1477)
Though not directly relevant for our users, this change is still noteworthy as it highly affects the development of LibrePCB. After more than 10 years of implementing LibrePCB entirely in C++, this release contains the very first code written in the Rust programming language.
The reasoning behind this is explained in the blog post NGI0 Grant for LibrePCB 2.0. While this is not directly visible in the LibrePCB application, users still profit indirectly from potentially higher stability and faster development.
In this release, there are two software modules implemented in Rust: The interactive HTML BOM generator mentioned above, and the library for reading and writing ZIP files.
Changelog
DRC:
-
Report vias as useless if connected on less than 2 layers (#1487)
Credits
This release was part of the NGI0 Commons grant we receive from NLnet, which was a huge help for us to get this work done. We are very thankful for their support.
Also a big thank you to our sponsors and to the community helping us with translations, pull requests, donations and other contributions! 🎉
Code contributors of this release: @ubruhin, @connorslade
Download
The release can be downloaded for all major operating systems from our download page.
If you like LibrePCB, please consider making a small
donation to support the
ongoing development.
Thank you!

@ubruhin
December 1, 2024

@ubruhin
October 17, 2024

@ubruhin
August 23, 2024

@ubruhin
August 8, 2024

@ubruhin
April 3, 2024
December 30, 2023
September 24, 2023
August 21, 2023
May 15, 2023
April 13, 2023
October 3, 2022
September 8, 2022
January 28, 2022
November 2, 2021
October 4, 2020
May 3, 2020
January 3, 2020
November 30, 2019
July 14, 2019
April 21, 2019
March 20, 2019
December 3, 2018
November 25, 2018
November 4, 2018
October 21, 2018
September 15, 2018
April 21, 2018
January 2, 2018
October 30, 2017
September 13, 2017