EEVblog 1535 - DeepPCB AI AutoRouting TESTED! - Page 1
Forum section: electronics / general

author: EEVblog
author_rank: Unknown
timestamp: March 28, 2023, 11:28:18 pm
content: Is the AI Machine Learning based DeepPCB autorouter better than Dave at routing a simple double sided PCB? Let's try it! TLDR; It sucks.

author: golden_labels
author_rank: Super Contributor
timestamp: March 29, 2023, 05:19:18 am
content: The beauty of buzzwords. Terms devoid of meaning so much, that you can call anything “AI” or “deep”! After all the user can’t verify it.My initial guess was, that this is just a “traditional” autorouter. But it seems the company does some research in machine learning, which suggests that the router may contain this technology. The questions remain: how much of it? How it is used? Does it even have any real impact on the solutions?From the video two things may be guessed. Some kind of a recursive optimization approach is used. The program clearly has some initial guesses and tries to make them better, quickly getting trapped in a local extremum. This doesn’t leave much space for ML algorithms. Secondly, the model it uses is based on 2-dimensional cartesian planes, not a graph describing the solution. This is a much weaker guess, but the number of weirdly shaped traces seems way too big for the latter.Which is sad, because it’s just “throw a smortnet against the wall and see if it sticks”. Instead of trying to solve the problem using the most appropriate mathematical abstraction and using ML to improve or avoid the hardest steps.

author: thinkfat
author_rank: Unknown
timestamp: March 29, 2023, 05:48:01 am
content: So, they have not progressed in all since I tested them last time. I had better results using "Freerouting", and almost usable results after setting up cost functions, net classes and proper constraints.

author: Psi
author_rank: Super Contributor
timestamp: March 29, 2023, 06:38:32 am
content: I feel pretty confident that a good auto-router should be possible with current AI technology.There's probably just no-one willing to put in 10 million to develop it.But with ChatGPT/OpenAI now a thing it's probably that building a good auto-router AI is much cheaper now.

author: thinkfat
author_rank: Unknown
timestamp: March 29, 2023, 07:07:48 am
content: Quote from: Psi on March 29, 2023, 06:38:32 amNah, come on. The price tag on an AI autorouter is not 10 billion

author: voltsandjolts
author_rank: Unknown
timestamp: March 29, 2023, 07:41:52 am
content: Quote from: EEVblog on March 28, 2023, 11:28:18 pmThank goodness...for now

author: Psi
author_rank: Super Contributor
timestamp: March 29, 2023, 12:43:28 pm
content: Quote from: thinkfat on March 29, 2023, 07:07:48 amops. I mean to write million. haha

author: igendel
author_rank: Frequent Contributor
timestamp: March 29, 2023, 01:34:58 pm
content: It's... odd to call an auto/AI-routed design a "Fail"* just because it's routed differently from how a human would have done it. Did anyone claim that his autoRouter produces aesthetically superior results? Or stated that it works just like a human designer?*The word "Fail" is currently in the YouTube video title.Personally, I appreciate a visually pleasing PCB as much as anyone, but that probably shouldn't be the point here. Assuming the autoRouter produces a complete solution, I believe the reasonable questions should be:- Will the circuit work to spec?- Is it more prone to production/mechanical/electronic faults than a human design?- Will it be easier to bodge, when the need arises?- Is it, all things considered, cheaper and/or faster to design?

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: March 29, 2023, 01:42:10 pm
content: I wonder if it would be more viable if the input was the process of a human designer working, instead of the finished result.

author: thinkfat
author_rank: Unknown
timestamp: March 29, 2023, 02:05:39 pm
content: Quote from: igendel on March 29, 2023, 01:34:58 pmThe thing is - it didn't produce a complete solution. Hence the title "FAIL" is appropriate.Also:- didn't produce a complete solution- wasn't faster than a human- got itself stuck in a corner and the result was FUBAR.- performed worse than a traditional autorouter solution.

