Abse2001/Arduino-Nano-Servo-Breakout

This design features an Arduino Nano-based system with USB-C power input, dual female pin headers for microcontroller connections, servo headers for motor control, a push-button reset, and a separate P2 terminal, all interconnected on a compact PCB.

Usage: To import and use the "@tsci/Abse2001.Arduino-Nano-Servo-Breakout" component: 1. Import the component: ```tsx import ArduinoNanoServoBreakout from "@tsci/Abse2001.Arduino-Nano-Servo-Breakout" ``` 2. Use in a circuit design: ```tsx export default () => ( <board> <ArduinoNanoServoBreakout /> </board> ) ``` The component provides a pre-configured Arduino Nano breakout board with USB-C, servo headers, pin headers, and additional connectors.

Version
0.0.1
License
unset
Stars
0

index.ts

PCBPCB preview for index.ts
SchematicSchematic preview for index.ts
import { useFemalePinHeader15 } from "@tsci/Abse2001.Female-Header15P"
import manualEdits from "./manual-edits.json"
import { usefemalePin5 } from "@tsci/Abse2001.female-5-pin-header"
import { useUsbC } from "@tsci/seveibar.smd-usb-c"
import { usePushButton } from "@tsci/seveibar.push-button"
import { useServoHeader } from "@tsci/Abse2001.Servo-header-3x6"
import { useP2Terminal } from "@tsci/Abse2001.P2Terminal"

