KiCad 49 – Panalizing met Kikit

KIKIT

Er bestaat tegenwoordig ook een tool genaamd Kikit om eenvoudig een PCB te panalizen, panalizen is in principe meerdere pcb’s op één grotere oppervlakte zetten, dit kan kosten schelen bij de pcb producent maar je kan hierdoor ook grotere aantallen bestellen indien je deze ook met SMT laat bestukken.

De tool is te vinden op github: https://github.com/yaqwsx/KiKit


KiKit CLI interface

KiKit offers a simple CLI interface to perform common tasks easily. You can obtain help of the interface by calling kikit --help.

The interface is structured into nested commands. On the top level, there are the following commands available:

  • export: Export KiCAD boards
  • panelize: Create simple predefined panel patterns
  • present: Create presentations – e.g. web page with auto-generated files

Export commands

  • kikit export gerber <boardFile> [<outputDir>] – export gerber files of boardFile to outputDir. If no dir is specified, a new one <boardFile>-gerbers is created.
  • kikit export dxf <boardFile> [<outputDir>] – export board outline and paste layers to DXF. The main use case for this command is making 3D printed solder paste stencils.

Panelize commands

  • kikit panelize extractboard -s <sourceArea> <input> <output> – extract a board from input board file at a rectangle specified by sourceArea (a tuple X, Y, width, height in millimeters separated by spaces) and place it in a single board file named output. Typical use case is to separate boards which were designed in a single file (to share schematics or to easily make them fit to each other) so you can export gerber files individually.
  • kikit panelize grid [options] <input> <output> – create a panel of a given board with rows x cols boards separated by tabs (just like in the README example). The following options are accepted:
    • -s, --space FLOAT Space between boards
    • -g, --gridsize <INTEGER INTEGER> Panel size <rows> <cols>
    • -p, --panelsize <FLOAT FLOAT> <width> <height> in millimeters
    • --tabwidth FLOAT Size of the bottom/up tabs, leave unset for full width
    • --tabheight FLOAT Size of the left/right tabs, leave unset for full height
    • --htabs INT Number of horizontal tabs per board
    • --vtabs INT Number of vertical tabs per board
    • --vcuts BOOLEAN Use V-cuts to separate the boards
    • --mousebites <FLOAT FLOAT FLOAT> Use mouse bites to separate the boards. Specify drill size, spacing and offset in millimeters. If you are unsure about the offset value, use 0.25 mm
    • --radius FLOAT Add a radius to inner corners to simulate radius of the mill
    • --sourcearea <FLOAT FLOAT FLOAT FLOAT> x y w h in millimeters. A rectangle specified by a top left corner and its width and height. If not specified, automatically detected.
    • --rotation <FLOAT> Rotate the source board in degrees.
    • --tolerance <FLOAT> Distance in millimeters by which the source area is expanded when copying board items. See more details in panelization doc.
    • --renamenet <string>--renameref <string> Rename pattern for nets and references. String can contain {n} for the current board sequence number and {orig} original name of net/reference. If not specified, nets are renamed to Board_{n}-{orig}, references are unchanged.
    • --copperfill Fill the unused areas of the panel (frame, rails, tabs) with copper. Reduces amount of etching and makes flex PCBs stiffer.
  • kikit panelize tightgrid [options] <input> <output> – create a panel just like grid, but the panel is full and there is a milled slot around the perimeter of the boards. Takes the same arguments as grid with few exceptions:
    • -w, --slotwidth <FLOAT> specify the slot size
    • -p, --panelsize <FLOAT FLOAT> <width> <height> in millimeters, required.

Present commands

  • kikit present boardpage --name <pagename> -d <descriptionFile> -b <name comment boadfile> -r <resource> --template <template> --repository <url> <outputdir> – generate single webpage providing board preview and a possibility to download board files (gerbers and sources). See an example of such page.
    • The description is a path to a markdown file with the main page content.
    • You can specify multiple resources via -r or --resource. Resources are files which will be copied to the output directory. Useful for images referred from description
    • You can specify multiple boards via -b or --board
    • Template is an optional argument which is either a path to a custom template or a name of built-in templates (currently, there is only one: default). See template documentation for more information about templates.

Modify commands

  • kikit modify references --show/--hide --pattern <pattern> <board> hide or show all references on the board matching a regular pattern.

Voorbeelden

KiKit examples


Op Windows kreeg ik het niet werkend, maar je kan wel een raspberry Pi gebruiken om deze taak uit te voeren (wel wat omslachtig), vanaf een nieuwe SD kaart met Buster, deze commandos uit te voeren om kicad, libgeos en kikit te installeren:

Installatieprocedure:

Zet nu met bijvoorbeeld WinSCP een .kicad_pcb in de home folder van de pi en (her)noem deze naar mypcb.kicad_pcb

Nu is dit voorbeeld een pcb van 10×10 CM dus ik heb deze CLI en instellingen gebruikt voor een paneel van 3×4:

kikit panelize grid --space 3 --gridsize 3 4 --tabwidth 8 --tabheight 8 --htabs 3 --vtabs 3 --mousebites 0.5 1 0.25 --radius 1 mypcb.kicad_pcb mypcb_panel.kicad_pcb

Er wordt nu een mypcb_panel.kicad_pcb gegenereerd:

Dit bestand kan je weer naar je Windows computer verplaatsen en openen met Kicad en zo de gerber bestanden genereren, het resultaat:


Op windows liep ik vast na installatie van python3 om kikit te installeren, uitgevoerd in cmd als administrator, en nog geen rechten:

python3 setup.py install

Oplossing om kikit te installeren was het gebruik van –user

source: https://stackoverflow.com/questions/22551461/how-to-avoid-permission-denied-while-installing-package-for-python-without-sudo

python3 setup.py install --user

Installatieprocedure:

Uit de installatiegegevens hierboven zou kikit.exe geinstalleerd zijn in:

C:\Users\Phoenix\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\Scripts\kikit.exe

Maar bij het uitvoeren begint er een foutmelding of module “pcbnew“….tot hier stopt het even, als iemand een idee heeft om kikit goed uit te voeren in Windows laat het aub weten ;-)