author: igendel
author_rank: Frequent Contributor
timestamp: March 29, 2023, 02:16:01 pm
content: Quote from: thinkfat on March 29, 2023, 02:05:39 pmAs far as that one specific test was concerned, true.But that's not what Dave talked about for over 90% of the video (also, if I remember correctly, a solution was found after a very short time, the service just decided to keep on going and then messed it up).

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: March 29, 2023, 02:23:24 pm
content: I think the main "fail" was that it was making dumb mistakes that would have been trivial to avoid with some very simple rules.

author: bbrand67
author_rank: Newbie
timestamp: March 29, 2023, 02:57:34 pm
content: Dave, could you make the DSN file available?I'd like to compare with the result of Freerouting - I think it can hardly be worse

author: Kleinstein
author_rank: Super Contributor
timestamp: March 29, 2023, 03:54:40 pm
content: Not completing the job is a fail. Routing in the more traditional way without strong directional restrictions is a tough problem and it is not a surprise to have it fail. The altium auto-router also did fail, though it got a little further - still both solutions are far from complete. Even just 1 missing link would not be working PCP.I did not see traces relatively close togther and this may indicate that it got some more stringent design rule that could make a solution impossible.With a 2 layer baord a rather stupid autorouter could produce a sulution with brute force separation of horizontal and vertical. It would be an ugly solution with maybe thousands of vias, but changes are high it would work for the board shown.I would not make too much of some of the odd corners and silly looking details. A reasonable routing process is usually first to get a valid solution and than have some optimization and clean up step. The AI based router may still have that and just never reached that stage. It could even be a combination of a classic try and error router for the first step and the AI only in the clean up and optimize stage that it never reached. If this would work, I would not mind.

author: SiliconWizard
author_rank: Super Contributor
timestamp: March 29, 2023, 10:53:24 pm
content: Quote from: bbrand67 on March 29, 2023, 02:57:34 pmOh really?Freerouting is actually not half bad for an autorouter. I've definitely seen way worse.

author: EEVblog
author_rank: Unknown
timestamp: March 29, 2023, 10:55:06 pm
content: Quote from: mikeselectricstuff on March 29, 2023, 01:42:10 pmYes, it would surely greatly benefit from live training.

author: EEVblog
author_rank: Unknown
timestamp: March 29, 2023, 10:56:16 pm
content: Deep PCB replied:Quote

author: temperance
author_rank: Super Contributor
timestamp: March 29, 2023, 11:42:16 pm
content: QuoteBack to I don't remember which year. Soon this AI will decide to provide you some tape and decals delivered to you by someone on a horse. But maybe I'm not qualified to comment on this because long ago some member of this board told me that a board I routed looked as if it was done by a schizophrenic because it used two different routing strategies. Of course we got along fine.

author: srb1954
author_rank: Super Contributor
timestamp: March 30, 2023, 12:58:00 am
content: Quote from: Psi on March 29, 2023, 12:43:28 pmYou were probably more correct with your original post.S/W projects do tend to significantly overrun their initial budgets.

author: thm_w
author_rank: Super Contributor
timestamp: March 30, 2023, 04:50:23 am
content: Altium marketing are absolute fools for not giving you a free permanent license.Quote from: EEVblog on March 29, 2023, 10:56:16 pmLOL 7 hours with nvidia and cloud processing.Quoteaka brute forces the solution, which is why it took 7 hours.QuoteThat sounds like bs, it would maybe make more sense to have an option: "top layer - auto/vertical/horizontal/none", which is what the Altium autorouter has.

author: EEVblog
author_rank: Unknown
timestamp: March 30, 2023, 11:26:20 am
content: Quote from: thm_w on March 30, 2023, 04:50:23 amThey did every year for quite a few years, but someone who handled the renewal every year seems gone, and now no one else seems interested.

author: hamdi.tn
author_rank: Frequent Contributor
timestamp: March 30, 2023, 11:42:29 am
content: The company is called InstaDeep, DeepPCB is one of theirproduct. It's a Tunisian company and i had a talk with their developers, they were trying to promote the thing and i said to them exactly what Dave said, and heavily criticized even the routing example they showed in their presentation, it was a simple pcb yet horribly routed.To their defense, they are not in anyway related to pcb design business and what they end up saying in their presentation that the tool is mostly part of "decision making" algorithms that they are developing.Useless.Hamdi

