Hacker News new | past | comments | ask | show | jobs | submit login
LibrePCB (librepcb.org)
453 points by WallyFunk 65 days ago | hide | past | favorite | 183 comments

The usual questions:

- How comprehensive is the part library?

- Is there auto-routing? How good is it?

- "Import formats: DXF". For what, the board outline? DXF is for mechanical CAD. You can't import a board layout or schematic that way.

- "Export formats: PDF, SVG, pixmap, BOM, pick&place, Gerber/Excellon". None of which have enough info for import into another EDA program. This thing is very self-contained, which is unusual for an open source program.

This seems to be is a marketing tool for some board maker. "At this time, you can choose either AISLER or PCBWay as the PCB manufacturer. With every order you start with LibrePCB Fab (or direct .lppz upload on the AISLER website), they will make a 'donation' to the LibrePCB project."

> - How comprehensive is the part library?

It wouldn’t make sense to add yet another giant parts library to the world of PCB design. Make it easy to import from the major part and footprint libraries found linked from DigiKey.

Don’t try to reinvent the wheel.

> - Is there auto-routing? How good is it?

Autorouting is of very limited value for only certain narrow use cases. Even the high dollar CAD packages won’t route your board for you in a reasonably good way, but they can be useful for routing length-matched buses and such after the user has set up all the constraints properly.

> - "Import formats: DXF". For what, the board outline? DXF is for mechanical CAD. You can't import a board layout or schematic that way.

DXF import is a very common operation in PCB layout, not just mechanical CAD. It’s used all the time to pull in board outlines, important silkscreen items, and other features.

These criticisms are really a stretch for a project like this that is just getting started. If you’re expecting a feature set identical to four and five-figure CAD programs that have been developed for decades then, yeah, you’re going to be disappointed. Can we not just appreciate that this project is ramping up and providing more options?

Autorouting is of very limited value for only certain narrow use cases. Even the high dollar CAD packages won’t route your board for you in a reasonably good way, but they can be useful for routing length-matched buses and such after the user has set up all the constraints properly.

I think you have forgotten when you were a beginner.

Autorouting is the most difficult when you are a beginner, because you don't know how to define the constraints and don't know what results are acceptable. I'd even argue that routing is the easy part of PCB design. Figuring out the circuit is hardest, specifying design rules is confusing, determining the component placement is tough, and on the easy end, drawing the schematic and routing the PCB are roughly on par. Routing is the part at the end where you can relax and enjoy yourself while you untangle the ratsnest.

As a beginner, I find autorouting entirely unnecessary for the level of complexity I work with. Routing is pretty much the simplest part of the process to understand and somewhere between a fun puzzle and a tedious but simple chore depending on the specific design. I'm pretty sure there used to be a very popular mobile game that, while visually completely different, had the exact kind of "mechanics" as manually placing traces on a PCB does.

What would be helpful, however, are some better checking tools. Some mistakes, like running a trace right through the bottom side of a through-hole and creating a short that wasn't there on the schematic, seem very easy to detect and warn the user about before they end up spending hours cutting traces and running bodge wires.

Some of the softwares have live DRC, so it will either prvent you from doing it or mark the nets as violating design rules.

I have not checked if kicad or Librepcb have it, but PADS and Altium do.

KiCad wont let you do this as part of the design rules. The DRC will also flag the error.

Yep. LibrePCB has it too (both DRC and ERC).

"Can't live without Electricity" rings a bell there for me.

Have you? I routed my first board a year or two ago and found pretty quickly that autorouters suck even at simple tasks. The only way to get usable results is to simplify with smaller autoroute jobs and better placement, at which point you could easily do it by hand anyway.

> simplify with […] better placement

Have been designing PCBs off and on for 20 years. This is what I use the autorouter for. I put together a placement that has logical clustering and flow to it and try running the autorouter. If it has a really hard time with lots of vias, I focus on tuning the placement in that area until it can get a relatively ok autoroute. Then I tear up the traces and manually route. I figure “I can do cleaner routing than the autorouter, but if it thinks the best it can do is 20 vias on this group of traces I don’t stand a chance”

Why is auto routing a PCB so different from IC design? It's not reasonable to expect humans to route a full IC with hundreds of thousands of standard cells, so constraints are defined and the auto router is sicced on the mess. Do PCBs just fall in the range where designs are still simple enough for humans to do by hand, and due to board size limits, will not go beyond that range?

It's in large part the complexity of the constraints: PCBs generally contain a heterogeneous mix of parts with different concerns. Digital portions of ICs are a lot more regular, especially with standard cells. If you were to make old-school PCB-level digital circuits, the autorouter could probably help a lot with that (and indeed it was not uncommon to see it done that way). Likewise, analog portions of ICs are still generally laid out by hand, or have ad-hoc optimisers written for them.

But for the average PCB, which has mix of switch-mode power, analog, high-speed digital, and low-speed digital, it takes longer to specify the constraints so the autorouter can do a good job, let alone wait for it to hopefully complete. So it's rarely used outside of particularly tedious but regular tasks, like hooking up a wide memory bus.

(I do think this is something where AI could make a big improvement. If it could infer most of the constraints from the circuit then it would help with saving time. The challenge then becomes marrying the ML-generated output with the hard constraints effectively)

Autorouting is least useful for beginners because they're working on small projects that can easily and quickly be routed by hand (with much better results).

> How comprehensive is the part library?

A few thousand parts total, so: Still quite small.

> Is there auto-routing?

No, just ratsnest. The utility of autorouting was already discussed in sibling comments.

> "Import formats: DXF". For what, the board outline?

It's mostly useful for the documentation layer or the Board outline. For example when creating a Raspberry Pi HAT, or an Arduino shield. It can also be used to import logos for silkscreen, or the like.

> None of which have enough info for import into another EDA program.

Can you give a concrete example of the use case you have in mind?

> This seems to be is a marketing tool for some board maker.

It is not, and it becomes obvious if you spend even just a few minutes reading through the website. It's mostly one developer, who spent almost 10 years developing the software in his free time, and who now tries to work on it full-time. Source of income are donations, some EU funds and revenue sharing of some fabs.

Along those lines: Does anyone know what the best way to contribute to these projects is, among those offered?

I will go to extra effort to avoid fees being imposed on the recipient of the money.

I assume you're talking about https://librepcb.org/donate/? Probably GitHub Sponsors (no fees at all) or OpenCollective (fees depend on the payment method, a "platform tip" is optional).

Thanks! That is what I meant, and also for future reference on other projects.

> Is there auto-routing? How good is it?

Why do people always ask for this? It's a feature only newbies use, and once a project becomes even slightly less than trivial, the best auto-routing tools fall face down. There's an awful lot more to PCB design than just physically fitting the components on the board.

> Why do people always ask for this? It's a feature only newbies use

Because when you market a tool as "Easy to learn", "from beginners to experts", and "For everyone", then I would expect some decent newbie-friendly features.

Honestly as a non-professional who makes PCBs that are almost exclusively "connect this pin to this other pin over here", this kind of comment comes of as a bit unnecessarily condescending in a "I don't need this feature, so nobody else should need it either" type way.

> Honestly as a non-professional who makes PCBs that are almost exclusively "connect this pin to this other pin over here", this kind of comment comes of as a bit unnecessarily condescending in a "I don't need this feature, so nobody else should need it either" type way.

It’s not meant to be condescending. Virtually everyone who starts doing PCBs goes through a phase where they think that it must be “easy” to press a button and get everything laid out and connected. Countless developers have tried to create software to do that over the years.

Maybe some day it will come to fruition, but the reality is that autorouting just isn’t very useful for setting up entire boards.

