Skip to content

Repository files navigation

@tscircuit/header-modules

Model-specific tscircuit components for development boards that plug into female pin headers.

The package includes dedicated model-specific modules for all 427 entries in the catalog, covering popular breadboard/header modules from Adafruit, SparkFun, Pololu, Seeed, Arduino, Raspberry Pi, and common marketplace families. The implementation status and audit trail live in TODOS.md.

The first concrete model-specific modules are:

  • AdafruitFeatherRP2040: the Adafruit Feather RP2040 with one 12-pin row, one 16-pin row, and the supported I2C/SPI/UART mux capabilities for every exposed GPIO.
  • SeeedXiaoRP2040: the Seeed Studio XIAO RP2040 with two 7-pin rows and all 14 header pins mapped to the board and RP2040 names.
  • PololuA4988StepperMotorDriverCarrier: the Pololu item 2980 A4988 carrier used by Arduino CNC shields, with its 2x8 socket, motor outputs, control inputs, power domains, and microstep pull-downs modeled explicitly.

Each component is a single <chip /> backed entirely by a female headermodule footprinter string. Every exposed header pin has pinAttributes, including GPIO behavior, internal pull support, I2C/SPI/UART capabilities, and explicit power/ground direction and voltage where applicable.

Catalog entries use explicit interface-level header maps (for example, VCC, GND, SDA, and SCL for an I2C breakout) and are exported as named components, so a board can be designed against a stable female-header socket immediately. The existing Feather, XIAO, Nano, Pico, and other development-board models use their own form-factor pin maps.

Usage

import {
  AdafruitFeatherRP2040,
  AdafruitAHT20TemperatureAndHumidityBreakout,
  PololuA4988StepperMotorDriverCarrier,
  SeeedXiaoRP2040,
} from "@tscircuit/header-modules"

export default () => (
  <board width="130mm" height="30mm">
    <AdafruitFeatherRP2040 name="U1" pcbX={-20} />
    <SeeedXiaoRP2040 name="U2" pcbX={30} />
    <PololuA4988StepperMotorDriverCarrier name="U3" pcbX={50} />
    <AdafruitAHT20TemperatureAndHumidityBreakout name="U4" pcbX={70} />
  </board>
)

Both footprints place the USB connector on the negative PCB X side when pcbRotation={0}. Feather and Xiao remain as deprecated aliases for the two RP2040 models.

The exported model data includes:

  • ADAFRUIT_FEATHER_RP2040_FOOTPRINT
  • ADAFRUIT_FEATHER_RP2040_PIN_LABELS
  • ADAFRUIT_FEATHER_RP2040_PIN_ATTRIBUTES
  • SEEED_XIAO_RP2040_FOOTPRINT
  • SEEED_XIAO_RP2040_PIN_LABELS
  • SEEED_XIAO_RP2040_PIN_ATTRIBUTES
  • POLOLU_A4988_STEPPER_MOTOR_DRIVER_CARRIER_FOOTPRINT
  • POLOLU_A4988_STEPPER_MOTOR_DRIVER_CARRIER_PIN_LABELS
  • POLOLU_A4988_STEPPER_MOTOR_DRIVER_CARRIER_PIN_ATTRIBUTES

Runnable board examples live in sample-boards. The first example combines the XIAO RP2040 and A4988 carrier into a USB-controlled, separately powered bipolar stepper controller with the recommended local motor supply bulk capacitor.

The XIAO component also provides XIAO_PIN1 through XIAO_PIN14 aliases for Seeed's official header numbering. This keeps those numbers exact even though the underlying headermodule footprinter has its own perimeter numbering. All aliases are available in selectors; pass showPinAliases when you also want them rendered inside the schematic symbol.

Pin mappings are based on the official Adafruit Feather RP2040 pinout and Seeed Studio XIAO RP2040 documentation. The A4988 geometry, power limits, and control behavior come from Pololu's carrier documentation and dimension drawing.

Footprinter compatibility

Independent row spacing, sparse pin grids, module outlines, literal silkscreen labels, and pin-one markers are provided by @tscircuit/footprinter 0.0.409 or newer. The package is pinned to that release so the headermodule geometry and silkscreen output are generated by the published implementation.

About

Female pin-header footprints for pluggable PCB modules

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages