imrishabh18/pcbgolf

A complete 4-layer PCBGolf controller PCB with STM32H7 MCU, USB/SD and CAN interfaces, power regulation, protection, connectors, switches, LEDs, clocking, and supporting passives.

Version
1.6.1
License
unset
Stars
0

jlcpcb-parts.tsx

import { C105637CadModel } from "./imports/RC0402JR_071KL"
import { C106233CadModel } from "./imports/RC0402JR_07100RL"
import { C106234CadModel } from "./imports/RC0402JR_07100KL"
import { C114760CadModel } from "./imports/RC0402FR_0712KL"
import { C134960CadModel } from "./imports/SMAJ16CA_13_F"
import { C137874CadModel } from "./imports/RC0402JR_073K3L"
import { C137881CadModel } from "./imports/RC0402JR_0733KL"
import { C137888CadModel } from "./imports/RC0402JR_072K7L"
import { C137954CadModel } from "./imports/RC0402FR_0760R4L"
import { C138020CadModel } from "./imports/RC0402FR_0728KL"
import { C140313CadModel } from "./imports/TPS25944ARVCR"
import { C142572CadModel } from "./imports/SI7101DN_T1_GE3"
import { C1521556CadModel } from "./imports/USB2517_JZX"
import { C1525CadModel } from "./imports/CL05B104KO5NNNC"
import { C15850CadModel } from "./imports/CL21A106KAYNNNE"
import { C164170CadModel } from "./imports/A_472192001"
import { C1880390CadModel } from "./imports/AP62300WU_7"
import { C1883519CadModel } from "./imports/AP62300TWU_7"
import { C1985412CadModel } from "./imports/ABM8AIG_25_000MHZ_12_2Z_T3"
import { C22434687CadModel } from "./imports/PJ_002AH_SMT_TR"
import { C276275CadModel } from "./imports/RC0402FR_0752K3L"
import { C2828255CadModel } from "./imports/EVQQ2Y03W"
import { C2889124CadModel } from "./imports/QS5K2TR"
import { C3020560CadModel } from "./imports/USB4105_GF_A"
import { C3039743CadModel } from "./imports/ACT1210D_101_2P_TL00"
import { C408132CadModel } from "./imports/GRM155R61A106ME11D"
import { C457774CadModel } from "./imports/NCS20071SN2T1G"
import { C5271072CadModel } from "./imports/STM32H725ZGT3"
import { C5456999CadModel } from "./imports/LG_R971_KN_1"
import { C597026CadModel } from "./imports/A_04025A221JAT2A"
import { C60490CadModel } from "./imports/RC0402FR_0710KL"
import { C623192CadModel } from "./imports/MCP2542FDT_H_MNY"
import { C780186CadModel } from "./imports/MH1608_601Y"
import { C83998CadModel } from "./imports/LQM2MPN2R2NG0L"
import { C93949CadModel } from "./imports/RC0402JR_071ML"
import assignments from "./cad-model-assignments.json"

const importedModels: Record<string, any> = { C105637: C105637CadModel, C106233: C106233CadModel, C106234: C106234CadModel, C114760: C114760CadModel, C134960: C134960CadModel, C137874: C137874CadModel, C137881: C137881CadModel, C137888: C137888CadModel, C137954: C137954CadModel, C138020: C138020CadModel, C140313: C140313CadModel, C142572: C142572CadModel, C1521556: C1521556CadModel, C1525: C1525CadModel, C15850: C15850CadModel, C164170: C164170CadModel, C1880390: C1880390CadModel, C1883519: C1883519CadModel, C1985412: C1985412CadModel, C22434687: C22434687CadModel, C276275: C276275CadModel, C2828255: C2828255CadModel, C2889124: C2889124CadModel, C3020560: C3020560CadModel, C3039743: C3039743CadModel, C408132: C408132CadModel, C457774: C457774CadModel, C5271072: C5271072CadModel, C5456999: C5456999CadModel, C597026: C597026CadModel, C60490: C60490CadModel, C623192: C623192CadModel, C780186: C780186CadModel, C83998: C83998CadModel, C93949: C93949CadModel }

