News for hackers. Stuff that matters.
Re:LibrePCB – Create electronics the easy way by slabity on Thursday September 28, 2023 @05:07PM (#37695869)
> 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.

Re:LibrePCB – Create electronics the easy way by Alupis on Thursday September 28, 2023 @05:21PM (#37696055)
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.

Re:LibrePCB – Create electronics the easy way by deepspace on Thursday September 28, 2023 @05:38PM (#37696254)
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?

Re:LibrePCB – Create electronics the easy way by syntheticgate on Thursday September 28, 2023 @05:58PM (#37696432)
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.

Re:LibrePCB – Create electronics the easy way by dvdkon on Thursday September 28, 2023 @06:11PM (#37696556)
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).

Re:LibrePCB – Create electronics the easy way by RF_Savage on Friday September 29, 2023 @01:44AM (#37699715)
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.
Re:LibrePCB – Create electronics the easy way by ajford on Thursday September 28, 2023 @06:17PM (#37696612)
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!

Re:LibrePCB – Create electronics the easy way by Alupis on Thursday September 28, 2023 @06:35PM (#37696805)
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.

Re:LibrePCB – Create electronics the easy way by carbotaniuman on Thursday September 28, 2023 @06:47PM (#37696954)
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!
Re:LibrePCB – Create electronics the easy way by Alupis on Thursday September 28, 2023 @06:51PM (#37696990)
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...

Re:LibrePCB – Create electronics the easy way by carbotaniuman on Thursday September 28, 2023 @07:00PM (#37697070)
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.
Re:LibrePCB – Create electronics the easy way by dragontamer on Thursday September 28, 2023 @07:21PM (#37697255)
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)

Re:LibrePCB – Create electronics the easy way by carbotaniuman on Friday September 29, 2023 @08:39PM (#37711791)
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.
Re:LibrePCB – Create electronics the easy way by dragontamer on Saturday September 30, 2023 @01:55PM (#37717972)
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).

Re:LibrePCB – Create electronics the easy way by Alupis on Thursday September 28, 2023 @07:09PM (#37697150)
I agree, except auto-routing as a feature often isn't just connecting pins, but placing components too. Which gets a lot more tricky.
Re:LibrePCB – Create electronics the easy way by pzo on Thursday September 28, 2023 @06:54PM (#37697014)
> 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.

Re:LibrePCB – Create electronics the easy way by civilitty on Thursday September 28, 2023 @06:56PM (#37697037)
> 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.

Re:LibrePCB – Create electronics the easy way by neltnerb on Thursday September 28, 2023 @07:41PM (#37697439)
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.

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.

Re:LibrePCB – Create electronics the easy way by Brian_K_White on Thursday September 28, 2023 @07:28PM (#37697329)
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.

Re:LibrePCB – Create electronics the easy way by ravenstine on Saturday September 30, 2023 @03:58PM (#37719160)
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.

Re:LibrePCB – Create electronics the easy way by ShadowBanThis01 on Thursday September 28, 2023 @05:27PM (#37696119)
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.

Re:LibrePCB – Create electronics the easy way by Alupis on Thursday September 28, 2023 @06:03PM (#37696476)
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.

Re:LibrePCB – Create electronics the easy way by ShadowBanThis01 on Friday September 29, 2023 @01:44AM (#37699718)
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.
Re:LibrePCB – Create electronics the easy way by dbrgn on Thursday September 28, 2023 @06:24PM (#37696686)
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.

Re:LibrePCB – Create electronics the easy way by civilitty on Thursday September 28, 2023 @07:14PM (#37697199)
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.

Re:LibrePCB – Create electronics the easy way by ShadowBanThis01 on Friday September 29, 2023 @02:15AM (#37699904)
Thanks for the info.
Re:LibrePCB – Create electronics the easy way by Aurornis on Thursday September 28, 2023 @08:26PM (#37697805)
> 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.

Re:LibrePCB – Create electronics the easy way by eternityforest on Thursday September 28, 2023 @09:49PM (#37698360)
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.