| ▲ | lambdaone 5 hours ago | |
I've written my own autoplacer/autorouter. Placement is where you put the components on the board, routing is how you shape the traces to interconnect them. It does a pretty decent job on small hobby-project boards of ~40 components (which is my use case at the moment), and I'm working part-time in the background on scaling it further. The resulting designs pass all the KiCad electrical and geometry checks. Granted, I've spent about a year working on this problem, and it's hard, but not that hard a problem, providing you can avoid falling off the exponential cliff by decomposing it into hierarchical subproblems. Quick-and-dirty unsupervised whole-board synthesis from schematic takes about 5 minutes, longer if you want cleaner output with nicer-looking better-routed traces. As others here have said, placing is the real problem to solve, and that's where the magic happens. Place the components right, and routing is a relatively easy loosely-coupled constraint programming problem, place them wrongly, and you will have to get used to seeing the word UNFEASIBLE in your log output. | ||
| ▲ | throwaway2037 4 hours ago | parent [-] | |
This project sounds very cool. Is it open source? If yes, can you share a link to the repo? | ||