Hacker News new | past | comments | ask | show | jobs | submit login
DeepPCB: Pure AI-Powered, Cloud-Native Printed Circuit Board Routing (deeppcb.ai)
116 points by chakerb on Nov 28, 2019 | hide | past | favorite | 42 comments

I exhausted the 3 project limit trying to see how it would route open source mechanical keyboard PCBs.

Every single one failed with an error.

The first one failed with an error that didn't specify the reason, the second one because it had more than 200 wires, though I wonder how that's possible on a 3x3 macropad PCB, and the final one failed with "Sorry, we do not support non 45° rotation for this beta version".

The errored projects count towards the limit of 3 projects you can create.

Doesn't seem to be working all too well.

Yeah, but that failure was the result of advanced pure AI cloud native deep learning neural networks. The future is now. In a few more years you won't even be able to tell if a person gave up and quit a trivial task or if it was just a sophisticated machine.

> In a few more years you won't even be able to tell if a person gave up and quit a trivial task or if it was just a sophisticated machine.

We have that already, we call it GAN.

Hi gorbachev we've just refreshed your free credits to 4 per week and won't include errored projects in this count. If you need more pls let us know at support@deeppcb.ai You can also find more information in our longer answer posted as a separate comment. Thanks! -KB & the DeepPCB team

Thanks, I'll take another look this weekend.

Don’t mean to undermine the effort but “ what is the problem being solved here”? I have used Altiums auto router and it’s like Tesla AP version 1. Also like someone mentioned below, the hardest part of PCB routing is Placement. There are Tons of variables that goes into consideration for getting placement correct. Routing follows placement and routing can’t fix placement problems. If cost of routing is what the OP is after then they are mistaken as you could get a 12 layer PCB routed with analog, mixed and high speed DDR and RF within a week by an army of PCB designers in Taiwan and PRC.checkout Palpilot if you need references.

> within a week by an army of PCB designers in Taiwan and PRC.

You could also (ab)use electrical engineering students, might take a bit longer though.

But routing has indeed become very cheap. I still could see this service as useful, especially for the amateur prototype market. There are a lot of software devs that immediately die if they come in contact with electricity in any form.

But they might still need some hardware. And maybe they could offer some templates where you can just add the chips you need right now.

> You could also (ab)use electrical engineering students, might take a bit longer though.

It would take longer to train them, PCB design isn't taught in much depth to undergrads at least in the US.

That's human powered for sure. Routing isn't the hardest problem, everything is quick once all the components are placed where they belong. E.g. TopoR already does quite a good job at the routing part.

But if you only take a schematic, and the design is sufficiently complex, it's already difficult if you hand it to another engineer who's not too familiar with what is being done, let alone a machine learning model.

It also states "We harness the power of advanced AI and deliver results in less than 24 hours...", which is a red flag...

Agreed, Altium's autorouter takes, what, 10 seconds?

24 hours? That's an East Asian subcontractor.

To be fair, even before the deep learning revolution, routing software had to use advanced algorithms to produce solutions.

IIRC routing from a schematics has been proven to be a NP-hard problem.

The website states “no-human-in-the-loop”. So I guess it depends on how much you trust them.

It seems like all component positions need to be fixed first, then it routes between them. That’s based on the examples, fact that it takes DSN input files... and output SES files.

The SES files appear to contain traces only. So I assume you import it over your fixed component locations.

I just tried uploading a board DSN file (exported from kicad)... the only feedback I got is “Board Error”... there’s no indication what the error might be.

It seems to be at quite an early stage of development...

Edit: after logging in, I can see an error “Sorry, we do not support board has more than 400 pins for this beta version” (sic). All the examples are very simple boards... so perhaps I’ll try something else.

Yeah, i saw the part now too that everything has to be placed first. This makes it quite... unspectacular. It's really cool if they come up with a good auto-router, but if it's just that I'd still prefer an offline solution, for faster iteration and most likely cost (when it's paid then).

I guess I don't spend enough time laying out tedious-but-straightforwards PCBs to appreciate this. Almost everything I do has some important layout considerations like "this loop inductance should be tiny" or "this section needs guard rings" etc. Also, placing components is non-trivial, if you're doing anything dense, fast, or sensitive. I find that's like 90% of layout work: guess where the components should go, try to route the tricky bits, move the components around a bit, route again, etc...

This is the part that all the autorouters seem to miss. A board design may be represented in the computer by a schematic, but in reality it's a schematic + a huge amount of engineer knowledge. The person laying out the PCB needs to be able to look at the schematic and know that the switching regulator has very precise layout requirements, but that status LED can be at the end of a long trace.

That information simply isn't captured in current schematic software. Until it is I can't see autorouters being effective.

I can see a world where every schematic includes simulation models, and the autorouter uses simulation data to know exactly what frequencies are moving down each net and in each location. That requires detailed spice models of every component on your circuit though - so it probably wouldn't save the designer any time anyway as they're just doing different work. I'm not even sure how you'd simulate the signals coming out of a microcontroller - how does the autorouter know that one PWM IO is producing a 500kHz clock into a high current switch and the other PWM IO is producing a fixed 3.3V?

