tscircuit/sparkfun-boards

This code defines a detailed PCB schematic and physical footprint layout for various embedded hardware modules, mapping electrical pins, mechanical mounting holes, and silk-screen annotations for manufacturing and assembly.

Version
0.0.32
License
unset
Stars
3

boards/SparkFun-Opto-isolator-Breakout/SparkFun-Opto-isolator-Breakout.circuit.tsx

import { sel } from "tscircuit"
import { ILD213T } from "./ILD213T"

export default () => (
  <board
    width="15.24mm"
    height="12.70mm"
    title="SparkFun Opto-isolator Breakout"
  >
    <ILD213T
      name="U1"
      connections={{
        pin2: sel.net().GND,
        pin4: sel.net().GND,
        pin5: sel.net().HV_GND,
        pin7: sel.net().HV_GND,
      }}
      pcbRotation={-90}
      pcbX={0}
      pcbY={-3}
    />

    <resistor
      resistance={220}
      name="R1"
      footprint={"0603"}
      schX={-3}
      schY={0.5}
      pcbX={-4.5}
      pcbY={0.5}
      pcbRotation={-90}
      connections={{ pin1: sel.J2.pin2, pin2: sel.U1.pin1 }}
    />
    <resistor
      resistance={220}
      name="R2"
      footprint={"0603"}
      schX={-3}
      schY={-0.5}
      pcbX={-4.5}
      pcbY={-2.5}
      pcbRotation={-90}
      connections={{ pin1: sel.J2.pin3, pin2: sel.U1.pin3 }}
    />

    <resistor
      resistance={"10K"}
      name="R3"
      footprint={"0603"}
      schX={3}
      schY={4}
      schRotation={90}
      pcbX={4.5}
      pcbY={0.5}
      pcbRotation={-90}
      connections={{ pin2: sel.net().HV }}
    />
    <resistor
      resistance={"10K"}
      name="R4"
      footprint={"0603"}
      schX={4}
      schY={4}
      schRotation={90}
      pcbX={4.5}
      pcbY={-2.5}
      pcbRotation={-90}
      connections={{ pin2: sel.net().HV }}
    />
    <resistor
      resistance={"10K"}
      name="R5"
      footprint={"0603"}
      schX={5}
      schY={4}
      schRotation={90}
      pcbX={-1}
      pcbY={2.81}
      pcbRotation={90}
      connections={{ pin2: sel.net().HV }}
    />
    <resistor
      resistance={"10K"}
      name="R6"
      footprint={"0603"}
      schX={6}
      schY={4}
      schRotation={90}
      pcbX={4.5}
      pcbY={4.5}
      pcbRotation={90}
      connections={{ pin2: sel.net().HV }}
    />
    <transistor
      name="Q1"
      footprint={"sot23"}
      schX={4}
      schY={-1}
      pcbX={-4}
      pcbY={4}
      pcbRotation={90}
      type="npn"
      connections={{
        pin1: sel.net().OUT_2,
        pin2: sel.net().HV_GND,
        pin3: sel.net().F,
      }}
      symbol={"diode"}
      schRotation={-90}
    />
    <transistor
      name="Q2"
      footprint="sot23"
      schX={6}
      schY={1}
      pcbX={2}
      pcbY={4}
      pcbRotation={90}
      type="npn"
      connections={{
        pin1: sel.net().OUT_1,
        pin2: sel.net().HV_GND,
        pin3: sel.net().H,
      }}
      schRotation={-90}
    />

    <jumper
      name="J2"
      footprint={
        "pinrow4_doublesidedpinlabel_id1.016_od1.88_p2.54_pinlabeltextalignleft_pinlabelorthogonal"
      }
      pcbX={-6.35}
      schX={-6}
      pcbRotation={-90}
      schPinArrangement={{
        rightSide: {
          direction: "top-to-bottom",
          pins: ["pin1", "pin2", "pin3", "pin4"],
        },
      }}
      connections={{
        pin4: sel.net().GND,
      }}
      manufacturerPartNumber="M04PHT"
    />

    <jumper
      name="JP1"
      footprint={
        "pinrow4_doublesidedpinlabel_id1.016_od1.88_p2.54_pinlabeltextalignleft_pinlabelorthogonal"
      }
      pcbX={6.35}
      schX={10}
      pcbRotation={90}
      schPinArrangement={{
        leftSide: {
          direction: "bottom-to-top",
          pins: ["pin1", "pin2", "pin3", "pin4"],
        },
      }}
      connections={{
        pin1: sel.net().HV_GND,
        pin2: sel.net().OUT_2,
        pin3: sel.net().HV,
        pin4: sel.net().OUT_1,
      }}
      manufacturerPartNumber="M04PHT"
    />

    <netlabel net="HV_GND" schX={2} connectsTo={[sel.U1.pin7, sel.U1.pin5]} />

    <netlabel net="F" connectsTo={[sel.U1.pin6, sel.R4.pin1]} />
    <netlabel net="H" connectsTo={[sel.U1.pin8, sel.R3.pin1]} />

    <netlabel net="OUT_1" connectsTo={[sel.R6.pin1, sel.JP1.pin4]} />
    <netlabel net="OUT_2" connectsTo={[sel.R5.pin1, sel.JP1.pin2]} />
  </board>
)