Hacker News new | comments | show | ask | jobs | submit login
LibrePCB: First stable release published (librepcb.org)
235 points by dbrgn 13 days ago | hide | past | web | favorite | 51 comments

"All files of LibrePCB projects and libraries are highly optimized for version control systems"

Thank you. I do check Eagle files into version control so that I can annotate project progress, but I can't help but scrutinize the line-by-line diffs before submitting, and it's exasperating because they're so noisy.

Maybe I missed it but why would anyone use this over KiCad?

    > would anyone use this over KiCad?
It appears the key reason is how parts are managed (the part libraries).

I use KiCad and mostly like it-- it can do everything. But the biggest problem [with KiCad] is there doesn't seem to be a coherent/opinionated workflow about how you manage parts (part libraries).

By "managing parts" I mean the associations in your "project" between the schematic symbol, its footprint, its 3D model, and perhaps even datasheet, spice and vendor info. Keeping this stuff straight is a major pain in the ass and it's stressful to add new parts.

These are hard problems and people have wildly different ideas about what's correct. The fact that LibrePCB is signalling improvements in these areas makes me want to give it a spin.

There does seem to be some initiatives lately to make this stuff easier (eg SnapEDA, UltraLibrarian, EE Concierge, and others). But to really make it work, EDA vendors need to standardize together or find a way to work with "everything".

It appears the key reason is how parts are managed (the part libraries).

Yes. KiCAD in general isn't bad, but the part management tools in KiCAD have very strange user interfaces. Footprints are in directories while schematic symbols are in archive-like files (or is the the other way around). The user interface reflects this, which is confusing.

KiCAD, like most open source, has a large number of annoyance-level problems. Schematic capture isn't bad, but it's strange in some places. For example, the dot that shows a connection between two crossing wires is a separate object which can survive deletion of the wires. Most schematic capture programs, such as LTSpice, do better.

There are really two PC layout programs, one using OpenGL and one using some other interface. Each has some features the other doesn't, and you have to switch modes between them.

There's an auto-router, and due to some IP dispute it's not fully integrated. The auto-router isn't bad if your board isn't extremely tight.

> For example, the dot that shows a connection between two crossing wires is a separate object which can survive deletion of the wires

This has changed in the newest version, I think. Library management has also been updated somewhat.

I used to end up not bothering with making new components. Luckily, for my projects, it was mostly ICs that were missing. So I'd use one of the generic n-pin components (connecters/pin headers), add short wires and labels to all the pins while looking at the datasheet, and then give it the appropriate IC footprint when moving to PCBnew. Smells but works.

Which mirrors my own kicad workflow, but part management difficulties are the main reason I would never recommend it for professional use. Especially with a team, I just can't imagine trying to keep this workflow coherent. Yes, altium is tremendously expensive, but I just can't see kicad being a viable replacement.

They really need to focus on this issue, and make it a main focus over other features. If I haven't used kicad in over a month, I have to look up how to create parts again, and can never remember since schema and pcbnew have such different workflows. I am 100% fine with schematic symbols being divorced from footprints, in fact I like that better, but the workflow to create them should match up.

How much does Altium cost per seat?

All EDA (and more generally, all CAD) software seems weird to use and requires significant time to "get used to it". E.g. Eagle (not really EDA in the grander sense, mostly just a drawing program) doesn't have many regular keyboard shortcuts, instead you type (heavily abbreviated) commands into its main command line. This is quite productive ... after a few weeks.

Try one of the Altium tools some time (they have a free one now afaik). Those are more "Photoshop weird" (any really complex software takes some time to grok) rather than "AutoCAD in 1995 weird" (a DOS ui dragged kicking and screaming into Windows).

> All EDA (and more generally, all CAD) software seems weird to use and requires significant time to "get used to it".

It boils down to the fact that the number of users of these programs is small.

In a CAD program, there are enough features that some feature has exactly one, or worse, zero users.

This means that the most used features gets streamlined over time, but everything else remains "quirky".

As a newb to PCB design this is dead on. I had to resort to using Circuitmaker (free Altium with a 2 private project limit) to feel confident doing my first few boards.

Circuitmaker uses octopart libraries and maintains its own footprint libraries. When any user creates a footprint in a public project it becomes part of the public (git-based) library for the part.

I get it that some designers want to do all their own footprints and make everything their own, but for someone getting ramped up having easily accessible parts libraries dramatically reduces the amount of tangential knowledge one must have to make usable PCBs.

I'm definitely going to try this out. I am a big fan of Circuitmaker but obviously using something that is 100% open source is a big benefit.

There's an ongoing debate over whether to go the Kicad approach with a unified footprint library or Eagle where every part has its own footprint/symbol pair.

The Kicad approach makes it easy to add new parts with known footprints but you still need to make them for non standard parts. Also if a component has a kind of standard footprint, but needs eg bigger pads for some reason, you also need to figure that out.

Eagle is a faff be user everything has to either be copied from another library, or you need to make it yourself. But once thaf library is done, it's pretty portable. I'm an Eagle user and am used to it; I can make parts fairly quickly now.

There are also parametric component generators (library.io) which takes a lot of the stress out of it.

For me, the big problem isn't the underlying systems, but the UI on top of them. I've had a board where identical parts needed different footprints, and the kicad system made that very easy to manage. However, the UI & workflow is far too different between creating symbols and footprints, making it harder to learn and easier to forget.