So then maybe you need to incorporate not only simulation models, but your actual CPU code. Which then means you need high quality microcontroller and FPGA emulators. There's a new problem!

There's probably a middle ground - a designer could annotate each net with a waveform which would be fed into the spice simulation - but even then we're talking significantly more work than just laying it out yourself.

Many of your later concerns could be handled with stub functions and unit tests.

Have a test where a specific pin on the processor is set to a 500 kHz and have tests for certain conditions, emissions below a certain level, interference with some other trace, etc.

Everything with hardware development seems to be at the stage of a neglected codebase with manual testing, poor test coverage, and slow process. We're just at the point where many of those problems are solvable now with pretty good actual EM simulation.

Lots of features need to be added but it all just seems very possible at this point.

It looks like a mistake to target KiCad. Pros generally use Altium.

2 layers is super limiting!

24 hour turnaround is actually quite slow... I would bet they have a human in the loop.

Just want to counter this sentiment and say I love the fact they are targeting KiCad. A good way to incentivize the free, open source tool. Most hobbyists don't need more than 2 layers, and that seems like something that can be eventually expanded in the future.

24 hours, however, is a little bit long.

It would be nice to see exactly what they are offering before uploading a file, right on the front page. Some components absolutely need to be in a fixed position, some can be moved around... Some have RF requirements... Does it minimize size? Does it brute-force the traces?

From what I can tell, you need to position all the components and then it routes between them...

That's a shame... There is a bit of fun figuring out routing, but, I don't think that is an opinion that applies to most.

It’s not about whether or not there are people that enjoy it; it’s the fact that the market they are serving doesn’t exist (people that don’t enjoy or don’t want to route themselves but have already placed the components correctly).

> Just want to counter this sentiment and say I love the fact they are targeting KiCad.

Me too. Altium is a reasonably good tool, but I would be super happy if its monopoly on professional electronics design would be broken.

The website says there’s no human in the loop... but who knows.

It takes dsn input files and outputs ses files (if the examples are accurate).

The ses files appear to contain traces only. So I assume you would import these over your already laid out components.

Perhaps two layers is for the free version?

There doesn’t seem to be anything Kicad specific, maybe they’ve only tested it with Kicad. It seems to come from a team doing a bunch of AI stuff, not a hardware focused team. So I can see there being issues.

I’m curious to see how well it works though.

They likely targeted Kicad because the file formats are open and documented.

Sadly another project designed by a software/AI guy who has little to no clue about the problem they are trying to solve.

When all I have is a hammer everything looks like a nail ...

I wonder whether this is from the same clueless people who were trying to sell an idea of AI-generated board layouts on Reddit not a long time ago.

Alternatively, they might be renting expensive GPUs, and they are trying to minimize how many they are running in parallel. 24 hour turnaround probably lets them run each generation consecutively.

Or both. It looks like a “preview” release and might still have humans checking the results to remove more bugs. That also explains targeting KiCad. They’re wanting “hobbyist” projects especially as 2-layers is limited. Though I do use KiCad for our company as our main thing isn’t electronics.

Figured AI routing was a matter of time. Though I’d be more happy with a “guided” AI layout. Often I want some general layout with parts but don’t care too much of the specific routes. It’s tempting to add a more advanced routing tool to KiCad...

Quite the contrary, KiCad is constantly improving and getting better with each release. When did your Altium last crash? I bet it wasn't more than a week ago.

To quote a colleague: "Altium is used by those who are forced to do so"

The real reason why companies are invested so much in it, because they have knowledge in it and huge design libraries.

Now offering a way to convert those properly to KiCad and giving support for edge-cases, that would be a business opportunity.

Altium crashes, but is useful for routing non-trivial boards.

I last used kicad in 2014 so perhaps my opinion is dated, but there was no competition then. I can't imagine an order of magnitude improvement has happened since.

Other random thoughts: real boards take weeks because signal integrity had to be taken into account. If I can just mash wires from point to point it doesn't take that long. Also: hobbyist kicad users won't pay for this service.

No expertise necessary - who the heck is the target demographic? Who is doing custom hardware these days that finds the PCB layout part of the design difficult (but amenable to autorouting?)

Since KiCad 5.1 you can have more than 2 layers.

GP refers to deeppcb not supporting >2 layers atm.

Not terribly positive comments here, but I think people are missing the point. This is an unsolved problem, or at least a problem not solved well. Any efforts in this space should be encouraged. I'm not sure we can trust the main vendors to innovate, and starting off with Kicad makes 100% sense to me at this stage.

If this is the first rung of the ladder and it's all up from here, good luck - I'm sure we all hope you nail it.

A good comment here about placement - I hope that this approach can grow to adjust placement to some degree, even if not complete placement control.

> This is an unsolved problem...