I think beginners get confused because they think the schematic connections contain all of the information needed to properly route a real board. Then you get into the real world and realize that you need to select connector locations in a way that make sense, place capacitors to minimize loop area, orient components to keep parasitics minimized on important nodes, make traces bigger where you need high current or better heat dissipation, and so on.

Which is why it’s not condescending to say that autorouting/autoplacement isn’t useful. It’s just a reality of making PCBs. You have to do a lot of manual decision making at layout time that isn’t easily automated away.

I have used autorouters for certain buses, but I have to set up the constraints in detail and steer the routing myself still. There is no autorouting/autoplacement that will make good boards for you, even though everyone goes through a phase where they assume it must exist.

I don't think that's a fair position to take. PCB design is complex - there are very few complex tasks that can be whittled down to a single click of a button with good results.

Take software for example - newbies can and do write code, but it's rarely good or error-free. Codeless solutions have appeared - but there's good reasons even those aren't used often.

Any auto-routing feature is going to appeal to absolute beginners, and few if anyone else. So, we're asking a FOSS project to spend a tremendous amount of time building in a good-enough auto-routing feature that only a small portion of their audience will ever actually use, or use more than once.

If your board is simple enough for auto-routing to provide value to you - then I would assert your board is simple enough for you to spend 30 minutes doing the layout yourself.

Gotta say your comment is either from the point of view of a subject matter expert who's forgotten what it's like for newbies or hobbyists, or someone who's just condescending. PCB design is complex, but the kind of boards a newbie or hobbyist is likely to design using a fresh tool like this wouldn't be. Hell, most signals under a few MHz are quite tolerant of shitty routing and would be just fine.

I worked with an RF engineer who'd been in the field since the 70s, and he'd always use the auto-router for anything "slow". If it was "digital dc" or digital logic or under a MHz then it was auto-routed because he didn't have time for that. Anything critical that carried RF or drove a reference was hand-routed first then anything left would get the auto-routing treatment. And this was in a radio astronomy observatory!

I disagree. Learning the tools and skills to do a task is the default assumption for anything - be it riding a bike or building a SaaS.

If you cannot commit a few minutes to learn how to route correctly, then you really are just "hoping" for something magical to work.

Would you take the same position in software? Almost certainly not - because it is complex.

Sure, there's plenty of no-code or low-code platforms out there - but why are they not more popular? Because they universally suck and their target user quickly "graduates" into real coding.

