Skip to main content

kicad-parts-placer

https://maskset.net/kicad-parts-placer.html

  • 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

Example Use: Pogo pin & test pad placement

The project at https://github.com/snhobbs/kicad-parts-placer/tree/master/example/example-placement shows an example use. This takes a centroid file from an existing design which is edited for input.

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 -x 117.5 -y 53

Generated PCB

Procedure: Existing board needs a tester

  1. Export test pad locations & type to a spreadsheet
  2. Plugin exports pad type, position, ref des, & value from DUT
  3. Extend the exported data, choosing the pogo pin footprint, mounting holes, connectors, etc. This is useful for the placement of mechanically important parts and form factor compliance.
  4. Batch load parts into schematic
  5. Complete schematic as needed, batch loading can be repeated or bom exported & checked for consistency
  6. Update PCB from schematic (f8)
  7. Run script which moves existing ref des to the location in config

Placing Test Pads to Reuse a Tester

  • Can follow same workflow as making a tester or copy from the existing board that uses the tester
  • Script should have a check placement function that is read only

Matching Form Factor

  • Ensure position, type, & rotation match a certain description.
  • The grouped components then only need 2 dimensions locked to a reference to get correct.

Critical component placement

  • Exact placement of mounting holes, sensors, connectors, etc

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

All you need to run is:

pip install kicad-parts-placer

Source

To install from source:

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

References

Metadata

Release files for kicad-parts-placer 0.1.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for kicad-parts-placer 0.1.4
File Size Uploaded
kicad_parts_placer-0.1.4.tar.gz 16.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for kicad-parts-placer 0.1.4
File Interpreter ABI Platform
kicad_parts_placer-0.1.4-py2.py3-none-any.whl Python 3, Python 2 none any Details

Total release size: 25.5 kB

Release files / kicad_parts_placer-0.1.4.tar.gz

Download URL kicad_parts_placer-0.1.4.tar.gz
Size 16.9 kB
Tags Source
SHA-256 checksum
How to use checksums
23f10da351180bdf14b9e7e5d39f70cf5b0856a1121fd89c282b2511fa30c39e
BLAKE2b-256 checksum
How to use checksums
867da0ea530c5a988344f0699cf9ae516bfb78ea941debff6b2ec95fed0f0a99
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.10.12

Release files / kicad_parts_placer-0.1.4-py2.py3-none-any.whl

Download URL kicad_parts_placer-0.1.4-py2.py3-none-any.whl
Size 8.7 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
6e0ebc39cb429c9d96084ad7a733cf1b38a90f57b32fe377e0cb9dc1a836ddf2
BLAKE2b-256 checksum
How to use checksums
ed43a509622270cc9ac083e96bfc1b6362bff71a37657e2f97284c579a05c395
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.10.12

Release history Release notifications | RSS feed

This release

0.1.4 This release

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

3 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page