Yes, this is the point. It's NP-Hard. If you solve this problem, you can make far, far more money doing something besides routing mechanical keyboards and Internet of Things sensor cruft.

Autorouters have been in development for the last fifty years, starting with wire-wrap machines at Digital, and going on to the work of very, very smart people at Altium and Autodesk. The smartest people in their field have been working on autorouters for decades, and this company wants to solve it with 'the cloud' and 'AI'. Sure, buddy.

150 pairs and 2 layers is abysmally limited for anything but the lowliest hobbyist (read: poorly designed) boards, and there are no examples whatsoever of what this product produces. Like, really, great job for producing a demo to show to investors but you might also want to demonstrate your demo.

Oh, and if you're using machine learning on PCB design, that means you need to train your models somehow. That means your training data is absolute crap, because most designs for Open Source hardware are objectively crap. You would be better off paying someone in China $40 to lay out your board, which would also have a 24-hour turnaround. Which brings me to my next point...

I just don't understand how deep learning is amenable to this problem. It's just a straight up optimization problem. How is deep learning appropriate?

I think it is probably appropriate. Chess and go are just "straight up optimization problems", but they're too difficult for traditional optimisation algorithms to work. You need something to do some fast pattern recognition to cut down on the search space. This is similar.

I expect if you search the literature you'll find a ton of work on this.

Unless you believe humans are solving NP-hard problems somehow, it seems reasonable that we learn heuristics to solve specific problems. Theoretically, so could an ML model, and indeed, if you look at recent results, using things like graph NNs on traveling salesmen problems have done very well.

It is interesting that on the front page, they show a SMT pick and place machine. It only has a small tangible connection to auto routing. It would have been much better if there is a short video showing the routing in action.

Layouters hate auto routers.

Hi everyone, Karim the Co-founder & CEO of InstaDeep here, first thank you for the interest and comments we did not expect we would appear in HN so quickly :) We’ve reviewed carefully the different points made, comments below:

“This is an unsolved problem… Yes, this is the point. It's NP-Hard”: "We harness the power of advanced AI and deliver results in less than 24 hours...", which is a red flag” InstaDeep has built credibility in AI circles by innovating in Machine Learning and Reinforcement Learning (RL) specifically on how to find good solutions to NP-Hard problems with AI. For example, you can check our R2 paper (https://arxiv.org/abs/1807.01672) about AI for combinatorial optimization which was accepted at the NeurIPS 2018 in the Deep RL workshop. More recently we’ve just published joint AI-research in RL with Google DeepMind that earned a top 2% global ranking at NeurIPS 2019 (https://arxiv.org/abs/1905.12941). We also have specific domain expertise in Hardware: some of our team members have worked for more than 15 years in this field in companies such as STM, NXP, Dialog, etc. We believe it’s an exciting time to be working on PCB Routing, an NP-Hard problem.

“ I would bet they have a human in the loop”: No our system is fully automated (which is why it’s a first) so bear with us as we are in beta :) Automation is possible because we use RL, which is very useful for decision-making problems like PCB Routing. At InstaDeep, we deploy RL systems in the real world and work closely with hardware partners such as Nvidia (we’ve recently been upgraded to preferred partner) and Intel (we’re part of the AI Builder Program). In our opinion, having no-human in the loop is critical to accelerate PCB development cycles, and that’s a key feature of DeepPCB.

“Shitty auto routers have existed for 25 years, at least.”: that’s the whole point, autorouters don’t get the job done properly, which is why many boards are still done manually. It makes sense that AI could improve things here.

“the hardest part of PCB routing is Placement”: totally agree here, and our goal once DeepPCB routing is out of beta, is to tackle placement. Routing is an important first step, but we don’t plan to stop there. In our livestream (https://www.youtube.com/watch?v=Ea5i-l8YKQo) a few days ago we clearly mentioned that Placement is our key goal for next year.

“I exhausted the 3 project limit trying to see how it would route”: we hear you and have decided to increase the limit to 4 credits per week. We’ve also regenerated the credits for everyone already registered! We will periodically review credits based on demand to accommodate as many users as possible. If you would like more credits please contact us!

On a final note, keep in mind we’re in early beta and our goal is to hear from you to iterate and improve the product better. Things might break from time to time and we’ll certainly make mistakes but what matters to us is to keep working hard and make progress on this exciting problem. We believe it’s the combination of Hardware domain expertise and advanced AI know-how that yields strong results. If you agree, don’t hesitate to reach out at support@deeppcb.ai we’d love to hear from you!

It will be interesting to see how this handles signal and power integrity. What design rules is it actually following? If it’s just tossing down routes, AI is not needed for that. Shitty auto routers have existed for 25 years, at least.

I was reading comments here musing that it must be 30 years since I last routed PCBs on a daily basis: auto routers were useless back then and it looks like not much has changed. Not too surprising when you consider how hard a problem it is. Anyone else have the experience of waking up in the middle of the night with the solution for how to get "that last trace" through?

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