author: Psi
author_rank: Super Contributor
timestamp: March 30, 2023, 11:53:52 am
content: Quote from: EEVblog on March 30, 2023, 11:26:20 amSounds like you need to make a video and mention they've decided to stop supporting the eevblog.And talk about your plans to make more educational videos about kicad/diptrace/etc...There's nothing like publicity and fear of losing future customers to get them into gear.

author: kripton2035
author_rank: Super Contributor
timestamp: March 30, 2023, 12:24:37 pm
content: Quote from: bbrand67 on March 29, 2023, 02:57:34 pm+1would like to compare it with Topor...

author: bbrand67
author_rank: Newbie
timestamp: March 30, 2023, 02:28:27 pm
content: Quote from: SiliconWizard on March 29, 2023, 10:53:24 pmI think you misunderstood me. I tried Freerouting a couple of times and was pleasantly surprised.What I wanted to express was that I think the results of Freerouting will likely be better (or at least not worse) than those of DeepPCB.

author: thm_w
author_rank: Super Contributor
timestamp: March 30, 2023, 08:55:05 pm
content: This was linked in the previous thread years ago, to demonstrate what Dave said about saving time on point to point routing:But slightly misleading as the trace space design rules are not the same.

author: SiliconWizard
author_rank: Super Contributor
timestamp: March 30, 2023, 11:01:27 pm
content: Quote from: bbrand67 on March 30, 2023, 02:28:27 pmYep your sentence looked ambiguous as to which one would be worse. Thus my answer.That said, 3 general points regarding autorouting even with Freerouting:1. Autorouting 1- or 2-layer PCBs is almost always atrocious unless it's a dead-simple circuit. Especially the routing of power supplies and grounds.2. You should never let an autorouter route 100% of your PCB from scratch. The few times I have used Freerouting (on large boards with a lot of non-critical digital signals), I have routed all power supplies and bypass capacitors manually, then let the autorouter finish the job. Then hand-corrected a few traces.3. Related to 1, if you can use 4-layer or more, define your power planes beforehand (for Freerouting, there's a documented way of doing it so that the autorouter knows about your power planes). In this case, you can do without hand-routing power supplies in most cases (except for routing switching power supplies, which can be disastrous with an autorouter). Also define net classes. Preparing a PCB for autorouting takes a while, don't expect it to be a 2-second point & click affair.

author: EEVblog
author_rank: Unknown
timestamp: March 30, 2023, 11:24:09 pm
content: Goal achive. Their parent company got gobbled up by a bigger fish:https://techcrunch.com/2023/01/10/biontech-acquires-tunisian-born-and-u-k-based-ai-startup-instadeep-for-562m/

author: EEVblog
author_rank: Unknown
timestamp: March 30, 2023, 11:34:19 pm
content: Quote from: thm_w on March 30, 2023, 08:55:05 pmI don't recall seeing that, but I think Altium did contact me for the file.Yes, that's a just a grouped version of auto routing a single connection which you can also do, and is very handle for those "last mile" traces if would be a PITA to route yourself at the end of a project. Group selected routing works well becasue the human is selecting what's likely to route and what isn't. Essentially a manual priority based pre-conditional setup for the routing.

author: golden_labels
author_rank: Super Contributor
timestamp: March 31, 2023, 01:27:18 am
content: Quote from: igendel on March 29, 2023, 01:34:58 pmReadability of the traces is also a goal, isn’t it?However, in this case it may be considered a fail. Not because it’s not aesthetically pleasing. Not even due to not finishing the routing and still this taking more than a human would need. It is a fail, because the mistakes it made indicate it has serious trouble with following basic heuristics and making no-cost simplifications. It generates traces and makes choices, which will get in its own way with more complicated designs.

