gokul/flex-led-wristband

A flexible, rechargeable touch wristband PCB with MCP73831 Li-ion charging, switched 3.0 V regulation, ATtiny402 control, TTP223 capacitive touch sensing, and six charlieplexed red LEDs plus power/charge indicators.

Version
0.0.3
License
unset
Stars
0

lib/Footprints.tsx

// Dimensions are millimetres. References are recorded in FOOTPRINT_REVIEW.txt.
export function ChargerFootprint() {
  return (
    <footprint insertionDirection="from_above">
      {[
        [1, -1.4, 0.95],
        [2, -1.4, 0],
        [3, -1.4, -0.95],
        [4, 1.4, -0.95],
        [5, 1.4, 0.95],
      ].map(([pin, x, y]) => (
        <smtpad
          portHints={[String(pin)]}
          pcbX={x}
          pcbY={y}
          width={1.1}
          height={0.6}
          shape="rect"
          coveredWithSolderMask
        />
      ))}
      {[-1.4, 1.4].map((x) => (
        <pcbsoldermaskopening
          key={x}
          layer="top"
          shape="rect"
          pcbX={x}
          pcbY={0}
          width={1.3}
          height={2.7}
        />
      ))}
      <courtyardrect width={4.4} height={3.5} />
    </footprint>
  );
}

export function RegulatorFootprint() {
  return (
    <footprint insertionDirection="from_above">
      {[
        [1, -1.15, 0.95],
        [2, -1.15, -0.95],
        [3, 1.15, 0],
      ].map(([pin, x, y]) => (
        <smtpad
          portHints={[String(pin)]}
          pcbX={x}
          pcbY={y}
          width={1.05}
          height={0.65}
          shape="rect"
          solderMaskMargin={0.1}
        />
      ))}
      <courtyardrect width={3.85} height={3.5} />
    </footprint>
  );
}

export function TouchFootprint() {
  return (
    <footprint insertionDirection="from_above">
      {[
        [1, -1.3, 0.95],
        [2, -1.3, 0],
        [3, -1.3, -0.95],
        [4, 1.3, -0.95],
        [5, 1.3, 0],
        [6, 1.3, 0.95],
      ].map(([pin, x, y]) => (
        <smtpad
          portHints={[String(pin)]}
          pcbX={x}
          pcbY={y}
          width={1}
          height={0.6}
          shape="rect"
          coveredWithSolderMask
        />
      ))}
      {[-1.3, 1.3].map((x) => (
        <pcbsoldermaskopening
          key={x}
          layer="top"
          shape="rect"
          pcbX={x}
          pcbY={0}
          width={1.2}
          height={2.7}
        />
      ))}
      <courtyardrect width={4.1} height={3.6} />
    </footprint>
  );
}

export function LedFootprint() {
  return (
    <footprint insertionDirection="from_above">
      <smtpad
        portHints={["1", "anode"]}
        pcbX={-0.75}
        pcbY={0}
        width={0.8}
        height={0.8}
        shape="rect"
        solderMaskMargin={0.05}
      />
      <smtpad
        portHints={["2", "cathode"]}
        pcbX={0.75}
        pcbY={0}
        width={0.8}
        height={0.8}
        shape="rect"
        solderMaskMargin={0.05}
      />
      <courtyardrect width={2.8} height={1.3} />
      <silkscreentext text="K" pcbX={1.9} pcbY={0} fontSize={0.8} />
    </footprint>
  );
}