What PCB Autorouters Get Wrong, and How to Make One Finish Your Board
People searching for a free PCB autorouter have usually just been failed by one. I work on the autorouter in PCBEditor, a browser PCB editor, so take my view with that in mind.
Here is what an autorouter should do, what autorouters get wrong, and the board where ours did not finish. Short answer: an autorouter turns the connections in your schematic into copper, across the layers you give it, against your board's design rules.
A good one routes across many layers and keeps going on hard nets, sizes controlled-impedance traces as it routes, and names every net it could not finish. No router fixes a bad placement, so when one fails, look at where the parts sit before you blame the router.
What a good autorouter does
Multi-layer, and it keeps going. It routes across two to sixteen copper layers. When a net is hard to complete, it reworks the routing around it rather than giving up on that net and leaving it to you.
Impedance-aware while routing. Controlled-impedance nets are widened or narrowed against the stackup as they are routed, not flagged afterwards. A trace that had to be the wrong width to fit is a trace you would have had to redo.
Via and layer-transition control. Through-hole, blind, buried and microvia rules are enforced per net class, so a two-layer hobby board and a controlled-stackup design do not get the same treatment.
It tells you what it could not route. Every run ends with a connectivity check. If four nets are unrouted you get those four net names, not a completion percentage. An autorouter that reports success while leaving nets open is worse than one that fails loudly.
The board it did not finish
This is an RP2040 development board on four layers: the RP2040 in its fine-pitch QFN, 2 MB of QSPI flash, a crystal, USB-C and two 20-pin headers. 33 parts on 70.2 × 50.8 mm.
The RP2040 board on four layers, 70.2 × 50.8 mm: 13 connections on 9 nets still unrouted (the badge top right and the status bar). The request to connect GPIO26 to GPIO29 left the board unchanged, and the editor offered a larger board or a fresh placement instead.
The run ended with 9 nets unrouted and two design-rule errors, and it said so, by name. A later request to connect GPIO26 to GPIO29 was discarded rather than break the copper that was already there. The export held back the Gerbers.
That is what a failure should look like: you know exactly what is open, and nothing half-finished goes to the fab.
What autorouters get wrong
Placement matters more than the router. Most unroutable boards are placement problems. If two connectors sit at opposite corners with a dense IC between them, no router recovers that. Ours will report the nets it could not reach so you know what to move. On the RP2040 board, the fixes on offer were exactly that: more board area or a fresh placement.
Dense fine-pitch parts are the hard case. BGAs and fine-pitch packages need escape routing before the general router can help. This is the area we are actively working on, and it is where you are most likely to see unrouted nets today.
Automatic is not always right. Analogue feedback paths, sensitive high-speed pairs and current-carrying power runs are often worth routing by hand. Route those first, then route only the open nets, which keeps every trace you drew. A full re-route is different: it deletes the existing copper and starts again, so the editor asks before it does that.
A 555 flasher during an edit. The change touched three nets, so only those three were rerouted, and the rest of the copper stayed where it was.
What the router guarantees
Routing is a search through physical space against hard constraints. Whether this trace clears that pad by 0.15 mm is a measurement, not a judgement. PCBEditor routes every layer against your board's rules, measures every clearance, and names any net it could not finish.
Using it
- Open a board: describe a circuit, import Gerbers, or draw one.
- Place the parts, or accept the generated placement.
- Route any critical nets by hand first if you have them.
- Run Auto-route, then check the design rules and the unrouted list.
- Export Gerber, drill, pick-and-place and BOM.
It runs in the browser on a board you already have, with no install and no per-seat licence, and it is free to start. The page this post is based on is at pcbeditor.com/free-pcb-autorouter.
Which autorouter has failed you, and on what? I'm most interested in the boards where the router got blamed for a placement problem, or the other way round.
Comments
No comments yet. Start the discussion.