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.
A schematic is drawn up with matching reference designators:
The schematic is exported to a PCB which will look like this:
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
Procedure: Existing board needs a tester
- Export test pad locations & type to a spreadsheet
- Plugin exports pad type, position, ref des, & value from DUT
- 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.
- Batch load parts into schematic
- Complete schematic as needed, batch loading can be repeated or bom exported & checked for consistency
- Update PCB from schematic (f8)
- 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
- Openscad test jig generator: https://tinylabs.io/openfixture-config/
- Manual kicad location extraction: https://tinylabs.io/openfixture-kicad-export/
- Hackaday test jigs: https://hackaday.com/2016/08/24/tools-of-the-trade-test-and-programming/#more-218337
- https://www.testjigfactory.com/
- https://climbers.net/sbc/home-lab-pcb-programming-test-jig/
- Kicad schematic to pcb position: https://github.com/ian-ross/kicad-plugins
- Test pad to openscad pin placement: https://github.com/5inf/TestPointReport2STL
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)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| kicad_parts_placer-0.1.4.tar.gz | 16.9 kB | Without provenance | Details for kicad_parts_placer-0.1.4.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| kicad_parts_placer-0.1.4-py2.py3-none-any.whl | Python 2, Python 3 | none | any | Details for kicad_parts_placer-0.1.4-py2.py3-none-any.whl |
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
|
Security for kicad-parts-placer 0.1.4
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.