بنقرة واحدة
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):