How Auto-layout Works
alpha
This is an alpha, not a finished tool. It is an early version of the auto-layouter with a great deal of work still ahead. It handles the circuits in my test set well, but on many boards you will still want to reposition a part or reroute a wire by hand. It is simply the first version I considered ready to release, and it will keep improving. If it produces a poor result, I would be glad to hear about it through the feedback box.
Pressing Auto-layout hands the circuit from your schematic to the router, which attempts to produce a complete stripboard: a position for every part, the set of strip cuts, and the link wires that finish the connections. This page outlines the approach it takes. None of it is required to use the feature, but it should make the results easier to read and to steer.
The problem it solves
A stripboard is a grid of holes over continuous copper strips, where every hole on a strip is already electrically common with the rest. Realising a circuit on it comes down to three operations:
- Pins that share a net must sit on the same strip.
- Pins that belong to different nets must be separated by a cut across the strip.
- Connections a strip cannot carry are bridged by a link wire between two holes.
Even a modest circuit has an enormous number of valid arrangements, far too many to search exhaustively. The router instead proceeds in stages, constructing a reasonable layout and then refining it.
How it builds a layout
- 1. Group related parts. The router examines the net connections and gathers strongly connected components into small groups, such as an IC with its surrounding resistors and capacitors. Placing these parts together keeps the final layout compact and reduces the number of wires.
- 2. Lay out each group. Within each group it fixes the orientation of every part, aligns the pins to strips, and sets the span of the flexible leads on two-pin parts such as resistors. It evaluates several arrangements per group and retains the tidiest, never allowing parts closer than they can physically sit.
- 3. Arrange the groups. The finished groups are packed onto the board as blocks, with different combinations tried to keep the overall footprint small. This stage also determines the board size, unless you have fixed one yourself.
- 4. Cut and wire. Once everything is placed, the router identifies every point where two nets would share a strip and inserts a cut to separate them, then routes link wires to join the pins that ended up on different strips.
- 5. Refine. Finally it improves the result: reclaiming empty space, removing redundant wires, and where possible keeping wires from crossing over components. Each refinement is verified to still produce a working board before it is accepted.
Choosing between options
Several of these stages produce multiple candidate layouts, each of which is scored. A layout rates better when it is smaller, uses fewer link wires, and has fewer wires crossing over components; the strongest candidates are carried forward. The scoring is fully deterministic, so a given circuit always yields the same layout.
What you can control
- Board size. Lock the rows or columns using the padlock beside their field and the router holds exactly that dimension, so the result fits a board you already own.
- Locked parts. Fix a part in a chosen position and the router designs the remaining layout around it rather than moving it.
- Physical constraints. The router always accounts for the space real parts occupy; it will, for example, leave the necessary gap between two through-hole resistors instead of overlapping their bodies.
Locked parts are the hardest case for the router. Everywhere else it is free to choose positions, but a fixed part forces the surrounding layout to conform to a spot it did not pick, which can enlarge the board or add wires compared with an unconstrained run. It usually still reaches a working result, but this is the roughest area of the router today and the one I most expect to improve in future versions.
Refer to the quick guide for the exact keys and buttons.