author: SiliconWizard
author_rank: Super Contributor
timestamp: March 31, 2023, 03:25:03 am
content: Quote from: EEVblog on March 30, 2023, 11:24:09 pmBiontech, the "vaccine" company...

author: thinkfat
author_rank: Unknown
timestamp: March 31, 2023, 07:35:23 am
content: I decided to put DeepPCB to a test myself, giving them the same PCB I used a few years back. It completed after about 2 hours but didn't produce a complete solution.Then I ran the same PCB through freerouting, it produced a complete solution in 10 minutes. Using less Vias than DeepPCB (49 vs. 77).Both were working under the same constraints, using netclasses and manufacturing constraints I had set up in KiCad.I've attached both results. I've also attached the human-routed PCB. Note that it used more Vias (88), but many of them were for stitching planes together.

author: igendel
author_rank: Frequent Contributor
timestamp: April 01, 2023, 03:41:02 pm
content: Quote from: golden_labels on March 31, 2023, 01:27:18 amFirst of all, given the further information that was provided here since my previous post, I guess I'll have to redact most of what I wroteBut as a general question, under the umbrella of "Can computers route traces"? I doubt readability is a goal, certainly in the long term, because the whole point is to take humans out of the loop as much as possible, and only humans need it "readable".Perhaps a good comparison would be to the famous google.com page source code. We humans really love readable code, but the goal there is simply function and performance.

author: Kleinstein
author_rank: Super Contributor
timestamp: April 01, 2023, 04:27:29 pm
content: The the auto-router failed alread the the much simpler example is a bit embarassing for the AI. This one looks really simple and freerouting had not problem with this.Dave's example was already a bit on the difficult side, as the auto-router of Altium also failed on the that job.There is usually no real need to have a PCB layout readable. There are more other constraints or secondary targets, like keeping am intact ground plane, minimizing cross talk or emissions or the number of vias that matter. I don't think the current exampled did care about this. If a computer would produce a well working layout that looks uggly, this would be OK. The main point is getting a layout that gets all connections done - a partial solution is pretty useless (maybe OK for a 1 off with using an extra bodge wire).

author: Damperhead
author_rank: Contributor
timestamp: April 01, 2023, 07:55:38 pm
content: It is very interesting to follow the development of autorouter. However, it must be stated that not much real development has taken place during the last decades. In the blog example, the connection was quite simple. Maybe a few major rules that should be followed. What if the autorouter was given the task of wiring a DC/DC (buck) converter, where certain things that strongly affect the operation must be taken into account, such as the ground loop between input and output. What about considerably more complex integrated circuits such as PLL Synthesizers, ADCs etc. All of these have many special features that must be taken into account in the PCB layout, which is ultimately a compromise from the reference design provided by the IC vendor. And I haven't mentioned RF circuits yet, where the design rules and practices differ a lot compared to the DC world.

author: nctnico
author_rank: Super Contributor
timestamp: April 03, 2023, 05:26:22 pm
content: Quote from: Damperhead on April 01, 2023, 07:55:38 pmMaybe a DC-DC converter is a bad choice, but I've seen Altium's autorouter do a good job on DDR memory interfaces where length and phase matching (including internal delays in the packages) needs to be taken into account. It is pretty tedious to do this manually. It all comes down to setting up the constraints properly.

author: thm_w
author_rank: Super Contributor
timestamp: April 03, 2023, 09:20:40 pm
content: Quote from: nctnico on April 03, 2023, 05:26:22 pmYeah but just in general they could make the constraint setup much more user friendly, and visual, if they actually wanted to expand auto router use.eg: click on a trace/net in the schematic, type in its minimum current: 5A, now it shows above the trace. Click on the DC/DC feedback trace, select "route shortest possible". Something like that.

author: SiliconWizard
author_rank: Super Contributor
timestamp: April 04, 2023, 02:04:30 am
content: Quote from: nctnico on April 03, 2023, 05:26:22 pmThat's the kind of use cases that I think make autorouters useful.But placement is the critical part, and can be very tedious. I would definitely favor a good autoplacer over any autorouter.

