Skip to main content

Place components in a kicad file programmatically.

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kicad_parts_placer-0.1.4.tar.gz (16.9 kB view details)

Uploaded Source

Built Distribution

kicad_parts_placer-0.1.4-py2.py3-none-any.whl (8.7 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file kicad_parts_placer-0.1.4.tar.gz.

File metadata

  • Download URL: kicad_parts_placer-0.1.4.tar.gz
  • Upload date:
  • Size: 16.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.10.12

File hashes

Hashes for kicad_parts_placer-0.1.4.tar.gz
Algorithm Hash digest
SHA256 23f10da351180bdf14b9e7e5d39f70cf5b0856a1121fd89c282b2511fa30c39e
MD5 255ff11dd86f4cabecc3c789a984e20b
BLAKE2b-256 867da0ea530c5a988344f0699cf9ae516bfb78ea941debff6b2ec95fed0f0a99

See more details on using hashes here.

File details

Details for the file kicad_parts_placer-0.1.4-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for kicad_parts_placer-0.1.4-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 6e0ebc39cb429c9d96084ad7a733cf1b38a90f57b32fe377e0cb9dc1a836ddf2
MD5 4748d0a95a6458cfa1fab309e18308f5
BLAKE2b-256 ed43a509622270cc9ac083e96bfc1b6362bff71a37657e2f97284c579a05c395

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page