I second this. KiCad is a great software, but it's workflow between schematic and PCB layout is confusing and its parts management is a mess. Hopefully the ideas of this project will make their way into KiCad.

It's always annoyed me that in KiCad, when associating all schematics to footprints as a list, there's no footprint preview by default. Yet when individually associating then the preview does come up.

The author of librepcb answered this on reddit: https://www.reddit.com/r/PrintedCircuitBoard/comments/9q4j1n...

There's also a comparison page: https://librepcb.org/compare/

Urban just published a page which compares some aspects of LibrePCB to KiCAD and Eagle: https://librepcb.org/compare/

For one, Kicad is extremely unintuitive.

kicad is gimp of pcb packages.

This looks great! However I had to click on "Docs" to actually find out what it is. If you're going to be linking to the homepage perhaps including the information from the "About" section there would help your cause. Just a friendly suggestion. Keep up the good work! :)

This is a link to a blog post, the homepage (accessible via "Home" link) has all the info you want: https://librepcb.org/.

Though yes, I was initially confused by the post layout too.

Yes, the website can certainly be improved. A new one is planned :)

A thing that I really miss in Kicad is the ability to quickly add zero-ohm resistors when editing the PCB layout while not modifying the schematic. Indeed, when you do your own boards in house, it's really convenient to add a zero-ohm smd resistor for jumping over a trace, without having the need to go and edit the schematic..

You can just create a PCB with one additional layer and use that layer (top one for example if you make single-sided pcbs at home) for jumpers, then to add a jumper while routing a trace, switch layers, which will add a through-hole via, trace your jumper, then jump back to the initial layer through another via. When etching the board you omit that layer and later solder wires where the traces were.

It's quite flexible as you can add jumpers of any length and orientation that way, the only inconvenient is that jumpers aren't marked on the silkscreen but it's fine for home-made projects.

This is the correct-ish way if you don't plan to actually populate zero-ohm resistors from a BOM.

But then your BOM, PCB, and schematic wouldn't match. Somewhat like automatic code formatting, disallowing this sort of divergence seems more a feature than a misfeature to me. Even for in-house use.

Some bit of my head is a zero ohm resistor resistor. Every time I read 'zero ohm resistor', it goes 'nope nope nope' at me.

It's zero in the number of significant figures used by the test equipment.

That's a pity because then you can't use that resistor to measure current by a measurement of a voltage difference.

They make high-precision low-resistance resistors specifically for current measurement. Your standard cheapo zero-ohm resistor though is more for creating optional connections that you can configure at assembly time.

Think of it as an "epsilon ohm resistor".

My 1/4W THT zero ohm resistors are about 0.025 ohms according to my bench meter. In theory, that implies a 400 amp rating... not going to try that anytime soon :)

Heh, I like that. I tend to think of them as a surface mount jumper.

Why not? They're great as test points and you can pull them off and place a resistor or capacitor in their place.

I assume it's the paradox of a resistor that doesn't resist.

Probably because the operating temperature is about 0 Kelvin.

I guess it doesn't have to go quite that low, depending on what you make it out of.

Though you have got me wondering whether anyone has put a crumb of high temp superconductor in a smd resistor package yet and if so, for what purpose.

"High temperature" is relative, they still have to be cryogenically cooled to temperatures around -100C. So no SMD superconductors yet.

That is still a relatively accessible temperature, given that liquid nitrogen is about the same price as clean water.

Off the top of my head, I could think of one use, which would be to trigger a transistor to switch on and off some high power superconducting circuit when the small bit of superconductor gets cold enough to start superconducting.

There's also an "Intro to LibrePCB" talk recording from FOSDEM this year: https://www.youtube.com/watch?v=vu-h5y6tK34 It explains some of the core design concepts and the rationale for them.

In case you don't have time to watch the video, here are the slides: https://archive.fosdem.org/2018/schedule/event/cad_librepcb/...

This looks really great! Congrats to the author on reaching this milestone. The library management seems like a great step forward!

I didn't see anything with a cursory glance but are they considering allowing Eagle libraries to be used? This would be great but something I would assume that Autodesk would hate.

The library format concepts are quite different, so using them directly probably won't be possible. But there is a Eagle converter somewhere in the sourcecode (although it's not exactly userfriendly) :)

But creating or generating own high-quality libraries is surely the better way forward. See https://github.com/LibrePCB/librepcb-parts-generator

"libssl_conf.so: cannot open shared object file: No such file or directory"

Should anyone encounter this error with the app closing when attempting to open the library manager, it can be solved through a symbolic link in the local application lib path. Assuming LibrePCB is installed in ~/LibrePCB:

$ cd ~/LibrePCB/stable/lib

$ ln -s libssl.so.1.0.0 libssl_conf.so


AutoTrax/DEX is worth a try..


Its what i use, but i cannot give a comparison with others as i have not used them in years.

The paid version is obviously better than the free version.

I started learning KiCad a few days ago.

Should I jump ship to this or is this something I should keep an eye on?

Learn KiCAD for now. Give this new thing a few years to mature.

Kicad is not easy to use. I would recommend designspark PCB (free but not open source) for now if you just want to make PCBs. It still has some crazy quirks but it gets most things right (unlike Eagle).

I don't know. I recall a friend telling me he had somewhat of a bad experience in the past with Designspark. He said something about a lot of inconsistent crashing and if he didn't save it once in a while, he'll lose quite a bit of progress on his board.

However, that was over five years ago and was on a Windows machine.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact