A bare lccN footprint places neighboring pads 0.5mm apart while the pads are 0.6mm wide along that pitch, so adjacent pins overlap by 0.1mm. That is a short in the emitted PCB.
Repro:
import { fp } from "@tscircuit/footprinter"
const pads = fp.string("lcc44").circuitJson().filter((e) => e.type === "pcb_smtpad")
// pin 1 sits at y = 2.500, pin 2 at y = 2.000, both 0.6mm tall.
// their centers are 0.5mm apart, so the pads overlap by 0.1mm.
Every size behaves the same way (lcc20, lcc28, lcc44, lcc68).
Root cause: src/fn/lcc.ts sets pl and pw but not p, so lcc inherits the generic quad default pitch of 0.5mm. LCC and PLCC are a 1.27mm pitch family (JEDEC MO-047 / MS-034), which the repo already relies on in the lcc68 parity test against PLCC-68_24.2x24.2mm_P1.27mm. A 0.6mm pad on a 0.5mm pitch cannot clear its neighbor.
Suggested fix: default the lcc pitch to 1.27mm when the caller passes none, the same way pl and pw are defaulted. Explicit pitches such as lcc68_..._p1.27mm keep working.
A bare lccN footprint places neighboring pads 0.5mm apart while the pads are 0.6mm wide along that pitch, so adjacent pins overlap by 0.1mm. That is a short in the emitted PCB.
Repro:
Every size behaves the same way (lcc20, lcc28, lcc44, lcc68).
Root cause: src/fn/lcc.ts sets pl and pw but not p, so lcc inherits the generic quad default pitch of 0.5mm. LCC and PLCC are a 1.27mm pitch family (JEDEC MO-047 / MS-034), which the repo already relies on in the lcc68 parity test against PLCC-68_24.2x24.2mm_P1.27mm. A 0.6mm pad on a 0.5mm pitch cannot clear its neighbor.
Suggested fix: default the lcc pitch to 1.27mm when the caller passes none, the same way pl and pw are defaulted. Explicit pitches such as lcc68_..._p1.27mm keep working.