4 ms·
Honestly, for small boards, autorouting just isn't worth the time. Once you do a few layouts, it's very easy to see how everything can fit together. Also, for
by Hasz 9y ago
Honestly, for small boards, autorouting just isn't worth the time. Once you do a few layouts, it's very easy to see how everything can fit together.
Also, for some sensitive designs (boost, buck, high speed clock, memory interface etc) you definitely don't want and autorouter doing it, at least the ones that are available to hobbyists.
Would it be a time saver, sure. But for a board like that, we're talking ~15 minutes of saved time. There are much better optimizations to be made (standardized parts libraries) that would save way more time.
- CamperBob2 9y agoNobody cares about autorouting trivial boards, but there are serious economic incentives to turn 8+ layer boards into 6+ layer boards. The author makes a strong point in comparing the autorouting problem to the milestone achieved by Alpha Go in defeating some of the strongest human players. These problems are similar enough that the same insights are likely applicable to both. The first time I ever heard the phrase "Monte Carlo tree search," it took me about five seconds for me to start wondering if it might be applicable to PCB routing.
- phkahler 9y ago>> Nobody cares about autorouting trivial boards, but there are serious economic incentives to turn 8+ layer boards into 6+ layer boards. Sure, but if a tool can't route a trivial board like the author had, what hope does it have for doing complex designs? On a related note, pick up an old arcade game board from the 70's or 80's made by Atari. They're all double sided and are very cleanly routed. The Cinematronic CPU made from 74xx series parts is also double sided and very cleanly routed. In both cases though there is a lot of area not covered by components, but they're still works of art.
- CamperBob2 9y agoSorry, I'm done with responding to people who didn't read the article. It's a cool article, with some worthwhile points to make. Nothing too profound, but worth a few minutes' surfing. Go read it.
- phkahler 9y agoI did. Top to bottom.
- CamperBob2 9y agoSo, his whole point was exactly what you (and a half-dozen other people in the thread) are bringing up as some kind of revelation that no one considered. Yes, it's true, autorouters suck. Most professional PCB designers think of autorouting as a waste of time, and it typically is. He's complaining about how autorouters have trouble with trivial boards like the one he was working with. He's pointing out that this is costing the industry a lot of time and money. He's asking why the problem remains largely unaddressed, at a time when computers running relatively generic tree-search algorithms with minimal prior training are beating 9-dan Go players like rented mules. By trying to call the attention of ML/AI researchers to the issue, he's doing a good thing IMO. No one disputes that a well-routed PCB is a work of art, whether it was done with Altium or rubylith. But it shouldn't be.
- phkahler 9y agoPerhaps I misunderstood. Someone (was it you?) said nobody cares about trivial boards like in the blog, but they do care about complex boards. I took that as a sort of rejection of the relevance of the article. So the point I wanted to make is this: If you're hoping for a tool to do good routing on complex boards, it really should be able to do a great job on simple ones. Hence the blog is entirely relevant by eliminating a bunch of autoroutes based on his simple project. I applaud him for pointing out how bad most of them are and asking the question why they suck when machines can play GO now.
- aj7 9y agoNo, comparison to Alpha Go was utterly naive. Where do you get the training set? From thousands of proprietary boards you have full documentation of? The physics rules for the aforementioned difficult tasks, EMI, stripline, race, not to mention all the thermal and mechanical constraints for analog boards is a PhD thesis or four to get the auto router to play itself.
- aj7 9y agoNo, comparison to Alpha Go was utterly naive. Where do you get the training set? From thousands of proprietary boards you have full documentation of? The physics rules for the aforementioned difficult tasks, EMI, stripline, race, not to mention all the thermal and mechanical constraints for analog boards is a PhD thesis or four to get the AI auto router to “play itself.”
- davrosthedalek 9y agoWouldn't it be enough to come up with a scoring function for the final routing solution? E.g. number of violations in DRC/ERC + total number of vias + absolute trace length.
- gravypod 9y ago> Honestly, for small boards, autorouting just isn't worth the time. Once you do a few layouts, it's very easy to see how everything can fit together. That's the point of the article. It should be worth the time. The author feels that after layout it shouldn't take any time to layout the board. Single click and done.
- sytelus 9y agoPerhaps you didn't read the article. Author's example circuit is fairly simple with handful of components. He estimates it would take him 10 hours to do manual routing to satisfy all the constraints. If things were more complex, I can easily see multiple days worth of effort. So, no, problem is not trivial and would save far more time than just 15-minutes. Double sided PCBs costs almost same as single sided however going from 2 layer to 4 layer literally doubles the cost. Going from 4 layers to 6 layers increases cost by 50%. For boards like Raspberry Pi or Arduino, this could make massive difference if you doing production at scale. So the problem is very real.
- stephen_g 9y agoI'm not sure if the author is the best reference though - a professional designer with good tooling wouldn't take anywhere near that long. Professional tools like Altium, Allegro, etc. have really good interactive routing tools, and some pretty cool semi-automatic routing tools where you select groups of nets, plot an approximate routes, and it works out the finer details. This can make routing busses and stuff almost as fast as routing single tracks. Secondly, sometimes dropping layers isn't an option - given EMI/EMC requirements you're going to need a ground plane in almost all high speed designs (anything over a couple of hundred hundred MHz). So for a lot of designs, four layers is the minimum. Add in impedance control, or RF, and you might need to go to eight (RF microstrip always needs to be next to a ground plane, or stripline needs one above and one below. So you can end up needing a lot of layers especially once you add in power planes). At the end of the day, it's a trade-off between lots of different factors, and I don't think (for any skilled professional) that the quality of the route would really come into it much...
- madengr 9y agoTook about 1 second to realize there were no bypass caps on the board. I stopped reading with any depth at that point. Autorouters meet all physical rules, while violating all electrical rules. Manual routing with the application of push and hug (semi-auto) routing is the way to go. No one just pushes an autoroute button.
- 9y ago
- taneq 9y agoFor sure, in some designs there are some signals that should really be laid manually according to arcane constraints known only to the designing engineer. But even in those cases, the vast majority of the other traces on the board are probably pretty un-demanding low-speed digital signals and would work no matter how they were routed as long as there was an actual physical connection. My current project uses a physically large but relatively simple board, and I've spent probably a total of two weeks' worth of time hand-routing all of the various iterations in KiCad. It's not difficult once you come up with some basic heuristics, but I sure wouldn't object to having those two weeks back. Even something as simple as the EagleCAD autorouter I used back in the early '00s would have been fine for most of it.
- tonyarkles 9y agoI use an autorouter as part of my flow, but the final board generally is hand-routed. What I find the autorouter helps a lot with is verifying that I've got sane parts placement. I'll do manual parts placement using my intuition, and then run the autorouter. If the autorouter ends up with 50 routing failures, then I've got nice feedback that the layout is going to be hard to route (and my intuition was wrong). I then focus on the parts it had the most trouble with and tweak. Then, once the autorouter has successfully routed everything, I tear it up and do hand routing. There's still a few placement tweaks that happen at this stage (considering things like analog vs. digital traces, EMC for clocks/high speed data lines, etc) but I know I'm starting from a reasonable base.