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 | |
|---|---|---|---|
| kicad_parts_placer-0.1.4.tar.gz | 16.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|