Hacker News new | past | comments | ask | show | jobs | submit login

I was a KiCAD user until they dropped support for the auto-router. They apparently had some dispute with the developer of the auto-router, and took out auto-router integration. (Yeah, there's some hack to make it still work, maybe.)

I have an old board I'd like to revise slightly, but it's too much work and risk to convert to the new "interactive" (i.e. manual) routing system.




We have no dispute with the auto router.

1. It was written in Java. We do not have any java devs nor any interest in learning that language. Nobody else has stepped up, period. Most of us develop from professional experience and Java simply isn't part of that.

2. The autorouter was never embedded in KiCad due to being java. It was a command line utility. It's behavior and/or bugs varied as a result.

3. ***The absolute biggest issue.*** The autorouter has broken licensing status. The author of it was sued by his company for writing it on company time/knowledge/NDA and they claimed ownership of it. We cannot legally bundle it because it's copyright status is essentially disputed by a legal entity with piles of money. That author also disappeared when he got sued. Somebody attempted to fork it but they also gave up years ago because autorouters are.....

4. Autorouters are a beast of work and a full time job in of themselves to ensure they work. You can create simple solvers but they quickly break down once you add more and more traces and constraints. There are even companies that offer autorouting services now as an example of just how much work is involved in doing it right.

We decided our time is best spent elsewhere. We wouldn't stop someone if they came up and developed a new autorouter from scratch to contribute, but nobody has and we have limited man power. We are a niche group. We are Electrical Engineering backgrounded using our intense experience and industry connections to write a tool for ourselves and others. This is well beyond the interests of comp sci code monkeys to get manpower as easily as leftpad on github ;)


I have manufactured a lot of boards with kicad, and have used the auto router exactly once.

You can still use the old auto router, you just have to do it manually (export, route, import).


Was the autorouter ever embedded into KiCAD?

According to this : https://freerouting.org/freerouting/using-with-kicad it should still work as it did long time ago.

What I do remember is that the author of freerouting.org was harassed by his (former?) employer.


As you say, it's interactive (with push and shove routing), not manual. Manual routing is what e.g. EAGLE had for most of its life, where you have to draw every single piece of a trace manually and every conflict meant removing (ripping up) the already routed tracks.


I've never worked with the auto-router, but personally I think placement is giving me the most headaches.


Yes, initial placement is a pain. Especially on a brand new layouts!

However, I've been contemplating the idea of creating a smarter auto-placement for new boards where it'd take the relative positions on the schematic into account. As in taking the relative distances of parts on the schematic, probably using a weighted heuristic / k-means to determine part clusters.

That'd be about 80% of what I'd want from a full auto-router. The new S-Expression eschema format should make it almost trivial to do as an external program. I tried on the old format and it was way to difficult to parse. Though if the Python API's really have been updated then it could be made into a plugin.


Sounds cool. But a simpler possibility would be an option to do placement in part. E.g. select a bunch of components, then click a button and they're transferred to the layout, and then you manually place them. Then continue selecting other components, etc.


1. Learn to carefully structure schematics as hierarchical sheets. 2. Use the replicate-layout plugin to duplicate schematic sheet layout across multiple instances. 3. Get a graphics tablet.


I don't think he was talking about schematic view. He is talking about component placement on the PCB.


The two are linked. If you structure schematics suitably, you can deduplicate layout (component placement). Another tip is to have two large screens so you can simultaneously navigate both layout and schematic. When you click a component in either, the other is highlighted. This can be a big help during layout. Finally, be aware of right click | Select | Items in same hierarchical sheet.


Thanks for the tip. I was avoiding hierarchical schematics because my version of KiCAD doesn't seem to implement the concept very well. I often ended up with strange inconsistencies, so I gave up. I suppose this is better in newer KiCAD versions (?)

How I do placement now: deleting part of my schematics, then copying the remaining components to the PCB layout, then undoing to get my schematics back, delete another part of the schematics, etc.

Regarding a graphics tablet: I've thought about it, but then I miss the scroll-wheel which is absolutely necessary for zooming in/out. Are there tablets with scroll wheels?


5.1.x works fine, 5.99 is surely improved. Delete workflow unnecessary once you adopt the sheet-orientation. Also improves re-use, though you have to carefully manage .sch version/variant evolution outside of KiCad. Had an awesome scroll-wheel Wacom ~2010 and have sorely missed it since. You can emulate it with touch but it's not as precise. Rocker-switches for zoom in/out or mapping on-tablet buttons are another option.


The expensive as hell "default" alternative, Altium Designer, has autoplacer to comlement the autorouter, and it usually works really nicely.


Altium used to be known as Protel, and it was the cheap option back in the 90s.

I've not tried Altium's autoplacer, but its autorouter is crap. I bought into PADS in the 90s (it was better than Protel, but not as expensive as OrCAD PCB). It used Specctra and then their own Blaze router. Both were excellent. I can not believe how bad Altium's autorouter still is (it leaves your board full of drc errors including shorts).

It is difficult to convey how well auto-routers can work to people who are used to manually routing boards in Altium because of it's broken auto-router. Seriously you hit the auto-route button, and a few minutes later it's done. You do want to ensure you have good constraints, all of the work is there, and it's a good idea to have them even when manually routing. It's very feasible to move parts around and do trial full routes to help find the best placement.

PADS did have an autoplacer, but it did not work very well as I remember.


Altium not that expensive for commercial tools in this industry - the 'expensive as hell' alternatives are Xpedition from Mentor Graphics (now Siemens) or Cadence Allegro.


Isn't there still the follow-me router? I find that more convenient than auto routing since I generally have an idea of where I want to route, but it's nice having to computer work out the details


You shouldn’t use autorouters at all. They have essentially no reasonable use.


Are you aware of what TopoR can do? And yes, for 1/2 layer routing it seems to work fine when fed from Kicad.

For relatively insensitive signals, or when you can constrain the layout with rough guidance to something that should easily pass signal integrity, this technology makes it so you can go get lunch while the computer gets a decent layout that you'd typically check before sending it off to the prototype fab or get started on quickly running one in-house (for that <2h turn-around from layout to power-on, including printing and soldering).


Yeah TopoR is really impressive. The thing is, I don't find that the hard problem is just the routing -- it's the combination of the placement and the routing. I find that I place with some idea of how I want to do the routing. I really haven't met any professional PCB designers that use the autorouter. I can see how it might have been useful several decades ago with low speed designs that had massive memory busses. Like if you were routing an arcade machine board or something. But now? Signal integrity is very important and everything is serial.

If I need something more complex very quickly, I usually do some combination of hot gluing and cutting up dev boards and dead-bugging.


They are useful if you really know what you're doing.

Someone who tends to only use the autorouter in a bad way probably wouldn't do much better doing it by hand anyway as they wouldn't be aware of the pitfalls.

They'd still end up with 500 vias, traces all over the place, bad placement and not doing any pinswapping anyway




Join us for AI Startup School this June 16-17 in San Francisco!

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

Search: