I was picking an EDA tool for the first time. I initially chose KiCAD, but I soon uninstalled it because of a monstrous bug in the UI - I deplore stuff that has not been tested, even in the simplest ways, before release. I hope you are investing time and resources in CI and testing tools.
Then I read about LibrePCB and decided to try it.
I’m reluctant to send negative feedback, because I respect the enormous effort that is going into the Project, and I wish you well. I generally like the UI which seems attractive and modern in concept. I also like your dedication to Open Standards for representing the library, etc.
At the same time, I think you need to know why I have decided not to use LibrePCB at this time (mid 2023).
There are two main areas which fall short:
The library. I had to create most of the objects that I wanted to use in my first project, which was only a schematic, not even a PCB. It is not clear why you cannot just (“just” - I know, always easier said than done) transcode the libraries from (say) KiCAD, which is, after all, open source. It would be worth solving the library shortfall by putting time into this - “features” should come after “necessities”.
Basic UI functions. A major learning mode of mine is right-clicking - “What can I do with this thing?” There is no right-click functionality to speak of (if any). There’s no in-app way to learn on-the-fly. Even basic, “windows-standard” stuff like cut and paste (right-click, Ctrl-C, / Ctrl-V) is missing from the schematic editor.
You have said on the blog that you are nearly ready for a V1 release. On the basis of my experience, I doubt that. All of the fundamentals must in place before you can call it a product.
Anyway, my apologies if I have put any noses out of joint - not my intention. I’m going back to KiCAD for (hopefully) a bug-fixed version. I’ll check in on LibrePCB at a later time.
Thanks for your feedback @NeilH! Let me share my thoughts about it:
I totally agree missing library elements are annoying and time consuming. But IMHO, low quality libraries are even worse. In my experience with other tools, there are more extensive libraries but their quality is so bad that sooner or later you’ll end up creating your own libraries anyway. My goal with LibrePCB is to provide high quality libraries, which you can trust they are correct so not even a quick validation is needed on user side. But of course this means that extending the libraries takes a long time (also because automatic conversion of e.g. KiCad libraries is not an option).
However, it would probably make sense to provide a KiCad library import (just like the existing Eagle import) to allow users quickly extending their own libraries without affecting the quality of official libraries.
In addition, I explicitly decided to ship LibrePCB libraries separately from the application (e.g. in contrast to KiCad). This gives you 100% control over the libraries, and it allows to ship new library elements immediately (no need to wait for the next release).
Hm here I agree only partially. There are some objects which don’t provide a context menu. But most objects do, including cut/copy (ok, paste is not in a context menu):
So I’m not sure what you mean exactly. But regarding in-app learning I agree - I started to implement statusbar help text on mouse hover, but the coverage is still very low.
Two remarks about that:
The next release will bring a lot of improvements compared to the current stable release. So you should not judge v1.0 by testing v0.1.7
The goal of v1.0 is to provide all the features required for typical PCB projects, so the version number basically expresses “ready for productive use”. I plan to focus on usability/UI improvements right after the v1.0 release (i.e. for v1.1) - I have tons of improvement ideas, but it’s a long way to go…
I actually wrote a script that would convert Kicad libraries into LibrePCB but ran into a problem. To make a OR gate in Kicad you use three arcs and two lines. In librePCB you use a 5 sided polygon and turn three of those sides into arcs. LibrePCB can do an internal fill on this but Kicad cannot. Kicad has to then add an 12 sided polygon fitted inside the gate to do the fill. Converting that to librePCB works but it is really ugly. Converting a Kicad part to LibrePCB needs artificial intelligence
I worry that insisting on getting everything perfect the first time is not serving our users. We need to grow the libraries and when there are mistakes we need to fix them.
I just want to append to the statement in my last post that even if we accept library contributions without reviews, the problem is not solved by far. Extending the libraries is a huge task and requires many active contributors. But LibrePCB is still relatively young, with a rather small user base, so it’s clear that the number of contributions is rather small as well. For a project like KiCad, with hundrets of times of more users than LibrePCB, libraries will “automatically” grow much faster.
In addition, automatic conversion of e.g. KiCad libraries is not as trivial as it might sound. The library concepts are too different, requiring lots of manual effort even if there’s a conversion tool.
So in the end, we all need to be patient until the user base of LibrePCB grows and LibrePCB is more mature. Then we can move the focus from developing LibrePCB into library maintenance to help solving the problem.
I hope you understand that due to these reasons, I simply cannot solve the problem in a short time, no matter how motivated I am to do so.
Dear @ubruhin. Message received and understood. I really shouldn’t have even suggested a transcoding of external libraries because (deep down) I know how hard (or impossible) that may be. Getting to critical mass is a goal to be pursued, not assumed - I really hope you make it.
I have been a developer since before we had computers, and now recently retired, I have used most of the available CAD tools. Most of my career I used Protel/Altium, but it is too expensive for most small users.
Even in Altium I found it necessary to regularly create or modify libraries. It is just a normal part of the process for a professional designer. You eventually end up with things just as you need them to be. To expect an instant result without any investment in the process is unrealistic. The developer can not anticipate all of your own unique requirements and design habits, and if they tried, you would probably complain that they were pushing you towards their preferences.
I welcome new tools like LibrePCB, particularly with such an easy learning curve. Most people only want to make a PCB, the huge array of extra tools pushed into the mix on most products, does not help at all.