Freerouting vs DeepPCB: KiCad’s Default Autorouter Has a Better Alternative

Default Avatar
Alain-Sam Cohen

Freerouting was state-of-the-art in 2005. Twenty years of algorithmic progress changes things.


If you use KiCad and you’ve tried autorouting, you’ve probably used Freerouting. It’s free, it’s open-source, and it’s the most-recommended external autorouter in every KiCad forum thread since 2010.

It’s also using algorithms designed two decades ago.

Freerouting uses a rip-up-and-retry approach: route a net, encounter a conflict, tear out the conflicting trace, re-route it, repeat. This works on simple boards. On anything with real density (differential pairs, multi-layer stackups, mixed-signal designs) it produces results that need hours of manual cleanup.

Here’s what the alternative looks like.

The Comparison

FeatureFreeroutingDeepPCB
AlgorithmRip-up-and-retry (2000s)Reinforcement learning (2010s-2020s)
ApproachRoute one net at a timeGlobal optimization across the board
Typical completion60-75% on complex boardsMedian 96.9% on KiCad boards
95%+ completion rateRare on 50+ AW boards95.6% of KiCad boards
Via optimizationMinimalOptimized
DRC complianceFrequent violationsClean by default
Differential pairsPoor (no native pair support)Native support
Processing timeMinutes to hours, often stallsMedian in minutes
Input formatDSN only.kicad_pcb native
Max validated 95%+Rare on 200+ AW4,000+ AW on 6 layers
MaintainedCommunity (sporadic)Actively developed

Why the Difference Is So Large

Freerouting’s fundamental limitation is that it makes local decisions. It routes net A, then net B. When net B conflicts with net A, it rips up A and re-routes. But it never steps back to ask: “Would the whole board be better if I routed C first?”

The DeepPCB engine makes global decisions. It evaluates all nets, all layers, and all constraints together. It sees conflicts before they happen and routes around them proactively. This is why completion rates are 95.6% vs 60-75%, and via counts are dramatically lower.

Think of it like this: Freerouting is playing checkers (one piece at a time). The RL engine is playing chess (considering the entire board state).

The Real Cost of “Free”

Freerouting is free to use. But the actual cost is your time.

A typical scenario with Freerouting on a 100-airwire, 4-layer KiCad board:

  1. Export DSN from KiCad (5 minutes)
  2. Run Freerouting (10-30 minutes, often stalls)
  3. Get 65% completion (35 nets unrouted)
  4. Import back into KiCad, manually route 35 nets (2-4 hours)
  5. Fix DRC violations from Freerouting’s output (30-60 minutes)
  6. Total: 3-5 hours

The same board on DeepPCB:

  1. Upload .kicad_pcb (30 seconds)
  2. Route (a few minutes)
  3. Get 95%+ completion (a handful of nets to fine-tune)
  4. Download, fine-tune in KiCad if needed (a few mins)
  5. Total: 30-45 minutes maximum

KiCad Workflow

Freerouting requires exporting to DSN format, which loses some KiCad-specific information (custom pad shapes, zone fills, some constraint metadata). It also ignores copper pours when routing, doesn’t natively route differential pairs as pairs, and treats all vias with equal cost (no priority for power and ground).

DeepPCB has two paths for KiCad users:

Open-source plugin (May 2026): github.com/instadeepai/deeppcb-kicad-plugin. Install, click Route inside KiCad, watch the engine work live. No DSN export. No file conversion. Pay only for the work the engine actually delivered.

Web upload: drop your .kicad_pcb directly at app.deeppcb.ai, download a routed .kicad_pcb back. No conversion. No information loss.

When Freerouting Still Makes Sense

  • Budget zero: If you genuinely cannot spend money on routing tools
  • Very simple boards: Under 20 airwires, 2 layers; Freerouting handles these fine
  • Learning: Understanding how autorouters work by watching rip-up-and-retry in action

For anything you’d consider a “real” board (a project that will be manufactured, a design you need done this week, a board where quality matters) the time savings of AI routing justify the cost.


Try it on your next KiCad board: app.deeppcb.ai. Upload .kicad_pcb directly. 95.6% of KiCad boards hit 95%+ completion.


FAQ

Q: Is Freerouting still being developed?

Freerouting still receives community maintenance on GitHub: UI fixes, KiCad-compatibility patches, occasional bug fixes. The core rip-up-and-retry algorithm has not fundamentally changed since the 2000s. The project is functional and free to download, but the routing approach is the same as it was twenty years ago.

Q: Can DeepPCB replace Freerouting in my KiCad workflow?

For most boards, yes. The DeepPCB KiCad plugin (open-source, public since May 2026 at github.com/instadeepai/deeppcb-kicad-plugin) installs into KiCad’s plugin directory and exposes the routing engine through a Route button. No DSN export step. Net classes, differential pairs, layer stackup, and design rules defined in KiCad come through automatically. The completion-rate gap is largest on dense boards: 95.6% of KiCad boards on DeepPCB hit 95%+, while Freerouting rarely passes 70% on anything over 100 airwires.

Q: Is DeepPCB free like Freerouting?

The DeepPCB KiCad plugin is open-source and free to install. The routing engine itself is a paid product and each new account gets a $30 signup credit.

Q: Why does DeepPCB outperform Freerouting on dense boards?

Freerouting routes one net at a time. When two nets conflict, it rips up one and retries. On simple boards this works. On dense boards the conflicts cascade and the algorithm runs out of moves, which is why it stalls at 60-70%. DeepPCB’s reinforcement-learning engine evaluates the entire board state at once (all nets, all layers, all constraints) and chooses routing strategies that avoid conflicts before they happen. The performance gap widens as density increases.