author: thinkfat
author_rank: Unknown
timestamp: April 04, 2023, 06:24:30 am
content: Quote from: SiliconWizard on April 04, 2023, 02:04:30 amAbsolutely. Even something that grouped parts together based on the "length" and count of crossings of ratsnest lines would be a big help for initial placement. Maybe if one considered ratsnest lines as rubber bands? There are visualization tools able to work out clusters that way.

author: nctnico
author_rank: Super Contributor
timestamp: April 04, 2023, 12:57:28 pm
content: Quote from: SiliconWizard on April 04, 2023, 02:04:30 amYou have a very good point here. In many cases I spend more time on placement than routing.

author: Kleinstein
author_rank: Super Contributor
timestamp: April 04, 2023, 01:46:58 pm
content: Of cause it depends on the PCB, but in many cases the placement and rounting are not really separate. It is quite common to move / rotate parts while doing the routing. In some cases this can even include changing the case / pinout of some parts. Some SMD parts like OP-amps come with different versions to ease on the layout.Another classic is swapping equivalent pins on some parts (e.g. the data lines on RAM chips).Doing lenght matched buses is defintely something to let some comupter do. This is usually also one of the easier parts for the computer.The point where autorouters are a bit weak is when it comes to the topological decisions, so the question of going left or right way around - especially if the leads to a solution where no individual connection gets the direct way on its own, but all have to compromise.

author: EEVblog
author_rank: Unknown
timestamp: April 10, 2023, 12:17:32 am
content: Quote from: Kleinstein on April 01, 2023, 04:27:29 pmTo be fair to Altium, that video of Altium doing selective autorouting is excellent.It's not a stretch to expect magical AI to at least figure out some selective way to route local location based group nets like that.

author: EEVblog
author_rank: Unknown
timestamp: April 10, 2023, 10:28:19 am
content: Chris interviewed another AI PCB company I hadn't heard of last week, Quilter. Haven't listened to it yet:https://theamphour.com/626-intelligent-routing-with-sergiy-nesterenko/https://www.quilter.ai/

author: EEVblog
author_rank: Unknown
timestamp: April 10, 2023, 10:29:53 am
content: Quote from: karpouzi9 on April 10, 2023, 07:17:14 amA zombie that made bank. DeepPCB was part of Instadeep that got acquired.https://techcrunch.com/2023/01/10/biontech-acquires-tunisian-born-and-u-k-based-ai-startup-instadeep-for-562m/

author: thm_w
author_rank: Super Contributor
timestamp: April 10, 2023, 09:26:40 pm
content: Yeah, doesn't matter if they sat around doing nothing of value, if investors were impressed.Quote from: EEVblog on April 10, 2023, 10:28:19 amHere is one of their example boards on the site.The use of any-angled traces could work well in some situations. But it also means a human going in a selectively re-routing is going to have a painful experience.

author: EEVblog
author_rank: Unknown
timestamp: April 11, 2023, 05:54:29 am
content: Quote from: thm_w on April 10, 2023, 09:26:40 pmSeriously? The released that as an example?

author: SiliconWizard
author_rank: Super Contributor
timestamp: April 11, 2023, 07:52:54 pm
content: Quote from: thm_w on April 10, 2023, 09:26:40 pmVery nice!!

author: thm_w
author_rank: Super Contributor
timestamp: April 11, 2023, 09:03:19 pm
content: Quote from: karpouzi9 on April 11, 2023, 04:15:06 amIts useful on single sided boards with limited space. But don't start the layout until everything is placed, push and shove with these traces doesn't work well (altium).Rounded traces are another fun one to do.On a rectangular board like this with tons of space it makes no sense.

author: golden_labels
author_rank: Super Contributor
timestamp: April 12, 2023, 12:08:31 am
content: Quote from: karpouzi9 on April 11, 2023, 06:24:54 amHey, they at least used a graph! Appreciate that!

author: EEVblog
author_rank: Unknown
timestamp: April 12, 2023, 11:07:04 am
content: FYI, Altium contacted me and said they'll give a me pro license again