export default () => {
  let pinlables = {
    pin1: ["TXD"],
    pin2: ["RXD"],
    pin3: ["RST"],
    pin4: ["GND"],
    pin5: ["D2"],
    pin6: ["D3"],
    pin7: ["D4"],
    pin8: ["D5"],
    pin9: ["D6"],
    pin10: ["D7"],
    pin11: ["D8"],
    pin12: ["D9"],
    pin13: ["D10"],
    pin14: ["D11"],
    pin15: ["D12"],
  }
  const H1 = useFemalePinHeader15("H1", { pinlables })
  pinlables = {
    pin1: ["VIN"],
    pin2: ["GND"],
    pin3: ["RST"],
    pin4: ["5V"],
    pin5: ["A7"],
    pin6: ["A6"],
    pin7: ["A5"],
    pin8: ["A4"],
    pin9: ["A3"],
    pin10: ["A2"],
    pin11: ["A1"],
    pin12: ["A0"],
    pin13: ["REF"],
    pin14: ["3V3"],
    pin15: ["D13"],
  }
  const H2 = useFemalePinHeader15("H2", { pinlables })
  const SERVOS = useServoHeader("SERVOS")
  const B1 = usePushButton("B1")
  const P1 = useP2Terminal("P1")
  const USBC = useUsbC("USBC")
  const P2 = usefemalePin5("P2")

  return (
    <board manualEdits={manualEdits} width="44.9mm" height="42.4mm">
      <SERVOS schX={-10} />
      <H1 schX={0.8} pcbRotation={180} />
      <H2 schX={-4} pcbRotation={180} />
      <USBC schX={-17} />
      <B1 schX={-10} schY={6} />
      <P1 schX={-14} schY={-4} pcbRotation={90} />
      <P2 schX={-14} schY={4} pcbRotation={180} />

      <footprint>
        <silkscreentext pcbX={20.5} pcbY={3.5} text="H2" />
        <silkscreentext fontSize={0.7} pcbX={-8} pcbY={-20} text="USBC" />
        <silkscreentext pcbX={18.5} pcbY={-12} text="P1" />
        <silkscreentext pcbX={-15} pcbY={-8} text="B1" />
        <silkscreentext fontSize={0.7} pcbX={-15.5} pcbY={0.2} text="RESET" />
        <silkscreentext pcbX={21.2} pcbY={-2.9} text="+" />
        <silkscreentext pcbX={21.2} pcbY={-7.9} text="-" />
        {/*SERVOS*/}
        <silkscreentext fontSize={1.2} pcbX={0.9} pcbY={1} text="SERVOS" />
        <silkscreentext fontSize={1.2} pcbX={-8.7} pcbY={-1.6} text="-" />
        <silkscreentext fontSize={1.2} pcbX={-8.7} pcbY={-4.18} text="+" />
        <silkscreentext fontSize={0.7} pcbX={-8.7} pcbY={-7} text="SIG" />
        <silkscreentext fontSize={0.7} pcbX={-0.4} pcbY={-9.5} text="D5" />
        <silkscreentext fontSize={0.7} pcbX={-5.5} pcbY={-9.5} text="D7" />
        <silkscreentext fontSize={0.7} pcbX={-3} pcbY={-9.5} text="D6" />
        <silkscreentext fontSize={0.7} pcbX={4.7} pcbY={-9.5} text="D3" />
        <silkscreentext fontSize={0.7} pcbX={2.2} pcbY={-9.5} text="D4" />
        <silkscreentext fontSize={0.7} pcbX={7.25} pcbY={-9.5} text="D2" />

        {/*Arduino Nano H1*/}
        <silkscreentext pcbX={20.5} pcbY={18.5} text="H1" />
        <silkscreentext fontSize={0.5} pcbX={1.85} pcbY={16.5} text="D4" />
        <silkscreentext fontSize={0.5} pcbX={4.4} pcbY={16.5} text="D3" />
        <silkscreentext fontSize={0.5} pcbX={7} pcbY={16.5} text="D2" />
        <silkscreentext fontSize={0.5} pcbX={9.4} pcbY={16.5} text="GND" />
        <silkscreentext fontSize={0.5} pcbX={12.1} pcbY={16.5} text="RST" />
        <silkscreentext fontSize={0.5} pcbX={14.59} pcbY={16.5} text="RXD" />
        <silkscreentext fontSize={0.5} pcbX={17.1} pcbY={16.5} text="TXD" />
        <silkscreentext fontSize={0.5} pcbX={-0.7} pcbY={16.5} text="D5" />
        <silkscreentext fontSize={0.5} pcbX={-3.1} pcbY={16.5} text="D6" />
        <silkscreentext fontSize={0.5} pcbX={-5.8} pcbY={16.5} text="D7" />
        <silkscreentext fontSize={0.5} pcbX={-8.3} pcbY={16.5} text="D8" />
        <silkscreentext fontSize={0.5} pcbX={-10.9} pcbY={16.5} text="D9" />
        <silkscreentext fontSize={0.5} pcbX={-13.4} pcbY={16.5} text="D10" />
        <silkscreentext fontSize={0.5} pcbX={-15.9} pcbY={16.5} text="D11" />
        <silkscreentext
          fontSize={0.5}
          pcbRotation={90}
          pcbX={-18.45}
          pcbY={16.5}
          text="D12"
        />
        {/*Arduino Nano H2*/}
        <silkscreentext fontSize={0.5} pcbX={1.85} pcbY={5.7} text="A5" />
        <silkscreentext fontSize={0.5} pcbX={4.4} pcbY={5.7} text="A6" />
        <silkscreentext fontSize={0.5} pcbX={7} pcbY={5.7} text="A7" />
        <silkscreentext fontSize={0.5} pcbX={9.5} pcbY={5.7} text="5V" />
        <silkscreentext fontSize={0.5} pcbX={12.1} pcbY={5.7} text="RST" />
        <silkscreentext fontSize={0.5} pcbX={14.59} pcbY={5.7} text="GND" />
        <silkscreentext fontSize={0.5} pcbX={17.1} pcbY={5.7} text="VIN" />
        <silkscreentext fontSize={0.5} pcbX={-0.7} pcbY={5.7} text="A4" />
        <silkscreentext fontSize={0.5} pcbX={-3.1} pcbY={5.7} text="A3" />
        <silkscreentext fontSize={0.5} pcbX={-5.8} pcbY={5.7} text="A2" />
        <silkscreentext fontSize={0.5} pcbX={-8.3} pcbY={5.7} text="A1" />
        <silkscreentext fontSize={0.5} pcbX={-10.9} pcbY={5.7} text="A0" />
        <silkscreentext fontSize={0.5} pcbX={-13.4} pcbY={5.7} text="REF" />
        <silkscreentext fontSize={0.5} pcbX={-15.9} pcbY={5.7} text="3V3" />
        <silkscreentext fontSize={0.5} pcbX={-18.45} pcbY={5.7} text="D13" />
        {/*P2*/}
        <silkscreentext pcbX={9.5} pcbY={-15.9} text="P2" />
        <silkscreentext fontSize={0.5} pcbX={-1.73} pcbY={-18} text="TX" />
        <silkscreentext fontSize={0.5} pcbX={-4.25} pcbY={-18} text="GND" />
        <silkscreentext fontSize={0.5} pcbX={0.9} pcbY={-18} text="RX" />
        <silkscreentext fontSize={0.5} pcbX={3.3} pcbY={-18} text="RS" />
        <silkscreentext fontSize={0.5} pcbX={6} pcbY={-18} text="VCC" />
      </footprint>

      {/* Power Traces (5V) */}
      <trace schDisplayLabel="VCC" from=".USBC .VBUS1" to=".SERVOS .pin2" />
      <trace schDisplayLabel="VCC" from=".SERVOS .pin2" to=".SERVOS .pin5" />
      <trace schDisplayLabel="VCC" from=".SERVOS .pin5" to=".SERVOS .pin8" />
      <trace schDisplayLabel="VCC" from=".SERVOS .pin8" to=".SERVOS .pin11" />
      <trace schDisplayLabel="VCC" from=".SERVOS .pin11" to=".SERVOS .pin14" />
      <trace schDisplayLabel="VCC" from=".SERVOS .pin14" to=".SERVOS .pin17" />
      <trace schDisplayLabel="VCC" from=".SERVOS .pin17" to=".P1 .VCC" />
      <trace schDisplayLabel="VCC" from=".H2 .pin4" to=".P1 .VCC" />

      {/* Ground Traces (GND) */}
      <trace schDisplayLabel="GND" from=".USBC .GND1" to=".P2 .pin5" />
      <trace schDisplayLabel="GND" from=".P2 .pin5" to=".SERVOS .pin3" />
      <trace schDisplayLabel="GND" from=".SERVOS .pin3" to=".SERVOS .pin6" />
      <trace schDisplayLabel="GND" from=".SERVOS .pin6" to=".SERVOS .pin9" />
      <trace schDisplayLabel="GND" from=".SERVOS .pin9" to=".SERVOS .pin12" />
      <trace schDisplayLabel="GND" from=".SERVOS .pin12" to=".SERVOS .pin15" />
      <trace schDisplayLabel="GND" from=".SERVOS .pin15" to=".SERVOS .pin18" />
      <trace schDisplayLabel="GND" from=".P1 .GND" to=".SERVOS .pin18" />
      <trace schDisplayLabel="GND" from=".P1 .GND" to=".H2 .pin2" />

      {/* To Arduino Nano*/}
      <trace schDisplayLabel="RX_TXD" from=".P2 .pin3" to=".H1 .pin1" />
      <trace schDisplayLabel="TX_RXD" from=".P2 .pin4" to=".H1 .pin2" />
      <trace schDisplayLabel="RS_RST" from=".P2 .pin2" to=".H1 .pin3" />
      <trace schDisplayLabel="P2_3v3" from=".P2 .pin1" to=".H2 .pin14" />
      <trace schDisplayLabel="D2" from=".SERVOS .pin16" to=".H1 .pin5" />
      <trace schDisplayLabel="D3" from=".SERVOS .pin13" to=".H1 .pin6" />
      <trace schDisplayLabel="D4" from=".SERVOS .pin10" to=".H1 .pin7" />
      <trace schDisplayLabel="D5" from=".SERVOS .pin7" to=".H1 .pin8" />
      <trace schDisplayLabel="D6" from=".SERVOS .pin4" to=".H1 .pin9" />
      <trace schDisplayLabel="D7" from=".SERVOS .pin1" to=".H1 .pin10" />

      {/* Reset*/}
      <trace
        schDisplayLabel="RS_RST"
        pcbRouteHints={[{ x: -7, y: -12.4 }]}
        from=".P2 .pin2"
        to=".B1 .pin3"
      />
      <trace schDisplayLabel="B1_GND" from=".H1 .pin4" to=".B1 .pin2" />
    </board>
  )
}