People asking/demanding auto-routers are asking a FOSS project to commit a lot of time and resources (because it's not trivial to implement!) to a feature a very small subset of their userbase will ever use, and will also be the most negatively impacted by said tool when it fails them without them realizing.

Seriously, if your board layout can be done by an auto-router then it is a trivial board and you should spend a few minutes learning the basics. There is nothing but upside in doing so.

> Would you take the same position in software? Almost certainly not - because it is complex.

Why not?

> Sure, there's plenty of no-code or low-code platforms out there - but why are they not more popular?

I would compare software with auto routing and without more to Python with C situation. Auto routing is more like garbage collector to me. Should we discourage people from programming in Python just because for hobbyist C or C++ might too hardcore? It's not that they have to be professional developers - why not let them learn how to write even simple python script that help them processing some text and do simple automation? It's not that everyone need or want to write operating system.

After all today python is the most popular programming language even though it mostly started being used in education or basic scripting. Should we also forbid people using ChatGPT to help with programming for doing some creative coding? Let them have some fun.

I think this comment made a lot more sense in a world without ChatGPT and Copilot - the popularity of those things are off the charts!

ChatGPT or Copilot cannot debug your hardware design.

Unlike software, all the "features" of a component are not readily available to a tool like that. Maybe one day they will be, but we're very far away from that. No two component manufacturers do anything the same...

Right, but ChatGPT cannot debug your software for you either, not without a lot of work. Traditional autorouting is connecting pins - similar to how ChatGPT glues together software components.

Its not the connection of pins that makes PCBs so hard.

Its the random creation of antenna that suddenly throws your electrons off the board and suddenly causing nearby traces (to also turn into antenna) to get crosstalk leading to failure. Or throwing your electrons off the board and failing EMI regulations.

With 1ns rise/fall times on typical microcontrollers (even a 4MHz ATMega328 / Arduino), an antenna can be inadvertently created with just a 75mm trace. With a faster chip, you could have antenna at 25mm or even shorter traces.


PCB board design today is about understanding the physical attributes of the PCB: how the stackup causes your board to act like a capacitor (and therefore a source of voltage when the bulk / decoupling capacitors run out of energy). Seriously, this is called "PDN" or power-distribution network. You turn Layer2 into a ground-plane and add a plane to Layer3, calculate the dielectric thickness and estimate the amount of latent capacitance you get between a 30mm^2 ground vs power plane seperated by 0.1mm of dielectric.

And not only do you calculate this, you *take advantage of it* to reduce high-frequency (ie: 1GHz+) power-delivery issues.

Which could happen as low as ~100MHz in practice, because its more about rise/fall times than it is about the actual clock speeds.


There are two kinds of PCB designers. Those who know that they're designing an antenna... and those who do not know they're designing an antenna. The PCB itself is an antenna and you need to design it in a very peculiar manner to minimize radiation. You can't just guess-and-check this (I mean, I guess with enough time/money you can guess/check... but ideally you lay things out with a mental simulation of inductances, eddy currents, an idea of electric fields and return paths of your signals across low-through-high frequencies)

Hmm that's fair. I think for most hobbyist applications though it really is gluing a bunch of things together, up until the point where you have two get FCC certified or stuff behaves erratically and you have to go and learn this stuff.

If you're dealing with low speed (ie: 50MHz bandwidth aka 20ns rise/fall times or slower) circuits, then you don't need an autorouter. Just connect every pin of your circuit together and you're done. You might need a via to cross into and route inside of your ground plane, but at low-frequencies that's not a big deal because it'd be literally too small to be an antenna and radiate off. Its just an effect that you can almost entirely ignore.

If ~20MHz is the highest speed signal on your entire design (ie: ~20ns rise time, which STM32G0 or PIC or AVR beginner-friendly chips are around), then your wavelength is 15-meters, meaning the quarter-wave antenna would be (at a minimum) 3.75 meters (12 feet long), which is just far larger than any PCB-circuit a beginner will ever come across. (And will only in practice, be an issue on cables running off-board).

I agree, except auto-routing as a feature often isn't just connecting pins, but placing components too. Which gets a lot more tricky.

> I worked with an RF engineer who'd been in the field since the 70s, and he'd always use the auto-router for anything "slow". If it was "digital dc" or digital logic or under a MHz then it was auto-routed because he didn't have time for that. Anything critical that carried RF or drove a reference was hand-routed first then anything left would get the auto-routing treatment. And this was in a radio astronomy observatory!

Your example perfectly illustrates that autorouting is a catch 22: in order to get something useful out of autorouters you either have to (a) provide them with a enough information on signal, DRC, and fab parameters OR (b) have a design so simple that it doesn't really matter. (a) requires subject matter expertise that beginners won't have and (b) really is such simple point and click that beginners don't gain anything from an autorouter. The beginner already has to learn enough to place components on the board before routing, which IMO is where 80% of the leverage of expertise comes in anyway.

The calculation changes if you're all bought in on an EDA package like Altium and you know all about modular schematics and PCB docs on with standardized PCB layering. Then maybe you can start cobbling together quick designs that are largely autorouted but again, catch 22: you have to know enough Altium to know how to do that and enough electronics to know how to select open source modules and parts.

I spent long enough getting tired of routing low impact traces that I actually learned to use the autorouter.

And I mean *learned* because it was not as simple as clicking a button.

Using it right means dropping down keepouts over sensitive areas so that the autorouter knows to stay away -- you know it, but it has no way to. It means placing vias to a ground plane next to every ground pin so that it doesn't try to deal with top layer ground planes breaking. It means telling it how much to penalize a trace for being routed on the power plane layer or the ground plane layer. [and on]

It's a super useful tool -- if you are careful with it like you should be with, well, chatgpt. Give it all the information you know it needs to know, patiently and quantitatively, and sure it'll find a reasonably optimal solution. You just have to tune it as well as you tuned yourself.

[edit: and you can do it in the reverse order for nasty piles of spaghetti nets that you can't smooth out with part placement, to get hints on where you'll have to run busses later so that you leave room -- but always route the sensitive traces first]

It doesn't matter what point of view you imagine the comment coming from, it's still the truth.

The newbie doesn't know that yet, and believes there could be any other approach, but that doesn't matter. They are wrong.

* The very best most costly, fall over and fail

* If your design is simple enough for the autorouter to work at all, then it's simple enough to do yourself.

These two points are true and unavoidable.

The "subject matter expert", actually, all of them not just any paryicular one, is in fact a subject matter expert, and is giving you the useful information that you lack. It is the most useful info and the shortest most convenient path from idea to working board.

This, 100%.

I'm a hobbyist, and when I started out I used autorouting a lot initially to give me a starting point, and inevitably I would adjust everything manually. Autorouting wasn't magic, or even particularly good, but I found it helpful. My PCBs weren't particularly complex, but not dumb either.

I totally get that autorouting is almost certainly a waste of time anything serious, but writing off autorouting entirely, even for hobbyists, comes off as more of a meme than a position resulting from actual experience.

Hell, if autorouting really sucks that bad, then maybe that's a good way for some people to learn how not to route your circuit paths.

It's been 30 years since I was working closely with PCB designers, but back in the day, the professional CAD folks would absolutely run the autorouter first, and then use that as a starting point to tweak the layout.

I would have thought that autorouting would have improved in all that time, but from this conversation, it sounds like it has become worse. What gives?

I'd suggest design complexity has scaled at a faster rate than the autorouting tech. In a closer-to-DC world years ago, optimal routing was nice but often not a requirement. In today's high-speed designs, proper routing can be the difference between working and not working, and there is a constant battle of constraints and trade-offs that humans can deal with more effectively. Attempting to constrain a complex design such that an auto-router can be successful can often result in an over-constrained problem which then makes the auto-router unsuccessful.

More focus on hybrid routing tools where there is some automation going on while a user routes things is typically were you get much more useful help in modern ECAD.

Back then, many boards used to be routed with vertical traces on one layer and horizontal traces on another, "Manhattan routing". Somehow, the circuits worked. Nowadays you can't be so "careless" to hit EMI targets or even to get a working board. Switching PSUs, data buses, clock signals, all those have spacing, impedance control, ground coupling and other requirements.

Maybe you could encode all of them in the schematic and then let a modern algorithm suggest a board layout, but in practice nobody seems to do it that way (note that I am just a hobbyist with limited experience).

And the eighties computers with low cost two layer boards and complex designs like that on them are one of the reasons why all products have to pass FCC Part 15 radiated emissions EMC tests, not just the intentional radiators. The old computers were rather bad on that front.

Routing isn't the hard part though. The hard part, by far, is finding and checking footprints, and physically assembling the board.

I hope they add autorouting, but I would much rather have more parts libraries, access to the part supply house APIs, more 3D models, better tools for verifying that your design will be pick and placed the way you think it will and there isn't something inexplicably upside down because of a bad footprint file, etc.

Hobbyists often like to do more analog stuff with discrete parts than I do, so SPICE simulation in a way that's as easy as the Falstad sim may be important.

I don't think there's any true beginner friendly open sims out there, ideally you'd have a one-click way to fuzz all the components and see how everything behaves with noise in every wire, bad connections everywhere, 60Hz buzz getting in, etc, so you could verify it still works in the worst case of crappy counterfeit parts and loose connections.

Nobody's asking it to design a complete, multi-layer PCB. I'm a pretty-near total noob and I would think that a 2-D auto-router that would at least optimize the orientation of components for the fewest trace conflicts might be possible and useful.

Don't you think it'd be possible to create such a thing, which would also create labeled solder points for jumpers where traces needed to cross?

Maybe "rat's nest" already does this; I don't know what that is.

Ratsnest means that you have thin lines indicating which pads need to be connected. You can see them here: https://librepcb.org/features/board-editor/board-branching.g...

You start out the board deisgn by orienting your parts in a way that there are as few intersections as possible. Then you draw the connections, and the ratsnest lines disappear one by one. If you have intersections, you need to route around the part, or work with multiple PCB layers to get rid of them.

More representative sample of a ratsnest showing just a fraction of a board: https://cdn.vidyard.com/thumbnails/TdqAcWKgxGMwyKOQEtyTBg/26...

At that point "as few intersections as possible" becomes a bit of a lark and to maintain any semblence of sanity you have to prioritize connections, hiding all other nets.

Thanks for the info.

The main issue is the auto-router has no idea what any of the components are or what their requirements are. It just knows roughly physical dimensions and it's connected nets (traces between pins). These component requirements aren't something that can easily be "programmed" into the tool either - every component has it's own requirements, and they're not just electrical (such as needing certain amount of space around a component, or not placing next to other types of components, etc).

Without that knowledge, it's impossible to create a good auto-router/layout tool. The tools often just stack components as close together as physically allowed by the necessary traces.

For very trivial stuff, it might work ok. Anything else, no chance unfortunately.

Yeah, that's too bad. With enough (in other words, complete) info, this seems like exactly the kind of thing computers should help us with.

Because professionals use expensive professional software, and even a newbie wants to put an esp32 and 4 sensors on a pcb and order 5pcs from china for a price of two cups of coffee... and an autorouter is very helpful then, because for such a usecase, the routing is the 'hardest' part of the pcb design.

Even a newbie will outgrow the auto-router very very fast.

Tools to help with high speed are much much more important

Well yeah, but there's a greater chance that s/he'll start using the software in the first place, if it has autorouter :)

This alongside the question re: DXF really reveals the inexperience of the question asker.

My experience with the Altium auto-router (which is pretty good, as these things go) was that it took quite a bit more time to setup and tune than to just bite the bullet and manually route the board. Eagle's auto-router was easier to use, but it was also attached to Eagle.

At the end of the day, the difference between getting an autorouter to the point that it can autoroute a simple 2-layer board with lots of through hole parts, getting it to the point that its useful to the average professional, is monstrous. There's so much more to routing that just widths and clearances. It will probably someday be the case that most PCBs are laid out and routed entirely by computers. But for now, there's too much subtlety in PCB design. I'd lose my mind if I had AI-designed boards failing QC because of tombstoning, for instance. I'm not sure that anyone is trying to simulate board heating in detail enough to predict its occurrence, let alone evaluate solutions prior to board fab. And yet, the solution is pretty easy once you see that its happening in the first place.

It's been a long while since I've designed PCB, but doesn't auto-routing provide a good starting point that the designer can refine? I remember it reducing a lot of grunt work.

Rats nest is good enough IMO. Just saying "Pin#20 needs to be connected to Pin#88", with a visual indication that they're not connected yet, is plenty. A Rat's nest is more than enough to figure out which parts need to be placed next to each other, at least for beginner boards with like ~50 or fewer components on them (and maybe ~100 or less nets/traces to manage)

The issue with PCB-design is that:

1. Even the slowest ~4MHz microcontrollers have 1ns rise/fall times, or 1GHz+ of high-frequency noise all over the place. Faster chips have even faster rise/fall times.

