원클릭으로
jlcpcb-check
Investigate JLCPCB 3D model alignment for a component (rotation, position, pin mapping)
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Investigate JLCPCB 3D model alignment for a component (rotation, position, pin mapping)
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Full PCB verification loop using local kicad-cli (DRC + 3D render + gerbers)
Create a new Claude Code skill for this project. Use when you need to add a new skill, improve an existing skill, or convert a workflow into a reusable skill.
Verifies that every PCB pad-to-net assignment matches the manufacturer datasheet pin specifications. Use when changing board.py/routing.py/footprints.py, after GPIO remapping, before releases, or when adding new components. Automated guard against wiring errors like unconnected VBUS, wrong pin assignments, or missing GND connections.
Design intent adversary — cross-checks GPIO, nets, power chains, signal paths across firmware/schematic/PCB/datasheet sources to find lost connections and inconsistencies
Analyze a DFM report and fix all issues in the PCB generation scripts
Run DFM guard tests and add new regression tests after fixing PCB issues
| name | jlcpcb-check |
| model | claude-opus-4-7 |
| description | Investigate JLCPCB 3D model alignment for a component (rotation, position, pin mapping) |
| disable-model-invocation | true |
| allowed-tools | Bash, Read, Grep, Glob, WebFetch, WebSearch |
| argument-hint | <REF or LCSC_PART> (e.g. U5, C5122557) |
Investigate and fix JLCPCB 3D model alignment issues for a specific component.
Argument: Component reference (e.g., U5) or LCSC part number (e.g., C5122557).
Look up the component in the BOM:
cd /Users/pierrejonnycau/Documents/WORKS/esp32-emu-turbo
grep "$ARGUMENTS" release_jlcpcb/bom.csv
Extract: reference designator, LCSC part number, footprint name.
Read the component's footprint definition from scripts/generate_pcb/footprints.py and its placement from scripts/generate_pcb/board.py. Determine:
Verify by checking the actual .kicad_pcb file:
grep -A 50 'footprint.*COMPONENT_FOOTPRINT' hardware/kicad/esp32-emu-turbo.kicad_pcb | head -80
grep "$ARGUMENTS" release_jlcpcb/cpl.csv
Note the current Mid X, Mid Y, Rotation, and Layer values.
Search for the LCSC part number on JLCPCB/EasyEDA to understand the 3D model orientation:
LCSC <part_number> EasyEDA 3D model pin orientationhttps://easyeda.com/component/<LCSC_PART>For all 4 JLCPCB CPL rotations (0, 90, 180, 270), compute:
JLCPCB rotation convention (bottom-side):
Compare model pin positions after transform with our gerber pad positions. Report alignment error for each rotation.
Compare the rotation correction approach with known-working components:
Create 4 CPL variants with different rotations for the target component:
for rot in 0 90 180 270; do
sed "s/^$REF,\(.*\),\(.*\),\(.*\),\(.*\),[0-9]*,/$REF,\1,\2,\3,\4,$rot,/" release_jlcpcb/cpl.csv > release_jlcpcb/cpl_${ref}_rot${rot}.csv
done
Based on the analysis:
scripts/generate_pcb/jlcpcb_export.py:
_JLCPCB_ROT_OVERRIDES for rotation fixes_JLCPCB_POS_CORRECTIONS for position fixesscripts/generate_pcb/jlcpcb_export.py — JLCPCB rotation/position correctionsscripts/generate_pcb/footprints.py — Footprint pad definitionsscripts/generate_pcb/board.py — Component placement positionsrelease_jlcpcb/bom.csv — BOM with LCSC part numbersrelease_jlcpcb/cpl.csv — Current CPLhardware/kicad/esp32-emu-turbo.kicad_pcb — Actual PCB fileFor bottom-side components, JLCPCB applies:
The generic formula in our codebase:
rot = (rot - 180) % 360 # mirror correction
rot = (rot + correction) % 360 # per-footprint DB correction
Per-footprint corrections (from JLCKicadTools community DB):