Skip to main content

kicad-panelize

Use KiKit to panelize a given PCB

Source facts

Repository
American-Embedded/kistack
Last source activity
September 3, 2026 at 14:33
Detected SKILL.md language
English
Stars
395
Forks
27

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
kicad-panelize
description
Use KiKit to panelize a given PCB
# Skill for PCB panelization ## Setup Ensure KiKit is installed with kikit --version Check this installations resources/panelizePresets/default.json and panelize_ui_sections.py before adding parameters, these are the way, the truth, and the light. ## Usage - Find the source .kicad_pcb requsted by the user - Inspect its actual board files, Edge.Cuts, copper layers, pads and components that may interesect board edges to identify items like castellations, edge connectors, antennas, plated edges, etc. - Resolve grid dimensions, spacing, rotation, tabs, separation, frame, and fabricator limits. - Position tooling holes and fiducials relative to the panel outline - Write strict json. - Generate a versioned panel without overwriting the source in a "build" subdirectory - Check the generated panel before notifying the user, ensuring that it looks proper from the baord file level as well as in render. ## Preferred starting values - Board routing gap: 2mm - Tab width: 3mm - Mouse-bite drill: 0.5mm - Mouse-bite spacing: 0.8mm - Mouse-bite offset: 0mm - Full frame width: 5mm - Frame-to-array clearance: 2mm - Frame break cuts: none - Exterior frame radius: 2mm - Interior routing radius: 0.25mm - Tooling: three 1.5mm holes - Tooling stencil apertures: enabled - Fiducials: three, 1mm copper with 1mm openings - Fiducial paste apertures: disabled ## KiKit behavior - source.type: "auto" is appropriate for an ordinary single-board file. - tabs.type: "spacing" places tabs symmetrically and cannot exclude a particular side. - With fixed tabs: - hcount controls tabs projecting from left/right edges. - vcount controls tabs projecting from top/bottom edges. - A zero count suppresses that pair of directions. - Use annotation tabs when only selected segments or one side must be excluded. - Protected tab directions must be derived from each board’s geometry and rotation. Never hardcode “bottom” or “right” as a universal rule. - The global mouse-bite cut method processes every generated cut path, including framing.cuts. - Therefore, framing.cuts: "both" with mouse bites drills break rows through the rails. - Use framing.cuts: "none" for a continuous frame. - Tooling and fiducial offsets are measured inward from the panel’s outer edges. - To center a feature across a 5 mm frame, use a 2.5 mm perpendicular offset. - Tooling holes and fiducials with identical counts and offsets overlap. Separate them along the rail. - paste: true means the feature gets an aperture on the stencil paste layers. It does not control whether a drilled hole is visible. - framing.fillet rounds exterior panel corners. - post.millradius rounds concave interior routed corners. - post.reconstructarcs: true produces real Edge.Cuts arcs instead of dense line-segment approximations. ## Useful commands python3 -m json.tool panelize.json kikit panelize -p panelize.json input.kicad_pcb output-panel.kicad_pcb Dump the fully merged KiKit configuration with: kikit panelize -p panelize.json -d resolved.json input.kicad_pcb output-panel.kicad_pcb Render and open it with: kicad-cli pcb render \ --output panel-top.png \ --width 1600 \ --height 1200 \ --side top \ --background opaque \ --quality high \ panel.kicad_pcb kicad-cli pcb render \ --output panel-iso.png \ --width 1600 \ --height 1200 \ --perspective \ --rotate 325,0,35 \ panel.kicad_pcb
View on GitHub