2. ~1GHz wavelength is ~30cm, meaning that a 7.5cm trace is an effective antenna for 1GHz noise. As it turns out, 7.5cm is well within the scope of typical PCB design. A faster rise/fall time (ex: 0.2ns rise/fall time is 5GHz noise instead) could have "antennas" as small as 2.5cm or 25mm.

3. Vias have non-negligible inductance and resistance. Modern signal design also requires the designer to think of "the return path", so a 2nd nearby via to serve as a capacitively-coupled via (IE: "Route a ground-via next to any signal-via"), and other such rules, are rarely followed by autorouters.


It looks like the professional tools are fixing this problem by performing FEA of signals / coupling / electronic flux, and helping the engineer visualize the magnetic and electrical fields of the designed PCB-layout.

However, if you are a conservative human, you can get such a feel for your circuit by thinking about return-paths and mentally thinking about microstrips (ex: wire + ground-plane return), or striplines (ex: ground-wire-ground plane for internal layers). The return path is always on the nearby ground plane, so it makes it very easy to think about.

It creates more problems than it solves for anything but very trivial layouts.

It has no comprehension of the actual components it's placing, or the nets it's routing. So it'll find a physical layout that matches your schematic in a logical sense, but the actual circuit may not work when it's finally assembled (ADC placed next to a switching power supply, for example). Some components have strict tolerances or needs, and some types of designs require special considerations.

So, a newbie will click the button to auto-route and then have the board fabricated and then do the final assembly - then wonder why it doesn't work, or it sometimes works, etc. If you don't have the skills and knowledge to do the layout the "right" way, you likely don't have the skills or knowledge to debug a bad board layout.

PCB layout is not trivial. Some folks spend an entire career doing just PCB layout. For low-speed trivial designs, you can get away with a lot of bad practices, but it's best to invest some small amount of time learning the craft.

However, general rule of thumb, if your design works on a breadboard then you can probably make it work on a PCB... probably.

Adc near a switching power supply made me lol. Some guy at a previous gig did that with 190v pwm motor drives. No autotouter in the loop. Just a bad human.

Placement is usually as important as routing, if not more so. At the same time, the act of thinking carefully about placement will often making routing easier. I try to take a holistic view -- I don't see routing as grunt work, or as an unnecessary chore, but as part of the design process.

On a long-enough timeline, ML tools will become a natural fit for placement and routing. It is a rather dumb thing for humans to have to deal with, at the end of the day, but the existing tools are just not good enough to take over the job. At least not the tools that most of us have access to.

Unless ML tools know which nets have how much current/voltages on them, as well as which ones are sensitive to noise... as well as rise/fall times of each pin, its a hopeless job.

Lets say you have a trace that's 4mm wide that skips across a slot in the ground-plane. Is this good or bad?

1. Why is it 4mm? Is this a high-current line / power line of some kind? A crude power-plane that's just oversized for a trace? Is this a switching regulator with a bit of switching noise? Or is it a "quiet" power line, like a battery or LDO-line?

2. Is this trace actually ground? And the 4mm is to "jump" across the gnd-slot to provide a controlled return-path for some other line? What is the relationship of this trace vs another trace?


If its a fat line on a switching power supply with a ton of current, maybe its a bad idea. If its a fat gnd, maybe its a good idea. Its all contextual. Its not very clear how a hypothetical ML tool would figure out this context, outside of like learning to read data-sheets and/or the EE writing down the purpose (very precisely) on each net... which probably is slower than just routing the trace manually to begin with.

The tool will have access to the same data sheets and SPICE/IBIS models that you do. It will know what to do.


Are you going to put the source-code of your programs in there too? I'm not sure how a ML model would ever know that... say... Pin A5 is a rarely-changing GPIO that's effectively DC. Or that Pin-B6 is configured as an analog-DAC in this particular application (and therefore slowly changing).

Or hell, that PinC1 is an input vs output.

Modern chips have very flexible pins. Many microprocessors (and MCUs) can configure any pin to be input, output, tri-state output, pull-up output, or pull-down output, for example, with different properties in each state. Some pins can be analog (on-board op-amps), others can be digital and high frequency, still others can be digital but rarely-changing / effectively DC for the lifetime of the application.

Each scenario changes how you'd route a trace.

In general, you can organize specifications and verification information in a way that can be consumed by other programs for the purpose of synthesizing designs or generating tests or whatever. At that point, an optimizer could do a a decent job of routing. I guess ML could add value somewhere in that process to handle some unstructured aspect.

Newbies probably value it as it’s a feature newbies use. Newbies are people too. (Disclaimer: I’m a EDA newbie myself, so I value it)

Professionals _do not_ use it. It’s not helpful. If you get your placement right, routing won’t be so bad. If you get your placement wrong, the auto router WILL land you with an awful PCB

Agreed, I wouldn't use autorouting, it's really hard to get right and thus it has invariably mediocre results. Plus, I like routing by hand, it's calming.

You clearly aren't a retrocomputing hobbyist, so you aren't in the know. Trust me, autorouting is essential for some use cases, and it works great for those applications.

What's so special about retrocomputing that makes it more tractable for autorouting? Autorouting isn't a thing in industry for PCB design because managing EMI for modern ICs is so challenging. Is retrocomputing able to get away with it due to slow rise times on very old chips?

Exactly, EMC is only really an issue above 50MHz, much higher than most retrocomputers were capable of.

The issue is not the frequency of your signals but the edge rate.

That's... not entirely true actually.

I am, and I have made a few popular designs.

I would consider it absolutely unnecessary, and invariably results in something that is unreliable at best.

Do you have examples that show how it is essential?

You'd route 100+ signals by hand on a two-layer board? You either have too much money or too much time.

Yes I have done so several times. 2 layer and 4 layer.

I can't see how it would cost me money to do so, on the other hand if I was to blindly autoroute my designs i'd spend more time troubleshooting and way more money doing several revisions before I got something stable.

What problems would you expect to find when blindly autorouting? I have to admit, I've only used two auto-routers in my life. Both were in Altium CircuitMaker. The first one was flawless, the second one was unusable. So maybe yours is more on the unusable end?

I think an autorouter does come in handy, but not if you use it blindly. How well it does is as you would expect of any other tool that operates without complete information.

It can't trivially tell which areas of your board you have intended for analog signals, or where high speed things are. When you autoroute a 2 layer board (in particular) if you don't drop vias next to ground pins it goes nuts trying to connect ground pins with a ground pour constantly changing. It tries to keep traces as close as possible to edges where a human would really just give it "breathing room". If you want to make a prototype that can be reworked, you need to be super careful (you always do, but it's easier to miss a lack of accessibility if it's automatic). It orients traces in ways that are in accordance with a score metric rather than geometric elegance, legibility, or crosstalk because it doesn't know what signals are where.

None of these are unsolvable, but they are the kinds of problems I expect when I use it. That said, if I have 1000 traces to route I will do 970 of them manually and be grateful for the autorouter doing the last 30 that would take me a half day to figure out a clean path for.

The problem comes when people think an autorouter is a computer program written by people who know about their PCB and that the results will approximate an expert doing an okay job. Then they realize that's not the case and decide the autorouter cannot do a decent job ever. Much later they realize that if they actually learn how the autorouter works they can use it as a tool to do... what the autorouter is programmed to do. But it can't read the designer's mind.

I should probably clarify that I mean to say that the reason I think there is so much disagreement here is that the autorouter is an advanced feature, and using it as a wizard to make your PCB work is very unlikely to work out well.

In the future I certainly hope that the integration of ECAD and Spice works transparently, I think it's closer every year.

I also hope that EMI simulations of PCBs become straightforward as well. I think if Spice worked, that would be a pretty clear second step and it would be a gamechanger.

