techmannih/nema34-mounted-stepper-controller

A 48 V USB‑C PD 3.1 EPR NEMA‑34 stepper controller PCB combining STM32/TMC5160 control, external MOSFET motor bridges, protected power and regenerative braking, USB data, telemetry, diagnostics, status LEDs, and buzzer alarms.

Version
0.3.92
License
unset
Stars
1

imports/STM32G0B1.tsx

import type { ChipProps } from "@tscircuit/props"

// STM32G0B1CEU6, GP pinout. ST DS13560 Rev 6, figures 6 and 46.
// 0.5 mm pitch; 0.30 x 0.55 mm peripheral lands, 5.60 mm grounded EP.
export const stm32Footprint = <footprint>
  <smtpad portHints={["pin1"]} pcbX={-2.75} pcbY={-3.375} width={0.3} height={0.55} shape="rect" />
  <smtpad portHints={["pin2"]} pcbX={-2.25} pcbY={-3.375} width={0.3} height={0.55} shape="rect" />
  <smtpad portHints={["pin3"]} pcbX={-1.75} pcbY={-3.375} width={0.3} height={0.55} shape="rect" />
  <smtpad portHints={["pin4"]} pcbX={-1.25} pcbY={-3.375} width={0.3} height={0.55} shape="rect" />
  <smtpad portHints={["pin5"]} pcbX={-0.75} pcbY={-3.375} width={0.3} height={0.55} shape="rect" />
  <smtpad portHints={["pin6"]} pcbX={-0.25} pcbY={-3.375} width={0.3} height={0.55} shape="rect" />
  <smtpad portHints={["pin7"]} pcbX={0.25} pcbY={-3.375} width={0.3} height={0.55} shape="rect" />
  <smtpad portHints={["pin8"]} pcbX={0.75} pcbY={-3.375} width={0.3} height={0.55} shape="rect" />
  <smtpad portHints={["pin9"]} pcbX={1.25} pcbY={-3.375} width={0.3} height={0.55} shape="rect" />
  <smtpad portHints={["pin10"]} pcbX={1.75} pcbY={-3.375} width={0.3} height={0.55} shape="rect" />
  <smtpad portHints={["pin11"]} pcbX={2.25} pcbY={-3.375} width={0.3} height={0.55} shape="rect" />
  <smtpad portHints={["pin12"]} pcbX={2.75} pcbY={-3.375} width={0.3} height={0.55} shape="rect" />
  <smtpad portHints={["pin13"]} pcbX={3.375} pcbY={-2.75} width={0.55} height={0.3} shape="rect" />
  <smtpad portHints={["pin14"]} pcbX={3.375} pcbY={-2.25} width={0.55} height={0.3} shape="rect" />
  <smtpad portHints={["pin15"]} pcbX={3.375} pcbY={-1.75} width={0.55} height={0.3} shape="rect" />
  <smtpad portHints={["pin16"]} pcbX={3.375} pcbY={-1.25} width={0.55} height={0.3} shape="rect" />
  <smtpad portHints={["pin17"]} pcbX={3.375} pcbY={-0.75} width={0.55} height={0.3} shape="rect" />
  <smtpad portHints={["pin18"]} pcbX={3.375} pcbY={-0.25} width={0.55} height={0.3} shape="rect" />
  <smtpad portHints={["pin19"]} pcbX={3.375} pcbY={0.25} width={0.55} height={0.3} shape="rect" />
  <smtpad portHints={["pin20"]} pcbX={3.375} pcbY={0.75} width={0.55} height={0.3} shape="rect" />
  <smtpad portHints={["pin21"]} pcbX={3.375} pcbY={1.25} width={0.55} height={0.3} shape="rect" />
  <smtpad portHints={["pin22"]} pcbX={3.375} pcbY={1.75} width={0.55} height={0.3} shape="rect" />
  <smtpad portHints={["pin23"]} pcbX={3.375} pcbY={2.25} width={0.55} height={0.3} shape="rect" />
  <smtpad portHints={["pin24"]} pcbX={3.375} pcbY={2.75} width={0.55} height={0.3} shape="rect" />
  <smtpad portHints={["pin25"]} pcbX={2.75} pcbY={3.375} width={0.3} height={0.55} shape="rect" />
  <smtpad portHints={["pin26"]} pcbX={2.25} pcbY={3.375} width={0.3} height={0.55} shape="rect" />
  <smtpad portHints={["pin27"]} pcbX={1.75} pcbY={3.375} width={0.3} height={0.55} shape="rect" />
  <smtpad portHints={["pin28"]} pcbX={1.25} pcbY={3.375} width={0.3} height={0.55} shape="rect" />
  <smtpad portHints={["pin29"]} pcbX={0.75} pcbY={3.375} width={0.3} height={0.55} shape="rect" />
  <smtpad portHints={["pin30"]} pcbX={0.25} pcbY={3.375} width={0.3} height={0.55} shape="rect" />
  <smtpad portHints={["pin31"]} pcbX={-0.25} pcbY={3.375} width={0.3} height={0.55} shape="rect" />
  <smtpad portHints={["pin32"]} pcbX={-0.75} pcbY={3.375} width={0.3} height={0.55} shape="rect" />
  <smtpad portHints={["pin33"]} pcbX={-1.25} pcbY={3.375} width={0.3} height={0.55} shape="rect" />
  <smtpad portHints={["pin34"]} pcbX={-1.75} pcbY={3.375} width={0.3} height={0.55} shape="rect" />
  <smtpad portHints={["pin35"]} pcbX={-2.25} pcbY={3.375} width={0.3} height={0.55} shape="rect" />
  <smtpad portHints={["pin36"]} pcbX={-2.75} pcbY={3.375} width={0.3} height={0.55} shape="rect" />
  <smtpad portHints={["pin37"]} pcbX={-3.375} pcbY={2.75} width={0.55} height={0.3} shape="rect" />
  <smtpad portHints={["pin38"]} pcbX={-3.375} pcbY={2.25} width={0.55} height={0.3} shape="rect" />
  <smtpad portHints={["pin39"]} pcbX={-3.375} pcbY={1.75} width={0.55} height={0.3} shape="rect" />
  <smtpad portHints={["pin40"]} pcbX={-3.375} pcbY={1.25} width={0.55} height={0.3} shape="rect" />
  <smtpad portHints={["pin41"]} pcbX={-3.375} pcbY={0.75} width={0.55} height={0.3} shape="rect" />
  <smtpad portHints={["pin42"]} pcbX={-3.375} pcbY={0.25} width={0.55} height={0.3} shape="rect" />
  <smtpad portHints={["pin43"]} pcbX={-3.375} pcbY={-0.25} width={0.55} height={0.3} shape="rect" />
  <smtpad portHints={["pin44"]} pcbX={-3.375} pcbY={-0.75} width={0.55} height={0.3} shape="rect" />
  <smtpad portHints={["pin45"]} pcbX={-3.375} pcbY={-1.25} width={0.55} height={0.3} shape="rect" />
  <smtpad portHints={["pin46"]} pcbX={-3.375} pcbY={-1.75} width={0.55} height={0.3} shape="rect" />
  <smtpad portHints={["pin47"]} pcbX={-3.375} pcbY={-2.25} width={0.55} height={0.3} shape="rect" />
  <smtpad portHints={["pin48"]} pcbX={-3.375} pcbY={-2.75} width={0.55} height={0.3} shape="rect" />
  <smtpad portHints={["pin49"]} pcbX={0} pcbY={0} width={5.6} height={5.6}
    shape="rect" solderPasteMargin={-0.5} />
  <courtyardrect width={7.8} height={7.8} />
  <fabricationnotepath route={[{x:-3.5,y:-3.5},{x:3.5,y:-3.5},{x:3.5,y:3.5},{x:-3.5,y:3.5},{x:-3.5,y:-3.5}]} />
  <silkscreenpath route={[{x:-3.8,y:-3.1},{x:-3.8,y:-3.8},{x:-3.1,y:-3.8}]} />
  <silkscreentext text="{NAME}" pcbX={0} pcbY={4.6} anchorAlignment="center" />
