Hacker News new | ask | show | jobs
by amelius 1698 days ago
I've never worked with the auto-router, but personally I think placement is giving me the most headaches.
3 comments

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.