As soon as the autorouter is aware of all of these constraints and is trying to keep signals that you manually specify to constraints you specify (say, from spice or from you reading the datasheet -- or an language system trying its best I guess, I've had terrible luck extracting data from datasheets).

That would be genuinely game changing. You could tell the autorouter not just "go diagonal or add 4 points" or "a via costs 3 points" or "stay away from this area" but instead "keep EMI spread spectrum and give me a spectrum for the noise as measured in a solid surface one meter away" so that you can actually simulate your FCC test. And make the autorouter minimize the spikes with filters of various kinds. And since Spice might know how fast you are operating different traces, and knows rise-fall times, the autorouter can simulate how much cross talk there is.

None of this puts the designer off the hook, it just changes the nature of the work. For more than a trivial board I think it's unlikely a human could do better than an EMI aware autorouter with Spice level knowledge of what every single net is doing -- and on top of that knows all about the capacitance between planes...

Basically, I see this as a huge opportunity for growth, and dismissing autorouting out of hand is something a senior professional might well do because autorouters have sucked for so long. They may continue to suck, if you don't use them like algorithms and instead pretend they are an expert. But I see a heck of a lot of people trying very hard to create an EMI and Spice aware ECAD system, even KiCAD has Spice integrated (albeit I have no clue how to use it). Eagle does too, so Autodesk will.

I assume Altium has Spice and I sure hope it has EMI since what else is the thousand dollars per year per head for... Okay, no, I know their parts management system is second to none I've ever seen, god I wish I could specify alternate parts and automatically generate BOMs based on alibaba real-time availability in KiCAD. But again... soon.

In any case, kudos to this project either way. I will never, ever use a proprietary PCB tool again in my life, I still struggle to get OrCAD 16.2 running and regret learning Eagle instead of just jumping to KiCAD and recognizing that nothing that can be bought will stay available.

It is too much to ask someone who does professional PCB designs to change tools for reasons that only are about the business that makes the tools. It's just a waste of so much billable productivity... that I don't want to do. KiCAD will hopefully be my last, I've learned my lesson.

That said... I am still trying to understand how this is better for a beginner than KiCAD, which does have an autorouter, has a pile of paired extremely useful tools (calculator, geber viewer, image importer), a pile of excellent add-ins, an excellent footprint library (I've rarely had to manually do it), a shockingly complete symbol library, a 3D viewer that I can use to check footprints against manually downloaded packages, excellent DRC, and for little things it can round traces and make teardrops which is just aesthetically pretty compared to sharp corners.

For a retrocomputing project, you can likely do analog as a separate board. And it's trivial to route power and ground lines by hand (excluding them from the autorouter with a rule). You don't even need power planes at the low speeds used by old computers! But, the hard part is optimally routing 100+ signal lines between chips. You can do it by hand, but it's just drudge work.

Couldn’t agree more. Auto routing is useless. Give me tools to make it easier to route pairs and for length matching.

>"Export formats: PDF, SVG, pixmap, BOM, pick&place, Gerber/Excellon". None of which have enough info for import into another EDA program. This thing is very self-contained, which is unusual for an open source program.

The limitation here is that only KiCad has an open format for design files to begin with. Maybe we should be agitating for a better open-standard for schematic capture? I'd love to be able to output a schematic from e.g. a spice simulation, then import that into my ECAD suite. The netlist (which is part of the Gerber output) is human-readable, so I suppose its possible to extract the schematic from that. But then, it'll be computationally expensive to arrange that information in an easy-to-read format.

How is the KiCAD format more open than LibrePCB? Both are custom formats using S-expressions.

The thing is that while the files look similar superficially, LibrePCB has a lot of differing library concepts: https://librepcb.org/features/library-concept/ Just as an example, LibrePCB has UUIDs for _everything_. That makes conversion from/to KiCAD more difficult.

Usually the other programs have specific importers for other tools.

It is unreasonable to expect a tool to support the formats of others for export.

Even five figure professional tools only do those exports and then have separate importer plugins. For example Altium Designer recently added a functional kicad importer.

But the DXF stuff? Excellent for integration with mechanical CAD tools and for use with RF simulators like CST or HFSS. QUCS Studio is the odd one out that they support importing kicad layout files into their EM simulator.

The default generic output standard these days is IPC-2851 (which is basically the same as ODB++ but managed by the IPC consortium).

>How comprehensive is the part library?

I don't care as long as it has the usual industry standard footprints. For anything unusual I can make my own footprints.

>Is there auto-routing? How good is it?

I don't care, I won't use it. It's all garbage compared to what a human can do.

>"Import formats: DXF". For what, the board outline?

Yes, or silkscreen graphics or other unusual copper pours. Some people don't even mount components on the PCB, they use it as an artistic medium.

>"Export formats: PDF, SVG, pixmap, BOM, pick&place, Gerber/Excellon". None of which have enough info for import into another EDA program.

These are the only formats I need.

Been using KiCad but I'll take a look at LibrePCB.

> >How comprehensive is the part library? > I don't care as long as it has the usual industry standard footprints. For anything unusual I can make my own footprints.

A thousand times this.

There's two kinds of people:

1: Uses library parts

2: Makes their own parts, has been bitten by the library parts being wrong (wrong pinout, footprint size etc)

Anyone technical enough to contemplate making a PCB using discreet components or anything more than a "dev module" should already be capable of designing their own footprints.

> DXF is for mechanical CAD. You can't import a board layout or schematic that way.

There have been times I have wished that I could import DXF as footprints in Kicad because it was easier to draw complex shapes in QCad or Inkscape. I think it could also be useful to import object placement/orientation data from a DXF file and snap to those when placing components.

For the latter use-case, I have instead written placements by hand as code in a Python script and made that output both DXF and Kicad files.

You kind of can in KiCAD. You import to a footprint, and change the lines to the type you want (courtyard, silkscreen, front copper, etc), and for things like pads you can use DXF for reference and centerpoints then put your pads in.

The CAD tools inside KiCAD could be a lot better (esp since it’s using FreeCAD under the hood and the tools should be there) but it’s OKAY as is.

DXF was integral in importing things from freecad for outlines, designs, and in some cases even silkscreens.

Also, beginners shouldn't even autoroute. I can't think of a single valid reason to support it, honestly. The algorithms and compute power needed to actually autoroute something useful beyond trivial things is years away, perhaps decades or more.

You need to try a better autorouter.

My experience with PADS/Mentor "blaze router" and "Specctra" (now Allegro PCB router) was very good. Altium on the other hand... no (I mention Altium because I think most people's bad experience is coming from this).

Specctra and blaze worked fine in 1998-era PC hardware. I used them for high speed designs (even then we had ECL and PECL).

I wish parts manufacturers could create an open or universal part file standard. Even just a schematic symbol and footprint would do. Make it compatible with all PCB eda software

There's a lot of good reasons why its not universal. Chief amongst them is that there's no guarantee that a given footprint will work in the context of the overall assembly. Will you get tomb-stoning? Will the combination of fab capabilities and assembly capabilities necessitate a larger aperture for a given pad? If so, will that cause the solder to migrate during reflow to an adjoining pad?

Is it Yageo's responsibility to publish a different 0402 footprint for each board house's capabilities?

By this logic, EDA software shouldn’t include any footprints at all

Capabilities, while not identical, are similar. I use the same 0402 footprint regardless of the board house.

And it is why many professional one's don't.

Altium has multiple footprint creation wizards for making footprints, but they are made to your specifications, so that they fot your assembly requirements.

TBH, you should treat them as if they don't ("size of part library shouldn't be part of the evaluation, let alone top of the list of "standard questions"). And generally external libraries are suboptimal as well, for various reasons. What I want is tools for quickly importing and generating footprints, like Altium's generator (and support for mechanical dimension constraints like mechanical CAD has had forever would really help. It boggles my mind that no PCB tool has them, it would be such a killer feature)

> auto-routing

Side question: Has anyone used Wave Function Collapse for auto-routing?

Apologies if this is a “bad” approach. I have yet to make my first PCB. I’m suggesting it because I’m inspired by the impressive results in the game Townscaper.

With PCB design, you can work at a few abstractions above that. For example, nets, and the various abstractions used in electronics (resistance, capacitance etc). Even for RF and high-speed designs, I don't think that's an appropriate granularity to model the system with.

I'm curious if that has any implications for future nano-scale tech; we might see an intersection of DFT and electronics design.

Comprehensive part libraries are not an issue. It just needs a basic set of symbols. Most people doing PCB design will create their own symbols and footprints. Altium has an excellent footprint generate, which you can then tweak the output.

A feature comparison against KiCAD and Horizon would be helpful?



The FAQ does not contain a direct comparison, but might answer some questions: https://librepcb.org/faq/

One of the main "selling points" is the advanced library concept: https://librepcb.org/features/library-concept/

There are two types of PCB designers:

1) Those who believe in library managers

2) Those delivering boards on a regular basis