</footprint>
export const stm32PinLabels = {
  "pin1": [
    "PC13"
  ],
  "pin2": [
    "PC14_OSC32_IN"
  ],
  "pin3": [
    "PC15_OSC32_OUT"
  ],
  "pin4": [
    "VBAT"
  ],
  "pin5": [
    "VREF_POS"
  ],
  "pin6": [
    "VDD",
    "VDDA"
  ],
  "pin7": [
    "VSS",
    "VSSA"
  ],
  "pin8": [
    "PF0_OSC_IN"
  ],
  "pin9": [
    "PF1_OSC_OUT"
  ],
  "pin10": [
    "PF2_NRST"
  ],
  "pin11": [
    "PA0"
  ],
  "pin12": [
    "PA1"
  ],
  "pin13": [
    "PA2"
  ],
  "pin14": [
    "PA3"
  ],
  "pin15": [
    "PA4"
  ],
  "pin16": [
    "PA5"
  ],
  "pin17": [
    "PA6"
  ],
  "pin18": [
    "PA7"
  ],
  "pin19": [
    "PB0"
  ],
  "pin20": [
    "PB1"
  ],
  "pin21": [
    "PB2"
  ],
  "pin22": [
    "PB10"
  ],
  "pin23": [
    "PB11"
  ],
  "pin24": [
    "PB12"
  ],
  "pin25": [
    "PB13"
  ],
  "pin26": [
    "PB14"
  ],
  "pin27": [
    "PB15"
  ],
  "pin28": [
    "PA8"
  ],
  "pin29": [
    "PA9"
  ],
  "pin30": [
    "PC6"
  ],
  "pin31": [
    "PC7"
  ],
  "pin32": [
    "PA10"
  ],
  "pin33": [
    "PA11_PA9_"
  ],
  "pin34": [
    "PA12_PA10_"
  ],
  "pin35": [
    "PA13"
  ],
  "pin36": [
    "PA14_BOOT0"
  ],
  "pin37": [
    "PA15"
  ],
  "pin38": [
    "PD0"
  ],
  "pin39": [
    "PD1"
  ],
  "pin40": [
    "PD2"
  ],
  "pin41": [
    "PD3"
  ],
  "pin42": [
    "PB3"
  ],
  "pin43": [
    "PB4"
  ],
  "pin44": [
    "PB5"
  ],
  "pin45": [
    "PB6"
  ],
  "pin46": [
    "PB7"
  ],
  "pin47": [
    "PB8"
  ],
  "pin48": [
    "PB9"
  ],
  "pin49": ["EP_GND"]
} as const
export const STM32G0B1 = (props: ChipProps<typeof stm32PinLabels>) => {
  return <chip
    supplierPartNumbers={{ jlcpcb: ["C2829190"] }}
    manufacturerPartNumber="STM32G0B1CEU6"
    footprint={stm32Footprint}
    cadModel={{
      objUrl: "https://modelcdn.tscircuit.com/easyeda_models/download?uuid=16912e571dfb42a9a47b4df7b841ed45&pn=C2829190",
      rotationOffset: { x: 0, y: 0, z: 90 },
      positionOffset: { x: 0, y: 0, z: 0 },
    }}
    {...props}
    pinLabels={stm32PinLabels}
    pinAttributes={{ pin4: { requiresPower: true }, pin5: { requiresPower: true }, pin6: { requiresPower: true }, pin7: { requiresGround: true }, pin49: { requiresGround: true } }}
  />
}

// The standalone viewer must render the component, not the pin-label export.
export default STM32G0B1