It’s like Star Wars versus Star Trek at a SciFi convention, or asking creamy or chunky at the National Peanut Butter Appreciation Festival. (OK, we made that one up.) When Jenny reviewed the 1.0 version of LibrePCB, it opened the floodgates. Only on Hackaday!
Of course it makes sense that in a community of hardware hackers, folks who are not unfamiliar with the fine art and engineering of designing their own PCBs, have their favorite tools. Let’s face it, all PCB design software is idiosyncratic, and takes some learning. But the more fluent you are with your tool of choice, the more effort you have invested in mastering it, leading to something like the sunk-cost phenomenon: because you’ve put so much into it, you can’t think of leaving it.
The beauty of open-source software tools is that there’s almost nothing, aside from your own psychology, stopping you from picking up another PCB program, kicking the proverbial tires with a simple design, and seeing how it works for you. That’s what Jenny did here, and what she’s encouraged me to do. Whether it’s beginner-friendly Fritzing (also recently in version 1.0), upstarts LibrePCB or Horizon EDA, heavyweight champion KiCAD, or the loose-knit conglomeration of tools in coralEDA, you have enough choices that something is going to fit your PCB hand like a glove.
I certainly wouldn’t risk a swap up to a new tool on something super complicated, or something with a tight deadline, but why not start up a fun project to test it out? Maybe follow Tom Nardi’s lead and make a Simple Add-on, for a badge or just as a blinky to put on your desk? Don’t be afraid to try something new!
Is it only me, but both Windows Defender and Kaspersky prevent me from installing it, mentionning a malware ?
Fritzing could have ruled the world. If Mutti (a.k.a. Angela Merkel) gave them money (via research funding at Fachhochschule Potsdam). Could have been a nice project for years, students and phds driving it. Why, oh why, sink such a nice project.
The other emperor could have been Diptrace. Writing the year 2014, I was clueless picking around in PCB design and, as we all know, only knew my boat, hammer and welding torch. Back then, I tried to make a footprint in Kicad. Wow, what a hassle. Diptrace did the full Monty instantly. Sadly, their website always had the vibe of “we will close any day”.
Today Kicad is clearly the winner for me. Ok, the GUI feels cumbersome and way outdated (Give me a GUI that can change the size of the buttons), some workflows are surprising archaic and project management is limited. But hey, after lots of pain it works great.
I am just happy with KiCad. Now that it is getting a lot more functionality, it is loosing a bit of it’s simplicity. I would not know why it would be “Wow what a hassle” to design a footprint in KiCad. One of the reasons I started using KiCad in the first place was because the editors for schematic symbols and footprints were quite good. And that was some 8 years ago.
I also don’t feel the GUI as “cumbersome and way outdated”. Sure, KiCad does not have a very configurable GUI yet (but movable toolbars and such are planned, give it one or two years) but I find the GUI functional and like the absence of the extra clutter. It is possible to change button size in the configuration though. KiCad has scaling for icons in “Preferences / Common”.
As I wrote, I’m happy with KiCad. It’s a very capable PCB design program, and in the last few years I’ve seen it grow to have more then I need. It is also extremely successful for an Open Source program. I’ve seen many which receive only minimal updates, or get forked into something similar every handful of years. KiCad has an active community (both the forum and programmers) There are over 200 commits made on gitlab to KiCad’s source code each month. It is also very common to see (small) bugs getting fixed within a few hours after reporting them on gitlab.
But KiCad is not all roses and sunshine. The rapid growth of KiCad has also lead to numerous small (and some big) bugs. Especially with KiCad V7 it took some while to get reasonably stable after it’s release, and it still has too many small usability issues to my liking, but those are small, (and if reported, usually get fixed quickly). KiCad also has some big changes coming still, such as a big refactoring of the schematic editor and GUI to make scripting in the schematic possible and a more “modern” GUI with detachable toolbars and such. I expect changes to become more incremental and less disruptive (introducing bugs) after that.
My pet peeve: if I simply click a part and move it, all connection disconnect. I need a special command and sometime not so easy fencing to move a part with connections kept. Why?
Another thing: parts grouping. Why can’t I group parts in a schematic? It is a standard feature all around in software… Just copy the style from Powerpoint…
It is just outdated. And sure, I can get used to the cumbersome GUI and find it great. My grand-grandfather was totally happy with paired screws and nuts only.
DipTrace still is my favorite. There are dozens of us! Dozens!
I love DipTrace. Big library of components, with matched patterns, so I don’t have to do that like some primitive designer of the past. And both component and pattern editors are simple to use and very versatile.
I tried Eagle, and hated it, I tried KiCAD, and didn’t like it at all. I even tried Proteus and Altium Designer – too big for my needs. At least in Proteus I did a few PCBs. DipTrace is the easiest one to use, and powerful enough to do more complex designs. And I love those curvy traces for retro aesthetics.
“Let’s face it, all PCB design software is idiosyncratic”
As a primarily s/w person who dabbles in h/w, I have often wondered why this is.
In a conventional GUI world, to select something you click on it. To move it you click and drag. To delete it you click on it to select it and press Delete. To say rotate it you right click on it, which selects it but also brings up a context menu on which will be “rotate” along with other things you can do to it.
You don’t hover the mouse pointer over it and press M for move or R for rotate etc.
I realise CAD is complex but whever I’ve used a CAD package I’ve been left wondering why it can’t work in a way that is more consistent with other GUI applications.
To which tools are you referring?
The “Hover + Keyboard hotkey” is maybe a bit unique to KiCad, and I find it very nice to get things done faster and with less effort, but KiCad also supports the “more traditional” way of “Click to select and action”.
How is using two hands to click on something “faster and less effort” than using one?
Not sure if joking… But, using two hands doubles the bandwidth between the operator and machine. It’s like parallel vs serial. Simultaneous mouse and keyboard is faster than mouse, then keyboard.
I’m not saying it’s “easier,” especially if if it’s unfamiliar. But if you’re doing this stuff all day, it’s definitely faster. For normal GUI interactions, one might not do it enough each day to notice the difference. But if you’re spending a significant portion of your manipulating objects in CAD, it’s worth the hassle.
There are other ways to speed up “manipulating objects in CAD” like those weird 6way mouse-controller things. They have been written about here on Hackaday, but I haven’t tried one myself.
FreePCB is pretty close to this ideal. 3D cad CAD is always going to be a little different because normal software is about letting the user do stuff, whereas 3D CAD is more like declarative programming, you’re creating instructions to build an object rather than actually building one, otherwise you would have to figure out for yourself where a hole goes, instead of the software ensuring it is always 35mm from the edge. But still, FreeCAD does a pretty good job of UI, at least by FOSS standards.
You aren’t kidding about the software being idiosyncratic. I use OrCAD for work and since the most recent versions, the PCB editor has become nearly incomprehensible. Stuff that used to be easy is now a nightmare or has been dropped from the software completely. I have taken some OrCAD training and I still have trouble figuring things out with the PCB editor. Schematic capture is first rate, but whoever thought that using Altium’s method of PCB layout needs to have their head examined.
So, why switch tools when you have one you know and can get things done with? Especially when tools are idiosyncratic and not necessarily better. End of discussion for me.
But if I start hearing lots of people saying “KiCAD is so much better than xxx”, then maybe I would investigate KiCAD if I am using xxxx.
Another perspective is the person who is new to all this, eager to get started, and wondering what tool to invest in learning. Here is where we can offer advice. If different tools are merely idiosyncratic and not necessarily better, just flip a coin. Or try to figure out which tool angles towards your tastes.
It is not unlike picking a linux distro. The phrase is “all different, none better”. A good choice here (and with PCB software) is to pick one that others you know are using. Then you have people to talk to and ask questions.
“Why switch tools…”
Elliott, along with it seems many in the tech fields, seem quite fond of pushing the “try everything!” mentality… Some folk wear it as a badge of honor that they “know” twenty different programming languages. But, how many of them really *know* any, or are they just good at searching/reading stack exchange?
“The community” around such things is both a blessing and a curse. My go-to PCB software wasn’t even mentioned here, which, frankly, I’m kinda glad about, because when I need to do another PCB design, all my workflow, custom parts, boards, and workflow will still work just as they did a decade ago. And in the meantime, there’s time for me to learn its innards in case I want to make a change or addition at a pace that suits the multitudes of other such things I also do *besides* PCB design, without worrying that all those months of efforts will get usurped by a new version in a week.
Of course hackaday authors are pushing the “try everything” mentality.
The alternative would be an article like: I have program X and am happy with it, but now I have to write an article on program Y.
Point people seem to keep ignoring: different software/workflows work for different use cases!
For a newbie just trying to get into it, something with minimal friction to installation, setup, AND every step of the way, is best, or will sink a project entirely if the time investment to entry is too high.
Cant tell you how many times I’ve wanted to try something but gave up or went with a quick and dirty solution after a couple hours when I figured it’d take days or weeks to do it the “right way”.
The barrier to entry for someone completely new to use KiCad is really high, tens of hours at least for even a simple thing if you’re not familiar with something comparable like altium. For something more like eagle its more like an afternoon. Yes it doesn’t have as professional a workflow, yes you won’t be designing something huge and complicated but not everyone needs that!
Lot of people ARENT looking for that and all the features that make KiCad work for more professional work just get in the way.
This isn’t a replacement for KiCad (or anything else) if that’s good for your use case. An ADDITIONAL tool, good for DIFFERENT use cases, is a GOOD THING TO HAVE. Maybe you have only a single use case! Good for you, you don’t need it. Then maybe this is good for *someone else* who has *different* needs 😮
I don’t agree with this.
Sure, it’s nice to ave programs that are easy to install and “just work”. But I have had it too many times that as a beginner I did not know where to start, tried some (random) simple program that seemed to work and was happy with it for about a few weeks. And then I found out a month later that the program is too limited so I have to drop it and go search for another program. As a result, most of the time invested in that program is wasted and it also orphans the project(s) I have already done in that first program.
I also wonder why you write it takes “tens of hours” to get a first (simple) project done in KiCad. I did my first simple KiCad project in a single afternoon. But even if it takes a week to get proficient enough in a program to use it without constantly referencing manuals, that is nothing compared with those 40+ years you can continue using it afterward. How much effort did it take to learn to read and write or even to walk? Those things take many months to learn and you keep on using those skills long after you’ve even forgotten how much effort it took to learn them.
Respectfully, big disagree.
I have no beef on the PCB tool thing, but changing tools has a huge cost. Even trying out a new tool has a big cost. What’s that?
Time – giving a new tool a play requires several hours minimum. Giving it a fair try for a project probably means using it for quite a bit more. That’s fine if you’re a full-time HaD writer, but for people using a tool for a day job, that’s a significant hit to productivity, and for people doing something for a hobby, that’s a chunk of your hobby time spent playing with a new tool instead of creating.
Many of us have significantly limited time due to work, family, and community commitments.
Memory – each new tool has a different interface, shortcuts, etc. Most of us already have 100s of shortcuts memorised, but each tool will have new ones, and there is some limit to what we can remember. Trying new tools will cut into our memory for other stuff to a degree.
This is why I love tools like sublime text that let me use muscle-memory shortcuts across so many languages and even note-taking, rather than having a different IDE for each.
Quality – if you try a new tool for a project, there’s likely a detrimental impact on quality whilst you learn to use the new tool properly. If you switch, it likely takes time to bring your quality back to what it was.
Emotional investment – we all have some limit to it, and trying new stuff eats up energy, particularly as you get older.
So yeah, I’ve no problem picking up a new tool, but it better be worthwhile.
That’s why I’m happy to pay for good tools, and why I value HaD writers and others trying and reviewing stuff.
That’s also why the OSS cry “you can fork it and add missing feature” doesn’t cut it for me. Sometimes that’s great, but 9 times out of 10 I want to use a tool not make one – Sure, I could fork it, but when I’ve got an hour a week to do [project], spending several months of that time fixing a tool rather than doing the project is a huge cost.
“That’s fine if you’re a full-time HaD writer,” Ouch! :)
But you’re not wrong. You don’t want to swap up big toolchains like this without a good reason, even if that’s not the cost.
Increasingly I am thinking… “Damn the Unix Philosophy, a combined multi-purpose CAD/EDA package would be great”.
I’ve wanted something with the simulation capabilities of LTSpice (yah, I know that’s old now and there is a new replacement, I’m a bit behind) and the PCB design capabilities of KiCAD.
I know a lot of people have no problem at all with entering the schematic twice for different phases of development but that just sounds like tedium and also a source of errors to me.
But how about designing a case? Wouldn’t it be great if one could export a 3d shape of the stuffed PCB from the PCB designer into whatever they use to design the box?
I don’t know. Maybe this already exists. I’m not too interested if it’s an expensive product marketed to professionals though. I’m looking for something meant for someone with a hobby, a 3d printer and maybe a small desktop CNC router for the PCB. Also not interested in some closed source product that will be the next Eagle, sucking in hobbyists only to switch to a subscription later screwing them.
After about 10 years of just soldering together everything on the spot I decided I might wanna design some pcb’s again. And after reading Jenny’s post I decided LibrePCB might be a good tool considering Eagle was the last thing I touched. And I must say, it’s quite promising so far! It’s pretty intuitive in its use and I don’t really miss anything functionally so far.
The only thing I do miss is a well-stocked library. This will of course grow if more people use it, but right now I’m even missing some pretty basic components(or did everyone just stop using 7805s in the last 10 years?).
Luckily it seems like creating new components isn’t too hard, so for now I’ll stick with LibrePCB and build my own library of components I often use.
So yeah, if you are already using a tool serving all your needs, I’m not sure LibrePCB is really that sensible(at least, not yet). But I’m positively surprised that I managed to draw up a circuit within an hour of installation without even taking a glance at a tutorial and that makes using it for my hobby projects much more joyful.