The vast majority of time in PCB design is spent reading datasheets. The second largest chunk of time is spent doing the engineering schematic design and analysis. After that is PCB placement. After that is building schematic and PCB symbols. After that is actual routing.

Yes, building library symbols annoys me. It's tedious and error prone. However, it's integral to your design and you can't skimp. The sooner you accept that, that better off you will be.

(A good example is your vias underneath a QFN for power and heat transfer. If your via rules change because you have a different board house, some of your physical symbols may need to change slightly. This sucks, and no library manager is ever going to solve this.)

Yep. A good portion of my time helping folks with PCB design is in getting them comfortable with making their own symbols and footprints.

Draw the parts. It's not that hard. Don't worry about libraries. Yes, somebody may have done it already. No, that one isn't the same. Just draw it, you have the datasheet. Make the symbol that fits your schematic, it'll be way better than shoehorning in the one you found.

I get it, I'm annoyed every time I have to draw a symbol, but that's just how it is. Every project I work on, I make a new library and draw symbols to put in it. I copy most library symbols I use into it so I can modify them. I reuse my own symbols, but I modify them for the new project. It's a fact of life... embrace it.


I download 99.9% of the symbols I don't already have available locally from online libraries. Why would I draw a symbol for random part when the manufacturer provides one and has uploaded it to all the usual places.

Because almost all manufacturers outsource the footprint creation stuff. And one sometimes finds mistakes.

What are the usual places for you? I rarely find proper footprint+symbol on snapeda for example, plenty of plain wrong or subtly wrong are however found on regular basis.

Hello there,

I hope you are doing well! This is Ron Publico from SnapEDA and we want to help you regarding your experience about our footprints and symbol at SnapEDA. May we ask if you can share us more information and send us an email to support@snapeda.com?

Our team is more than happy to help you and investigate those footprint and symbols that you have check earlier.

Kind regards, Ron

I'm sorry, but SnapEDA is one of the companies specifically making the library situation worse (Altium comes in first place on that front, though).

For a while, everybody was shipping Altium libraries. This was really good because, as we well know, engineers are lazy. Thus, somebody would simply pack up their internal libraries and ship them. This meant that every symbol had been shipped and tested in a real product. Consequently, the libraries generally didn't have any fatal faults. And you could extract the symbols and make whatever edit you needed to fit into your own library management stuff.

And then Altium decided to enshittify things in order to extract rent from library management. Now, you couldn't extract symbols or footprints from a library, or you had to register with their cloud garbage.

And then SnapEDA and its ilk came along to "fix" this problem that Altium just caused. Except that engineers are lazy. Nobody uses SnapEDA for actual internal libraries for production boards inside the semiconductor companies. Consequently, the libraries have minimal feedback and you have to beg people to send you fixes. Which, of course, they don't do because engineers are lazy.

And don't get me started about the "licensing terms" behind using SnapEDA symbols.

Hello there, this is Carlos from SnapEDA replying. The licensing terms used for SnapEDA content are regulated by our Creative Commons BY-SA license, which is a fairly common license in the industry to share content for derivative works. For more information, please check the following link: https://support.snapeda.com/en/articles/2957815-what-is-the-...

The feedback our users give us is essential, and all our content is created using internal standards developed from the opinions of our community and manufacturers. If you can provide any specific feedback about our parts, please contact us. We'd be happy to assist!

I was still able to extract sources from integrated libraries in Altium 22 and I have no cloud integration turned on. Was there some easier process in the past?

Your footprints are absolute trash, that's the problem.

I agree with you. That doesn't mean that Kicad's library system is great, though. It's bananas annoying to deal with.

Every PCB library manager is bananas annoying to deal with. Altium's was no better, IMO. Nor Orcad's.

Library managers for PCB design have all the same pathologies as bug ticketing systems in software development.

Hah! I was frustrated with KiCAD's library system until I used other tools. I got over it when my employer bought a $20k/seat electrical CAD system with a trash library and I had to draw all my own symbols. Those KiCAD folks have done a fantastic job, in my opinion.

I have found that Horizon EDA is squarely better than both KiCad and LibrePCB. With the addition of blind vias this year, it's capable of everything I could possibly need.

Horizon gives me that priceless feeling that the software is working with me rather than against me. I love it. It's beautiful. It deserves to be far more popular.

Also it’s so well written that you don’t need zillions of bug fixes like you always see in kicad and librepcb

I thought HorizonEDA was a Kicad fork?

It does use KiCads interactive router though

KiCAD is more complete and (imo) better overall.

LibrePCB is more simple.

> No online account.

Among the nerds, the backlash has started. Watch out, Fusion 360.

In the world of doing stuff with atoms, no one ever wanted their drafting table to have authentication, ACL, 2FA, or storage/backup.

I wish there was an actual equivalent to F360. It’s like Photoshop vs. GIMP. They’re “comparative”, but in reality, not really.

What is "Altium" for $500, Alex?

Like yeah I agree it would be wonderful to have alternatives, but it's a little dramatic to call the existence of this very small project the start of a "backlash"


From the website, second paragraph. Their point is pretty clear in their comment.

No it isn't, or I wouldn't have asked. Is he mocking people who hate "online account" requirements, or supporting them?

You can't tell from "no one ever wanted their drafting table to have authentication, ACL, 2FA, or storage/backup," because those things on their own aren't inherently objectionable. Is it a sarcastic comment, or in earnest?

So... you're wrong.

For anyone who has ever had the laptop out in the garage next to the CNC machine, yeah, no, those things are extremely onerous.

You're in the machine shop outside of town and you literally have everything you need locally to make the computer drive the 4000lb hunk of cast iron around to cut the hunk of metal into the shape and then when you open your laptop Fusion 360 randomly decides you're not logged in and you need to 2FA to get to your own damn data that's local to your box—except there is no cell service here.

Fuck. B-double-e-double-r-U-N beer run! Bring the laptop into town and make a hotspot at the gas station so you can get back into your damn cloud account and then drive back to the shop in the hills and finally send G-code to the mill. Using data and software you had on your laptop the whole damn time.

Looks like that cut isn't finishing up until 3am.

The point is, you're doing an activity that doesn't require the internet. When an application that provides functionality that doesn't require internet connectivity introduces a hard dependency on the internet, it's user-hating design, plain and simple.

Great, that's all the clarification I asked for. I totally agree! I detest pointless online accounts and won't even consider Web-based tools for local tasks.

Unfortunately some self-appointed spokesdouches decided to intervene and create a toxic atmosphere here before you could even answer.


