5 ms·
> 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
by Alupis 3y ago
> 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.
- fnordpiglet 3y agoNewbies 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)
- stvltvs 3y agoIt'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.
- Alupis 3y agoIt 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.
- aswanson 3y agoAdc 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.
- dragontamer 3y agoRats 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.
- CamperBob2 3y agoPlacement 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.
- dragontamer 3y agoUnless 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.
- CamperBob2 3y agoThe tool will have access to the same data sheets and SPICE/IBIS models that you do. It will know what to do. Eventually.
- dragontamer 3y agoAre 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.
- gaze 3y agoProfessionals _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
- stavros 3y agoAgreed, 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.
- ajsnigrutin 3y agoBecause 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.
- noncoml 3y agoEven a newbie will outgrow the auto-router very very fast. Tools to help with high speed are much much more important
- ajsnigrutin 3y agoWell yeah, but there's a greater chance that s/he'll start using the software in the first place, if it has autorouter :)
- slabity 3y ago> 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.
- Alupis 3y agoI 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.
- deepspace 3y agoIt'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?
- syntheticgate 3y agoI'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.
- noncoml 3y agoCouldn’t agree more. Auto routing is useless. Give me tools to make it easier to route pairs and for length matching.
- petsfed 3y agoThis 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.
- phendrenad2 3y agoYou 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.
- sweetjuly 3y agoWhat'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?
- phendrenad2 3y agoExactly, EMC is only really an issue above 50MHz, much higher than most retrocomputers were capable of.
- bogantech 3y agoThe issue is not the frequency of your signals but the edge rate.
- phendrenad2 3y agoThat's... not entirely true actually.
- LIV2 3y agoI 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?
- phendrenad2 3y agoYou'd route 100+ signals by hand on a two-layer board? You either have too much money or too much time.