const sourceModels: Record<string, any> = {
  "J3": {"stepUrl": "https://raw.githubusercontent.com/commaai/PCBGolf/7210bdb5049c5b7fdf4900a34928e2736767292a/pcbgolf.3dshapes/Connector_USB.3dshapes/DX07S024XJ1R1100.step", "modelOriginPosition": {"x": 0, "y": 0, "z": 0}, "rotationOffset": {"x": 90, "y": 0, "z": 0}},
  "D2": {
    "stepUrl": "https://raw.githubusercontent.com/commaai/PCBGolf/7210bdb5049c5b7fdf4900a34928e2736767292a/pcbgolf.3dshapes/Diode_SMD.3dshapes/D_SOD-123F.step",
    "modelOriginPosition": {
      "x": 0,
      "y": 0,
      "z": 0
    },
    "rotationOffset": {
      "x": 0.0,
      "y": 0.0,
      "z": 90.0
    }
  },
  "J5": {
    "stepUrl": "https://raw.githubusercontent.com/commaai/PCBGolf/7210bdb5049c5b7fdf4900a34928e2736767292a/pcbgolf.3dshapes/Connector_USB.3dshapes/10132328-10011LF.step",
    "modelOriginPosition": {
      "x": 0,
      "y": 0,
      "z": 0
    },
    "rotationOffset": {
      "x": -0.0,
      "y": -0.0,
      "z": -0.0
    }
  },
  "J6": {
    "stepUrl": "https://raw.githubusercontent.com/commaai/PCBGolf/7210bdb5049c5b7fdf4900a34928e2736767292a/pcbgolf.3dshapes/Connector_USB.3dshapes/10132328-10011LF.step",
    "modelOriginPosition": {
      "x": 0,
      "y": 0,
      "z": 0
    },
    "rotationOffset": {
      "x": -0.0,
      "y": -0.0,
      "z": -0.0
    }
  },
  "J7": {
    "stepUrl": "https://raw.githubusercontent.com/commaai/PCBGolf/7210bdb5049c5b7fdf4900a34928e2736767292a/pcbgolf.3dshapes/Connector_USB.3dshapes/10132328-10011LF.step",
    "modelOriginPosition": {
      "x": 0,
      "y": 0,
      "z": 0
    },
    "rotationOffset": {
      "x": -0.0,
      "y": -0.0,
      "z": -0.0
    }
  },
  "J8": {
    "stepUrl": "https://raw.githubusercontent.com/commaai/PCBGolf/7210bdb5049c5b7fdf4900a34928e2736767292a/pcbgolf.3dshapes/Connector_USB.3dshapes/10132328-10011LF.step",
    "modelOriginPosition": {
      "x": 0,
      "y": 0,
      "z": 0
    },
    "rotationOffset": {
      "x": -0.0,
      "y": -0.0,
      "z": -0.0
    }
  },
  "L1": {
    "stepUrl": "https://raw.githubusercontent.com/commaai/PCBGolf/7210bdb5049c5b7fdf4900a34928e2736767292a/pcbgolf.3dshapes/Inductor_SMD.3dshapes/L_1008_2520Metric.step",
    "modelOriginPosition": {
      "x": 0,
      "y": 0,
      "z": 0
    },
    "rotationOffset": {
      "x": -0.0,
      "y": -0.0,
      "z": -0.0
    }
  },
  "L2": {
    "stepUrl": "https://raw.githubusercontent.com/commaai/PCBGolf/7210bdb5049c5b7fdf4900a34928e2736767292a/pcbgolf.3dshapes/Inductor_SMD.3dshapes/L_1008_2520Metric.step",
    "modelOriginPosition": {
      "x": 0,
      "y": 0,
      "z": 0
    },
    "rotationOffset": {
      "x": -0.0,
      "y": -0.0,
      "z": -0.0
    }
  },
  "LED1": {
    "stepUrl": "https://raw.githubusercontent.com/commaai/PCBGolf/7210bdb5049c5b7fdf4900a34928e2736767292a/pcbgolf.3dshapes/LED_SMD.3dshapes/CLMVC-FKA-CL1D1L71BB7C3C3.step",
    "modelOriginPosition": {
      "x": 0,
      "y": 0,
      "z": 0
    },
    "rotationOffset": {
      "x": 90.0,
      "y": 0.0,
      "z": 0.0
    }
  },
  "LED10": {
    "stepUrl": "https://raw.githubusercontent.com/commaai/PCBGolf/7210bdb5049c5b7fdf4900a34928e2736767292a/pcbgolf.3dshapes/Package_TO_SOT_SMD.3dshapes/SOT-23-3.step",
    "modelOriginPosition": {
      "x": 0,
      "y": 0,
      "z": 0
    },
    "rotationOffset": {
      "x": -0.0,
      "y": -0.0,
      "z": 90.0
    }
  },
  "LED11": {
    "stepUrl": "https://raw.githubusercontent.com/commaai/PCBGolf/7210bdb5049c5b7fdf4900a34928e2736767292a/pcbgolf.3dshapes/Package_TO_SOT_SMD.3dshapes/SOT-23-3.step",
    "modelOriginPosition": {
      "x": 0,
      "y": 0,
      "z": 0
    },
    "rotationOffset": {
      "x": -0.0,
      "y": -0.0,
      "z": 90.0
    }
  },
  "LED12": {
    "stepUrl": "https://raw.githubusercontent.com/commaai/PCBGolf/7210bdb5049c5b7fdf4900a34928e2736767292a/pcbgolf.3dshapes/Package_TO_SOT_SMD.3dshapes/SOT-23-3.step",
    "modelOriginPosition": {
      "x": 0,
      "y": 0,
      "z": 0
    },
    "rotationOffset": {
      "x": -0.0,
      "y": -0.0,
      "z": 90.0
    }
  },
  "LED13": {
    "stepUrl": "https://raw.githubusercontent.com/commaai/PCBGolf/7210bdb5049c5b7fdf4900a34928e2736767292a/pcbgolf.3dshapes/Package_TO_SOT_SMD.3dshapes/SOT-23-3.step",
    "modelOriginPosition": {
      "x": 0,
      "y": 0,
      "z": 0
    },
    "rotationOffset": {
      "x": -0.0,
      "y": -0.0,
      "z": 90.0
    }
  },
  "LED14": {
    "stepUrl": "https://raw.githubusercontent.com/commaai/PCBGolf/7210bdb5049c5b7fdf4900a34928e2736767292a/pcbgolf.3dshapes/Package_TO_SOT_SMD.3dshapes/SOT-23-3.step",
    "modelOriginPosition": {
      "x": 0,
      "y": 0,
      "z": 0
    },
    "rotationOffset": {
      "x": -0.0,
      "y": -0.0,
      "z": 90.0
    }
  },
  "LED15": {
    "stepUrl": "https://raw.githubusercontent.com/commaai/PCBGolf/7210bdb5049c5b7fdf4900a34928e2736767292a/pcbgolf.3dshapes/Package_TO_SOT_SMD.3dshapes/SOT-23-3.step",
    "modelOriginPosition": {
      "x": 0,
      "y": 0,
      "z": 0
    },
    "rotationOffset": {
      "x": -0.0,
      "y": -0.0,
      "z": 90.0
    }
  },
  "LED16": {
    "stepUrl": "https://raw.githubusercontent.com/commaai/PCBGolf/7210bdb5049c5b7fdf4900a34928e2736767292a/pcbgolf.3dshapes/Package_TO_SOT_SMD.3dshapes/SOT-23-3.step",
    "modelOriginPosition": {
      "x": 0,
      "y": 0,
      "z": 0
    },
    "rotationOffset": {
      "x": -0.0,
      "y": -0.0,
      "z": 90.0
    }
  },
  "LED17": {
    "stepUrl": "https://raw.githubusercontent.com/commaai/PCBGolf/7210bdb5049c5b7fdf4900a34928e2736767292a/pcbgolf.3dshapes/Package_TO_SOT_SMD.3dshapes/SOT-23-3.step",
    "modelOriginPosition": {
      "x": 0,
      "y": 0,
      "z": 0
    },
    "rotationOffset": {
      "x": -0.0,
      "y": -0.0,
      "z": 90.0
    }
  }
}

/** JLCPCB model bindings; package-only and source-CAD exceptions are explicit. */
export function cadModelFor(reference: string) {
  const row = (assignments as Record<string, any>)[reference]
  if (!row) return undefined
  const base = row.modelPart ? importedModels[row.modelPart] : sourceModels[reference]
  if (!base || !(base.objUrl || base.stepUrl || base.glbUrl)) throw new Error(`Missing CAD model for ${reference}`)
  return { ...base, ...row.cadOverrides, positionOffset: row.cadPositionOffset }
}

export function supplierPartNumbersFor(reference: string) {
  const row = (assignments as Record<string, any>)[reference]
  return row?.catalogPart ? { jlcpcb: [row.catalogPart] } : undefined
}