Skip to content

sot723 footprint numbers pins 1 and 3 on the wrong pads (1↔3 swapped vs datasheet) #686

Description

@chayan-1906

What happens

The sot723 footprint places its pads at the correct positions, but assigns the pin numbers 1 and 3 to the wrong pads:

fp.string("sot723").circuitJson()
Pin Actual (current main) Expected (KiCad / Toshiba datasheet)
1 (+0.575, 0) — alone on the right (-0.575, +0.4) — top-left
2 (-0.575, -0.4) — bottom-left ✅ (-0.575, -0.4) — bottom-left ✅
3 (-0.575, +0.4) — top-left (+0.575, 0) — alone on the right

So pins 1 and 3 are swapped. A real SOT-723 part placed on this footprint gets cross-wired (e.g. for a transistor, base and collector swap).

Expected

The standard 3-lead SOT arrangement, which every other 3-pin SOT in this repo already follows (sot23, sot23w, sot323): pin 1 top-left, pin 2 bottom-left, pin 3 alone on the right.

This is also exactly what KiCad's official SOT-723.kicad_mod does (pad 1 at (-0.575, -0.4) in KiCad's y-down coords = top-left, pad 3 at (0.575, 0)). The KiCad footprint references the Toshiba datasheet, and the pad size (0.45 × 0.4) and pitch (±0.575) in src/fn/sot723.ts match it exactly — only the numbering differs.

Why the KiCad parity test doesn't catch it

tests/kicad-parity/sot723_kicad_parity.test.ts compares the copper shapes via boolean difference, which is blind to pin numbers — swapped numbering produces identical copper.

(Found while comparing pin-numbering conventions across sibling footprints, same class of bug as #677.)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions