AnasSarkiz/usb-c-pd-brushed-motor
USB-C PD-powered motor controller with protected input, selectable 5/9/12 V buck supply, MCU qualification, PWM H-bridge drive, overvoltage sensing, regenerative energy-dump resistors, and safety interlocks.
- Version
- 0.0.1-a48-cloud-pipeline9-unrouted-c41d79a-305b1e7a
- License
- unset
- Stars
- 0
circuit/product-placement.ts
// A22: board-level numeric millimetre placements; supplier imports unchanged.
export const productPlacement = {
TP1: {
x: -28.1,
y: -3,
ccwRotationDegrees: 0,
},
TP2: {
x: -28.1,
y: -7,
ccwRotationDegrees: 0,
},
TP3: {
x: -19.75,
y: 3.25,
ccwRotationDegrees: 90,
},
TP4: {
x: -23,
y: -12.5,
ccwRotationDegrees: 0,
},
TP5: {
x: -20,
y: 18,
ccwRotationDegrees: 90,
},
TP6: {
x: -20,
y: 12.5,
ccwRotationDegrees: 90,
},
TP7: {
x: 20,
y: 12,
ccwRotationDegrees: 90,
},
C29: {
x: 25,
y: 11,
ccwRotationDegrees: 0,
},
C28: {
x: 28.3,
y: 5.9,
ccwRotationDegrees: 270,
},
C27: {
x: 26.0,
y: 5.9,
ccwRotationDegrees: 90,
},
C26: {
x: 23.1,
y: 5.5,
ccwRotationDegrees: 0,
},
C22: {
x: 7.9,
y: 13.25,
ccwRotationDegrees: 0,
},
C23: {
x: -1.15,
y: 13.5,
ccwRotationDegrees: 90,
},
C34: {
x: -8.4,
y: 2,
ccwRotationDegrees: 0,
},
R67: {
x: -12,
y: 2,
ccwRotationDegrees: 0,
},
R66: {
x: -12,
y: 0,
ccwRotationDegrees: 180,
},
C33: {
x: -10,
y: -7.2,
ccwRotationDegrees: 0,
},
R61: {
x: -10.5,
y: -4.8,
ccwRotationDegrees: 0,
},
R60: {
x: -11.5,
y: -2,
ccwRotationDegrees: 0,
},
C32: {
x: -12.9,
y: -4.35,
ccwRotationDegrees: 90,
},
C31: {
x: -14.2,
y: -10.7,
ccwRotationDegrees: 90,
},
C30: {
x: -13.8,
y: -7,
ccwRotationDegrees: 0,
},
C15: {
x: -7.2,
y: -13.75,
ccwRotationDegrees: 0,
},
C12: {
x: -3.2,
y: -16,
ccwRotationDegrees: 270,
},
J1: {
// GCT recommended PCB edge: 7.35 mm in front of the SMT pad row.
x: -34.7650644,
y: 4,
ccwRotationDegrees: -90,
},
J2: {
x: 34,
y: 8,
ccwRotationDegrees: 90,
},
RV1: {
x: -9,
y: 17,
ccwRotationDegrees: 0,
},
SW1: {
x: 10,
y: 21,
ccwRotationDegrees: 0,
},
SW2: {
x: -23,
y: 24,
ccwRotationDegrees: 90,
},
U1: {
x: -24.4,
y: 4.0,
ccwRotationDegrees: 0,
},
U2: {
x: -32,
y: 15,
ccwRotationDegrees: 90,
},
U3: {
x: -25,
y: 15,
ccwRotationDegrees: 90,
},
U11: {
x: -20,
y: -6,
ccwRotationDegrees: 90,
},
U4: {
x: -22,
y: -19,
ccwRotationDegrees: 0,
},
U5: {
x: -8.7,
y: -19,
ccwRotationDegrees: 180,
},
U6: {
x: 3,
y: 9,
ccwRotationDegrees: 0,
},
U8: {
x: 13,
y: -3,
ccwRotationDegrees: 0,
},
U9: {
x: 13,
y: 5,
ccwRotationDegrees: 0,
},
U10: {
x: 25,
y: 0,
ccwRotationDegrees: 0,
},
L1: {
x: 5.3,
y: -18.5,
ccwRotationDegrees: 0,
},
C18: {
x: 25.5,
y: -14.0,
ccwRotationDegrees: 0,
},
D1: {
x: -33,
y: -7,
ccwRotationDegrees: 90,
},
D4: {
x: -32,
y: -17,
ccwRotationDegrees: 90,
},
D5: {
x: -3.7,
y: -22.5,
ccwRotationDegrees: 90,
},
D10: {
x: 31,
y: 18,
ccwRotationDegrees: 90,
},
D11: {
x: 33,
y: -3,
ccwRotationDegrees: 90,
},
C13: {
x: -9.2,
y: -10.6,
ccwRotationDegrees: 180,
},
C14: {
x: -13.5,
y: -19,
ccwRotationDegrees: 90,
},
Q3: {
x: 35.5,
y: -15.0,
ccwRotationDegrees: 180,
},
R45: {
x: 17,
y: -29,
ccwRotationDegrees: 0,
},
R46: {
x: 26.5,
y: -29,
ccwRotationDegrees: 0,
},
R47: {
x: 17,
y: -24,
ccwRotationDegrees: 0,
},
R48: {
x: 26.5,
y: -24,
ccwRotationDegrees: 0,
},
R69: {
x: -22.0,
y: -29.5,
ccwRotationDegrees: 0,
},
R70: {
x: -12.5,
y: -29.5,
ccwRotationDegrees: 0,
},
R71: {
x: -2.0,
y: -29.5,
ccwRotationDegrees: 0,
},
R72: {
x: 7.5,
y: -29.5,
ccwRotationDegrees: 0,
},
LED1: {
x: 25,
y: 24,
ccwRotationDegrees: 0,
},
LED2: {
x: 20,
y: 24,
ccwRotationDegrees: 0,
},
LED3: {
x: 20,
y: 19,
ccwRotationDegrees: 0,
},
C16: {
x: 15.2,
y: -16.0,
ccwRotationDegrees: 0,
},
C17: {
x: 15.2,
y: -19.5,
ccwRotationDegrees: 0,
},
D2: {
x: -23.25,
y: 8.75,
ccwRotationDegrees: 0,
},
Q6: {
x: 1,
y: 2,
ccwRotationDegrees: 0,
},
Q7: {
x: -3.5,
y: -11.25,
ccwRotationDegrees: 0,
},
Q8: {
x: -16,
y: 1,
ccwRotationDegrees: 0,
},
Q1: {
x: -29,
y: -24,
ccwRotationDegrees: 0,
},
Q2: {
x: 35.5,
y: -11.0,
ccwRotationDegrees: 0,
},
Q4: {
x: 8,
y: 2,
ccwRotationDegrees: 0,
},
Q5: {
x: 5,
y: -10,
ccwRotationDegrees: 180,
},
R68: {
x: -4,
y: -8,
ccwRotationDegrees: 0,
},
D3: {
x: -17.0,
y: 6.0,
ccwRotationDegrees: 270,
},
D9: {
x: 35.0,
y: -20.0,
ccwRotationDegrees: 90,
},
C1: {
x: -30,
y: 19,
ccwRotationDegrees: 0,
},
C6: {
x: -29.2,
y: 6.5,
ccwRotationDegrees: 90,
},
C7: {
x: -29.2,
y: 1.6,
ccwRotationDegrees: 270,
},
C11: {
x: -18.0,
y: -13.8,
ccwRotationDegrees: 0,
},
D6: {
x: -2,
y: 9,
ccwRotationDegrees: 90,
},
D7: {
x: -5,
y: 9,
ccwRotationDegrees: 270,
},
D8: {
x: 8,
y: 7,
ccwRotationDegrees: 90,
},
R1: {
x: -11,
y: 6,
ccwRotationDegrees: 90,
},
R2: {
x: -14.0,
y: 6.0,
ccwRotationDegrees: 180,
},
R3: {
x: -13.0,
y: 8.5,
ccwRotationDegrees: 90,
},
R4: {
x: -21.0,
y: 0.0,
ccwRotationDegrees: 0,
},
R56: {
x: -17.25,
y: -10.7,
ccwRotationDegrees: 0,
},
R57: {
x: -8,
y: -2,
ccwRotationDegrees: 90,
},
R58: {
x: -24,
y: 19,
ccwRotationDegrees: 0,
},
R59: {
x: -8,
y: 6,
ccwRotationDegrees: 90,
},
R62: {
x: -28,
y: -14,
ccwRotationDegrees: 0,
},
R63: {
x: -5,
y: -3,
ccwRotationDegrees: 90,
},
R64: {
x: -5,
y: 1,
ccwRotationDegrees: 90,
},
R5: {
x: -32,
y: -12,
ccwRotationDegrees: 180,
},
R6: {
x: -25,
y: -24,
ccwRotationDegrees: 180,
},
R7: {
x: -28.3,
y: -18.65,
ccwRotationDegrees: 180,
},
R8: {
x: -32.0,
y: -22.75,
ccwRotationDegrees: 270,
},
R9: {
x: -30.25,
y: -27.75,
ccwRotationDegrees: 90,
},
R10: {
x: -28,
y: -28,
ccwRotationDegrees: 270,
},
R11: {
x: -36,
y: -22,
ccwRotationDegrees: 180,
},
R12: {
x: -36,
y: -19,
ccwRotationDegrees: 0,
},
R13: {
x: -35,
y: -16,
ccwRotationDegrees: 270,
},
R16: {
x: -2,
y: -4,
ccwRotationDegrees: 270,
},
R17: {
x: -13.45,
y: -14.3,
ccwRotationDegrees: 180,
},
R18: {
x: -16.7,
y: -17.0,
ccwRotationDegrees: 270,
},
R55: {
x: -16.7,
y: -20.6,
ccwRotationDegrees: 270,
},
R19: {
x: -17.05,
y: -24.0,
ccwRotationDegrees: 180,
},
R20: {
x: -20.05,
y: -25.4,
ccwRotationDegrees: 270,
},
R21: {
x: -16.1,
y: -26.1,
ccwRotationDegrees: 180,
},
R22: {
x: -9.5,
y: -24.95,
ccwRotationDegrees: 270,
},
R23: {
x: 9,
y: -2,
ccwRotationDegrees: 270,
},
R24: {
x: 11,
y: -7,
ccwRotationDegrees: 270,
},
R25: {
x: -8,
y: 10,
ccwRotationDegrees: 90,
},
R26: {
x: -4,
y: 5,
ccwRotationDegrees: 0,
},
R29: {
x: 12,
y: 13,
ccwRotationDegrees: 0,
},
R30: {
x: 16,
y: 13,
ccwRotationDegrees: 0,
},
R31: {
x: 13,
y: 0,
ccwRotationDegrees: 0,
},
R32: {
x: 17,
y: -1,
ccwRotationDegrees: 90,
},
R33: {
x: 18,
y: 2,
ccwRotationDegrees: 180,
},
R34: {
x: 8,
y: 11,
ccwRotationDegrees: 0,
},
R39: {
x: 18,
y: 5,
ccwRotationDegrees: 180,
},
R65: {
x: 18,
y: 8,
ccwRotationDegrees: 0,
},
R40: {
x: 22,
y: 8,
ccwRotationDegrees: 0,
},
R51: {
x: 20,
y: -1,
ccwRotationDegrees: 270,
},
R41: {
x: 28,
y: -7,
ccwRotationDegrees: 180,
},
R42: {
x: 24,
y: -7,
ccwRotationDegrees: 180,
},
R43: {
x: 20,
y: -7,
ccwRotationDegrees: 180,
},
R44: {
x: 16,
y: -7,
ccwRotationDegrees: 0,
},
R49: {
x: 14,
y: -10,
ccwRotationDegrees: 270,
},
C2: {
x: -36.25,
y: 14.0,
ccwRotationDegrees: 90,
},
C3: {
x: -26.25,
y: 8.5,
ccwRotationDegrees: 270,
},
C4: {
x: -28.6,
y: 11.5,
ccwRotationDegrees: 0,
},
C5: {
x: -23.25,
y: 11.75,
ccwRotationDegrees: 180,
},
C8: {
x: -25.2,
y: -0.2,
ccwRotationDegrees: 0,
},
C9: {
x: -28.05,
y: -21.0,
ccwRotationDegrees: 180,
},
C10: {
x: -28.0,
y: -16.2,
ccwRotationDegrees: 180,
},
C19: {
x: -12.35,
y: -25.05,
ccwRotationDegrees: 180,
},
C20: {
x: -13.3,
y: -22.8,
ccwRotationDegrees: 180,
},
C21: {
x: 4.9,
y: 14.65,
ccwRotationDegrees: 90,
},
C25: {
x: 11.5,
y: 9.95,
ccwRotationDegrees: 180,
},
R50: {
x: 29,
y: 0,
ccwRotationDegrees: 270,
},
R54: {
x: 25,
y: 29,
ccwRotationDegrees: 270,
},
}
export const pcbPlacements = Object.entries(productPlacement).map(
([selector, placement]) => ({
selector,
center: { x: placement.x, y: placement.y },
}),
)