selenaalpha77-sketch/arduino-nano

This code defines the physical hardware layout of an Arduino Nano-compatible board, incorporating key components such as the ATmega328P microcontroller, CH340C USB-to-serial converter, AMS1117 voltage regulators, and USB connector with their associated footprints and pin configurations.

Version
1.0.0
License
unset
Stars
0

lib/NanoCoreSection.tsx

import { ATMEGA328P_AU } from "../imports/ATMEGA328P_AU"
import { X322516MLB4SI } from "../imports/X322516MLB4SI"
import { atmegaNanoPinLabels } from "./nano-geometry"

export const NanoCoreSection = () => (
  <group name="core_section">
    {/* ATmega328P-AU - Main MCU */}
    <ATMEGA328P_AU
      name="U1"
      pinLabels={atmegaNanoPinLabels as any}
      showPinAliases
      pcbX="0mm"
      pcbY="0mm"
      schX={0}
      schY={0}
      schPinArrangement={{
        topSide: { pins: ["VCC1", "VCC2", "AVCC"], direction: "left-to-right" },
        bottomSide: {
          pins: ["GND1", "GND2", "GND3", "AREF"],
          direction: "left-to-right",
        },
        leftSide: {
          pins: ["RESET", "D0", "D1", "D2", "D3", "D4", "D5", "D6", "D7"],
          direction: "top-to-bottom",
        },
        rightSide: {
          pins: [
            "A0",
            "A1",
            "A2",
            "A3",
            "A4",
            "A5",
            "D8",
            "D9",
            "D10",
            "D11",
            "D12",
            "D13",
          ],
          direction: "top-to-bottom",
        },
      }}
      connections={{
        pin1: "net.D3",
        pin2: "net.D4",
        pin3: "net.GND",
        pin4: "net.V5",
        pin5: "net.GND",
        pin6: "net.V5",
        pin7: "net.XTAL1",
        pin8: "net.XTAL2",
        pin9: "net.D5",
        pin10: "net.D6",
        pin11: "net.D7",
        pin12: "net.D8",
        pin13: "net.D9",
        pin14: "net.D10",
        pin15: "net.D11",
        pin16: "net.D12",
        pin17: "net.D13",
        pin18: "net.V5",
        pin19: "net.A6",
        pin20: "net.AREF",
        pin21: "net.GND",
        pin22: "net.A7",
        pin23: "net.A0",
        pin24: "net.A1",
        pin25: "net.A2",
        pin26: "net.A3",
        pin27: "net.A4",
        pin28: "net.A5",
        pin29: "net.RESET",
        pin30: "net.D0",
        pin31: "net.D1",
        pin32: "net.D2",
      }}
    />

    {/* 16MHz Crystal for ATmega328P */}
    <X322516MLB4SI
      name="X1"
      pcbX="-10mm"
      pcbY="0mm"
      schX={-8}
      schY={8}
      connections={{
        OSC1: "net.XTAL1",
        OSC2: "net.XTAL2",
        GND1: "net.GND",
        GND2: "net.GND",
      }}
    />

    {/* Crystal load capacitors */}
    <capacitor
      name="C1"
      capacitance="22pF"
      footprint="0402"
      pcbX="-13mm"
      pcbY="-2mm"
      schX={-14}
      schY={8}
      connections={{
        pin1: "net.XTAL1",
        pin2: "net.GND",
      }}
    />
    <capacitor
      name="C2"
      capacitance="22pF"
      footprint="0402"
      pcbX="-13mm"
      pcbY="2mm"
      schX={-14}
      schY={12}
      connections={{
        pin1: "net.XTAL2",
        pin2: "net.GND",
      }}
    />

    {/* RESET pull-up resistor */}
    <resistor
      name="R1"
      resistance="10k"
      footprint="0402"
      pcbX="-8mm"
      pcbY="5mm"
      schX={-8}
      schY={-4}
      connections={{
        pin1: "net.V5",
        pin2: "net.RESET",
      }}
    />

    {/* Auto-reset capacitor (DTR to RESET) */}
    <capacitor
      name="C3"
      capacitance="100nF"
      footprint="0402"
      pcbX="-6mm"
      pcbY="5mm"
      schX={-4}
      schY={-4}
      connections={{
        pin1: "net.USB_DTR",
        pin2: "net.RESET",
      }}
    />

    {/* MCU decoupling capacitors */}
    <capacitor
      name="C4"
      capacitance="100nF"
      footprint="0402"
      pcbX="4mm"
      pcbY="5mm"
      schX={4}
      schY={-6}
      connections={{
        pin1: "net.V5",
        pin2: "net.GND",
      }}
    />
    <capacitor
      name="C5"
      capacitance="100nF"
      footprint="0402"
      pcbX="6mm"
      pcbY="5mm"
      schX={7}
      schY={-6}
      connections={{
        pin1: "net.V5",
        pin2: "net.GND",
      }}
    />
    <capacitor
      name="C6"
      capacitance="100nF"
      footprint="0402"
      pcbX="4mm"
      pcbY="-5mm"
      schX={4}
      schY={6}
      connections={{
        pin1: "net.AREF",
        pin2: "net.GND",
      }}
    />

    {/* L13 LED (on-board LED connected to D13) */}
    <resistor
      name="R2"
      resistance="1k"
      footprint="0402"
      pcbX="8mm"
      pcbY="-5mm"
      schX={10}
      schY={4}
      connections={{
        pin1: "net.D13",
        pin2: "net.L_LED",
      }}
    />
    <led
      name="LED_L"
      color="amber"
      footprint="0603"
      pcbX="10mm"
      pcbY="-5mm"
      schX={14}
      schY={4}
      connections={{
        anode: "net.L_LED",
        cathode: "net.GND",
      }}
    />
  </group>
)