Skip to content

Draft: Configurable Single-/Dual-row SMD connector generator

Obsolete: this MR is replaced by !832 (merged).

This is a first version of a double-row connector footprint generator script. It started out to create footprints for Samtec connectors, but now it turns out, that it may be quite universal.

Features:

The following features are configurable via YAML:

  • single- and dual-row connectors with variable number of positions
  • polarized connectors (with gaps after specific number of positions)
  • support for mount pads (SMD, PTH) and alignment pins (NPTH)
  • support for custom shape outlines (can be specified as polygons)
  • dimensions can be specified relative to the basic connector length (which depends on the position numbers and pitch)

Documentation:

All parameters are described in this README.md

Examples:

  • Samtec EdgeRate Socket ERF8-010-XX.X-DV-L with latches (this features the automatic cutting of F.SilkS by F.Mask)
    ERF8-10-L
  • Samtec EdgeRate Terminal with latches ERM8-010-XX.X-DV-L
    ERM8-010
  • Samtec HighSpeed 0.8mm EdgeCard Socket with alignment pins HSEC8-113-01-X-DV-A
    HSEC8-113
  • Samtec MicroPower Socket with weld-tabs UMPS-05-XX.X-X-V-S-W
    UMPS-05

Demonstration of Polygon Offset and Silk-Mask-Cut Capabilities

This (non-sense footprint) demonstrates the capabilities of automatic polygon offsetting and cutting:

  • F.SilkScreen is created using PolygoneLine.duplicate of the F.Fab outline with an offset of 0.25mm.
  • After all pads are in place, Footprint.cleanSilkMaskOverlap removes Silk where it overlaps with pads and holes. SilkOffsetAndClean

TODO/TBD:

  • cut out F.Mask from F.Silk to avoid Silk over mask; currently works only for lines.
  • sits currently in Connector_Samtec as it started out to create Samtec connector footprints, may be much more universal, so it should probably be moved and renamed.
  • some functionality (like offsetting a polygon or cutting Mask from Silk) are generic and may better go to KicadModTree; this has to be discussed
  • create some test.yaml and move connector specific YAMLs to separate merge requests
Edited by Armin Schoisswohl

Merge request reports