Skip to content

snhobbs/kicad-parts-placer

Repository files navigation

kicad-parts-placer

Tool for precise, batch placement of components in a KiCad PCB layout.

Features

  • Exact batch placement of components in a layout
  • Groups the components allowing them to be moved and positioned as a group, easily ensuring exact alignment
  • Useful for:
    • Creating bed of nails tester
    • Positioning mechanically important parts
    • Maintaining a form factor across different designs
  • Similar in function to this Altium feature

Example Use: Pogo pin & test pad placement

An example is provided at example/example-placement. This example starts from a centroid file generated from an existing design, which is edited to serve as the input configuration:

Config file from centroid

A schematic is drawn up with matching reference designators:

tester schematic

The schematic is exported to a PCB which will look like this:

Exported PCB

Running the script on this board with this command exports the following board with the components exactly aligned ready for layout. The group can be treated as a footprint, placed where ever is useful. During layout you only have to deal with a single coordinate as the position within the group is locked.

kicad-parts-placer --pcb example-placement.kicad_pcb --config centroid-all-pos.csv --out example-placement_placed.kicad_pcb --drill_center

Generated PCB

Uses

+ Critical component placement: Exact placement of mounting holes, sensors, connectors, etc
+ Maintaining a form factor: Use the spreadsheet representation to either start a new project of a certain form factor or to ensure no parts have moved during layout
+ Reusing a bed-of-nails: Place the board outline and test pads the exact same way between versions to ensure the same jig can be used.

Notes

  • Place parts in pcb layout from a configuration table.
  • Allows writing a config script which fully defines the parts
  • Connections are made either by updating from a schematic or passing a netlist
  • Use example of schematic to pcb placement
  • All parts are grouped together, locking their relative placement
  • Internal configuration is a dataframe with ref des, label/value, footprint, position x, position y. Notes fields can be added for documentation generation.
  • A separate config object can be that could pull in a board outline, stackup, etc describing the board.
  • Position, rotation, & ref des are available in the centroid file, that avoids requiring the source board be kicad.

Installation

PyPi

pip install kicad-parts-placer

From Source

git clone https://github.com/snhobbs/kicad-parts-placer
cd kicad-parts-placer
pip install .

KiCad Plugin

This tool is also available as a plugin via KiCad’s Plugin and Content Manager (PCM).

References

About

Auto place components into pcbnew from a centroid file. Useful for maintaining a common board form factor.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published