Skip to content

KiCad PCB export: missing fp_text reference for components with inline <footprint> #2045

@dwiel

Description

@dwiel

Description

When a component uses an inline definition (or is imported from a separate .tsx file), the KiCad PCB export is missing the fp_text reference element. Components using built-in footprints (like ) get reference designators correctly — only inline/custom footprints are affected.

The KiCad PCB has the footprint with all its pads, but no way to identify which component it is. The silkscreen is blank, assembly houses can't match it to a BOM line, and any tooling that relies on reference designators (DRC, JLCPCB CPL export, 3D model assignment) has to fall back to heuristic matching.

Reproduction

  // imports/NAU7802SGI.tsx
  export const NAU7802SGI = (props: { name: string, pcbX: number, pcbY: number }) => (
    <chip name={props.name} pcbX={props.pcbX} pcbY={props.pcbY}
      footprint={<footprint>
        <smtpad pcbX={0} pcbY={-1.5} width="0.5mm" height="0.8mm" shape="rect" portHints={["1"]} />
      </footprint>}
      supplierPartNumbers={{ jlcpcb: ["C2652953"] }} />
  )
  // circuit.tsx
  import { NAU7802SGI } from "./imports/NAU7802SGI"
  export default () => (
    <board width="50mm" height="50mm">
      <NAU7802SGI name="U_LC1" pcbX={-10} pcbY={5} />
    </board>
  )
  npx tsci export circuit.tsx -f kicad_pcb -o circuit.kicad_pcb

Expected: (fp_text reference "U_LC1" (at 0 -2) (layer "F.SilkS") ...)

Actual: No fp_text reference element at all.

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