Could you please stop posting unsubstantive comments and flamebait? You've unfortunately been doing it repeatedly. It's not what this site is for, and destroys what it is for.

If you wouldn't mind reviewing https://news.ycombinator.com/newsguidelines.html and taking the intended spirit of the site more to heart, we'd be grateful.

I asked a straightforward, sincere question and then, after being inexplicably downvoted, elaborated further.

Then THAT was downvoted, with no answer to the original question or excuse for the attacks. That kind of infantile behavior brings down the site and should be called out, which is exactly what I did.

I'm not going to pussyfoot around assholes who try to bury other users' questions or comments for no reason. Why don't you ask THOSE people why they're attacking other users?

See above where the OP eventually answered the question I asked in a totally civil and helpful manner, and all is good. I realize that moderating a Web site is a huge job; but if you're going to actually look at individual cases, go after the meddling douchebags, not the guy simply asking for clarification.

Of course—but other people breaking the rules doesn't make it ok for you to do so, right? You broke them noticeably worse than any other comment in this thread (at least that I saw), and you did it like 4 or 5 times, which is a ton. So regardless of how this spat got started, or how right your view is, your account was certainly the one which had behaved the worst by the time it was over. Blaming the community / downvoters / "Redditards" for this isn't helpful.

The basic trouble here is that when you (I don't mean you personally, but all of us) get in a tangle of disagreement with someone else, the odds that you'll feel like they are an "asshole", or "meddling douchebag", etc., get much higher. Such perceptions are unreliable because they're mostly a byproduct of getting into an activated state, which is what happens when we get into an argument. We all know this experience, and we all feel it.

These feelings have a degrading effect on conversation if we act on them, so the basic idea of HN, as set out in https://news.ycombinator.com/newsguidelines.html, is not to act on them. This takes conscious effort, but it's work we all have to do if HN is to have any chance of being interesting.

(Online arguments are bad for this because we have next to no information about each other - all we have are little globs of text that usually don't communicate intent.)

We don't accurately perceive how we ourselves are coming across either—we basically underestimate our own provocation by 10x and overestimate the other's provocation by 10x. This compounds to a 100x distortion, which is a hell of a bias. Objects in the mirror are closer than they appear: https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que.... As a result, it always feels like the other person started it and did worse: https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que....

This is the root of most conflicts on HN, including the current one. You perceived your post https://news.ycombinator.com/item?id=37696161 as a "straightforward, sincere question" - but it doesn't read that way to me, and I'm sure not to many others either. "What's your point?" is typically a marker of hostility in conversation—it signals an adversarial intention. When you ask "what's your point?", especially if you ask it brusquely, the implication is that you don't think the other person actually has much of a point at all.

If you didn't want your question to be perceived that way, you would have needed to add disambiguating information; or, more likely, phrased it some other way than "What's your point?" Instead, though, when the other commenter answered your question, you pounced on them (https://news.ycombinator.com/item?id=37698914) in a way that, to me at least, seemed to confirm that you were being aggressive in the first place.

I hope this comes across as helpful and not annoying because I can see it either way!

Thanks for the civil and detailed response. I will give it sincere consideration.

Just a few days ago, version 1.0 was released. Release blogpost: https://librepcb.org/blog/2023-09-24_release_1.0.0/

https://easyeda.com/ is another alternative that has PCB factories backing it up.

It does not seem to be open source.


For most of us, it is not an alternative because.

For most of us, LibrePCB is not an alternative because it lack table stakes features that almost all commercial software has

Such as?

LibrePCB does not have a worthwhile parts library, autorouter, sophisticated DRC, or integration/interop with other tools commonly used in the industry. It's fine for hobby use, but it's not industrial grade software.

As suspected, that's not "most of us".

I've used LibrePCB to put together 2 different PCB designs for hobby IOT use. I found it very easy to import parts from vendor sites, and/or take PNG images of other boards like hats that will fit with the PCB I'm designing.

Is this PCBWay challenging JLCPCB and EasyEDA? Looks like it. I welcome it, EasyEDA and the super slick integration with JLCPCB is a killer feature and the reason I use JLC exclusively for all my boards.

If this works well I might give PCBWay a try.

That's really the killer feature for you?

I do have the advantage of one lab back in college where a pro spent 90 minutes instructing a bunch of teenagers how to prepare Gerbers for a class project through Advanced Circuits, but beyond that I've had no problems sending files to OSH Park, JLC, PCBWay, Sunstone, or Advanced Circuits whether they were generated in Eagle, Kicad, or Altium.

Even at the low-margin providers like JLC and PCBway they still have a human look over your gerbers (and most provide web viewers for you to see what you've uploaded in those files) to make sure you're not going to order the inverse of your board, or make all your vias unplated, or swap your copper and silkscreen layers, or anything goofy like that. If you do screw up the design, that's on you and the tools won't help, but prices are dirt cheap and turnaround times are screaming fast these days, so it shouldn't be too bad.

I don't understand why newcomers find plotting to gerbers so intimidating.

integration with LCSC for parts and assembly is a killer feature though. I loved getting my PCBs back but then if you need to solder on dozens of 0603 caps and a BGA package it just became another thing to get wrong.

As my eyes and coordination are not as good as they were hitting buy now and having fully assembled boards come back for basically the cost of the parts and the PCB was game changing for me.

JLCPCB's integration with LCSC for parts is why I've used them for PCBA.

I've only done low-volume hobbyist stuff, & prefer KiCad, but I can see that not having to fiddle with BOM/CPL would be a +1 to EasyEDA.

JLC-LCSC integration is pretty big for small-volume users, I'll agree. But you can do that with Kicad/LibrePCB just as easy as making boards.

You could always have fully-assembled boards come back for basically the cost of the parts...as long as you were at quantity 10k units. Hooray for automation!

LibrePCB is not developed by PCBWay. They started supporting the project last year: https://librepcb.org/blog/2022-09-08_partnership_with_pcbway... Other fabs support it too (namely Aisler) by donating a share of the income from orders submitted from LibrePCB.

I'm extremely skeptical of any company that does as much advertising as PCBWay, but they seem to legitimately do a good job. From what I can tell, it seems every single order is reviewed by a human who sends you an email if something is off. Quality is as good as you'd want and the price is reasonable.

Their website is an atrocity but I guess that's fine.

I've been using them for the last few months and I have no complaints.

Spoken like someone who’s never actually ordered from them.

PCBway is among the better board fabs in the world - certainly in terms of customer service, and very hard to beat in terms of value for money. The fact that they get you quote and acceptance in under an hour (during US working hours!) is incredible.

American board fabs could learn a thing or two from PCBway. They set a very high standard in terms of service. I’m very impressed by it.

I wouldn’t send a server motherboard or a radar frontend design to them (for a multitude of reasons - ITAR controls likely forefront among them) but most circuit designs aren’t in that league of board design. Most are two to six layers and 300 or fewer parts placed.

PCBway does pretty superlative work serving that niche.

> Spoken like someone who’s never actually ordered from them.

Spoken like someone who didn’t read the comment they’re replying to?

The person you’re replying to said PCBWay was good. Quoting that comment: “they seem to legitimately do a good job” “Quality is as good as you'd want and the price is reasonable.”

> PCBway is among the better board fabs in the world

Last time I used them their process was so stone-aged that they couldn't do solder mask between the pins of a QFP-64 package

I use PCBWay professionally for simple fixtures and tooling. I once had parts fabricated from them and on my desk quicker than the time it took our usual domestic supplier to provide a quote - and their quote was more than 10X what PCBWay quoted. I really like their CNC service and I’ve only had one issue where a large part had a bent corner when it arrived due to shipping damage. I quickly removed some material from the fixture and put it in service.

For the record, I export from EasyEDA to Gerber to PCBWay all the time.

PCBWay less likely to run into issues with weird design features and parts specs, but they are slower and more expensive.

Elecrow also takes Gerber’s from EasyEDA.

My first job out of undergrad was doing pre-sales on what was Mentor Graphics' (acquired) PADS PCB design tool.

As part of our jobs, our small group of people in their early 20s would handle this inbound phone number for NA and any voicemail that came in after hours. We'd do basic qualification, write up the lead and if it was good pass it to the inside sales rep who managed whatever region it came from.

I remember looking at the license holders and it seemed like everyone had at least a few licenses to that product. Siemens owns all that now.

Curious how PADS stacks up today, if anyone is familiar with the tool.

It is fast, but clunky. Up until recently it was the only tool I was aware of where multiple people could genuinely work on the same design.

So it's true value is in large, complex designs with a decently sized team working on it.

That said kicad is catching up to it for all the simpler stuff.

It is still used widely in China and Taiwan. PADS is ok but it has a clunky and dated interface. It’s more capable older cousin Xpedition is used heavily in aerospace and medical design applications.

This project is amazing. I tested it out by seeing how far o could get only ever briefly glancing at the manual, I was able to make parts and put them on the board.

I have high hopes for this one! Hopefully I'll get to work on a hardware project again and really try it out, I haven't had a reason to do any custom electronics lately though, and it's z but expensive and clutter creating to do on a whim very often.

This is exactly what I was looking for.

I wish there was some "here are basic building blocks to achieve XYZ" for real beginners who just want to hack something together. E.g. I would like a 48VDC-48VDC battery-to-battery charger, but I have no idea how to get started. I'm sure this is a fairly simple design (I guess boost voltage and then do CC/CV).

> I'm sure this is a fairly simple design

Not simple at all. Switching regulators are sensitive to PCB layout, component selection, and parasitics of the PCB itself. You can’t really treat switching regulator schematics as cut-and-paste building blocks like this because the layout requires an understanding of how the circuit works, where the switching nodes are, and how to organize everything to keep parasitics low.

If you take a random 48V switching regulator schematic and lay it out without understanding these details, you’re likely to blow the switch up from ringing or at least have terrible EMI radiation.

The basic building blocks for beginners would be more like low-speed logic circuits and simple microcontrollers circuits. Jumping into medium voltage switching regulators and battery charging (which can result in fires very easily if you’re not careful) is far from simple.

It's definitely not simple, but I think it's approachable, even for a beginner, but you've got to put in the work. Find parts that you think might work, then dig into their datasheets and read the related application notes. Look at the eval boards. When you find something you don't understand, look it up. Manufacturers want you to use their parts, and often they will provide everything you need to know to be successful. Look at Texas Instruments and Linear Technologies / Analog Devices for excellent documentation.

If the PCB layout matters, then that could be part of the building block? Like "if you need this bit, it will take X by Y footprint. here's various circuits that do $JOB within $PARAMS".

TI's WEBENCH interface is like this. You tell it what type of converter you need (DC/DC or AC/DC), the desired characteristics (input voltage range, output voltage, output current, EMI filtering, isolated output, ambient temperature, etc), tell it what you want to optimise for (efficiency, cost, footprint area), and it will give you everything it can that fulfills those criteria (including schematics and bill of materials), allowing you to then sort the results by e.g. consumed board area, component count, features (enable inputs, automotive qualifications, ...).

What it can't do is tell you how to lay out the board to get the result you want. The switching IC datasheets typically have layout examples, and these are sometimes complete nonsense.


What? WEBENCH absolutely recommends a layout and provides photos (these photos are regenerated when alternate passives, etc. are selected as well), as do most of the datasheets for most TI DC-DC converter parts.

As mentioned - most manufacturers have recommended layouts and written layout recommendations: keep your loop small, route things this way, put a via here. If they don't, learn from the recommendations from TI's excellent documentation.

This isn't that hard.

It would be cool if someone borrowed from the Factorio interface and let you paste in blueprints. I'm not an experienced enough PCB designer to know how terrible of an idea this is, but it sounds mildly feasible.

You can do this, though the interface tends to be clunky. It can he valuable but mostly for between different designs done in-house, no-one is trying to make easily reusable building blocks at this level (unlike footprints, where people are at least trying, but not generally succeeding)

For low-speed and low-current stuff you can generally copy/place placement and routing of DC-DC converters.

2L->4L may require some retooling, but 4L+ is all the same.

Like reuse-blocks tuat have a qualified design and layout on it?

As a total noob, will this help me design my first parts using a kit like a Pico W kit with motors, switches, LEDs and such? Will the ECD be helpful in making sure I get stuff close-ish?

GPLv3 and librepcb-cli source isn't published. what?

thx. I searched for it in the github interface and didn't get a hit. funky.

Looks exactly like Kicad...

It looks like any other standard EDA, naturally, but workflow is noticably different to KiCad, which is a good thing.

Looks like it's (at least) got faster feedback between schematic and layout.

"A LibrePCB library is more than just a collection of stupid graphics for symbols and footprints"

This lack of professionalism is a bit off-putting to me. Just saying, don't put stuff like that on your front page.

I don't read it as unprofessional, just the opposite of "smart" in the sense of "smart light bulb" vs "stupid light bulb"

I was going to disagree with you (not least because 'dumb' is the established antonym) - but it is under the heading 'smart library concept', I think you're right, and maybe it's the victim of translation.

(There's some other word choice that's correct and makes sense, but seems a little unusual, that makes me think/supports that.)

What makes you think their goal is "professionalism"?

They presumably want to be taken seriously, and not just as some hobby thing

Developers and sponsors who support the project as part of their profession.

Do we have a ChatGPT-style workflow for PCBs on the horizon yet?

Definitely not GPT-style, but there are quite a few examples of ML/AI integration with EDA. For example:

Startup looking at a post-layout DFM check workflow: https://cadstrom.io/

Cadence is probably the biggest EDA company talking about ML/AI in the PCB space (that I've noticed) with their recently announced "Allegro X" stuff. The videos are mostly marketing fluff, but they seem to be on track with what I'd expect for "AI assisted PCB design". https://www.cadence.com/en_US/home/tools/pcb-design-and-anal... https://www.youtube.com/watch?v=RlWfSQq0NkA

They also have a neat machine-learning optimization tool for their electronics simulations: https://www.cadence.com/en_US/home/tools/system-analysis/opt...

On the chip-design side of EDA, both Cadence and Synopsys have a bunch of AI-assisted tools that supposedly are being used right now. I'm not as familiar with that stuff so I prefer to read the humorous Deep Chip summaries: http://www.deepchip.com/items/0593-08.html

And lastly, there's some recently published and soon-to-be-published work showing that there's potential to speed up electromagnetic simulations with neural nets. It's all just proof-of-concept for now, but I'm hoping this proves that ML/AI can be can be integrated in a useful manner in commercial electromagnetic solvers :) https://shielddigitaldesign.com/posts/2022/ml-replace-field-... https://shielddigitaldesign.com/posts/2023/s-param-from-via/

I think there are too many steps with too many opportunities for failure and too little training data for such a thing to be feasible for the foreseeable future. Almost any small error of the kind that GPTs produce can prevent your board from working or destroy components. Picking the wrong part number or connecting the wrong pins is a hard fail that costs a fair bit of time and money to fix. Softer error like picking the wrong capacitor value for an RC filter or using bad trace routing would be tricky to debug.

Maybe a better approach would be to have an LLM generate RTL code for an FPGA.

Flux.io is attempting something like that.


Oh shoot, I forgot about these guys too! :)

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