ShiboSoftwareDev/solar-battery-charger
This code defines various surface-mount and through-hole electronic components (like diodes, voltage regulators, and ICs) with detailed footprints, 3D models, and pin configurations for PCB design.
- Version
- 1.0.2
- License
- unset
- Stars
- 0
index.circuit.tsx
PCB
Schematic
import type { ChipProps } from "@tscircuit/props"
import { B2B_PH_SM4_TBT_LF__SN_ } from "./imports/B2B_PH_SM4_TBT_LF__SN_"
import { B5819W_SL } from "./imports/B5819W_SL"
import { BQ24650RVAR } from "./imports/BQ24650RVAR"
import { CL10A106MA8NRNC } from "./imports/CL10A106MA8NRNC"
import { CL31A107MQHNNNE } from "./imports/CL31A107MQHNNNE"
import { DMG3404L_7 } from "./imports/DMG3404L_7"
import { LT1129CS8_3_3_PBF } from "./imports/LT1129CS8_3_3_PBF"
import { MCP73113T_06SI_MF } from "./imports/MCP73113T_06SI_MF"
import { SPH202012H100MT } from "./imports/SPH202012H100MT"
import { STC3117IJT } from "./imports/STC3117IJT"
const p = (x: number, y: number, pcbRotation = 0) => ({
pcbX: Number((x - 120.2).toFixed(3)),
pcbY: Number((79 - y).toFixed(3)),
pcbRotation,
})
const refRect = (x1: number, y1: number, x2: number, y2: number) => ({
width: `${x1}mm`,
height: `${y1}mm`,
pcbX: `${x2}mm`,
pcbY: `${y2}mm`,
})
const edgeHole = (x: number, y: number) => ({
radius: "0.9mm",
pcbX: `${Number((x - 120.2).toFixed(3))}mm`,
pcbY: `${Number((79 - y).toFixed(3))}mm`,
})
const referenceDiodePinLabels = {
pin1: ["CATHODE"],
pin2: ["ANODE"],
} as const
const jlcpcb = (partNumber: string) => ({
supplierPartNumbers: {
jlcpcb: [partNumber],
},
})
const ReferenceDiode0201 = (
props: ChipProps<typeof referenceDiodePinLabels>,
) => (
<chip
pinLabels={referenceDiodePinLabels}
manufacturerPartNumber="TPMEG3005AESFYL"
{...jlcpcb("C22435167")}
footprint={
<footprint>
<smtpad portHints={["pin1"]} pcbX="-0.32mm" pcbY="0mm" width="0.46mm" height="0.4mm" shape="rect" />
<smtpad portHints={["pin2"]} pcbX="0.32mm" pcbY="0mm" width="0.46mm" height="0.4mm" shape="rect" />
<silkscreenpath route={[{ x: -0.3, y: -0.15 }, { x: -0.3, y: 0.15 }]} />
<silkscreenpath route={[{ x: -0.2, y: -0.15 }, { x: -0.2, y: 0.15 }]} />
<silkscreenpath route={[{ x: -0.3, y: 0.15 }, { x: 0.3, y: 0.15 }]} />
<silkscreenpath route={[{ x: -0.3, y: -0.15 }, { x: 0.3, y: -0.15 }]} />
<courtyardoutline
outline={[
{ x: -0.7, y: 0.35 },
{ x: 0.7, y: 0.35 },
{ x: 0.7, y: -0.35 },
{ x: -0.7, y: -0.35 },
{ x: -0.7, y: 0.35 },
]}
/>
</footprint>
}
{...props}
/>
)
const ModulePad = ({
name,
label,
pcbX,
pcbY,
side,
}: {
name: string
label: string
pcbX: number
pcbY: number
side: "left" | "right"
}) => {
const padX = side === "left" ? -0.5 : 0.5
return (
<chip
name={name}
pcbX={pcbX}
pcbY={pcbY}
footprint={
<footprint>
<smtpad
layer="top"
shape="rect"
pcbX={`${padX}mm`}
pcbY="0mm"
width="2mm"
height="6mm"
portHints={["pin1"]}
/>
<smtpad
layer="bottom"
shape="rect"
pcbX={`${padX}mm`}
pcbY="0mm"
width="2mm"
height="6mm"
portHints={["pin1"]}
/>
</footprint>
}
pinLabels={{ pin1: label }}
/>
)
}
export default () => (
<board
width="34.8mm"
height="30mm"
autorouterVersion="v6"
layers={2}
minViaPadDiameter={0.45}
minViaHoleDiameter={0.3}
>
<autoroutingphase phaseIndex={1} connections={["IC1.B2"]} />
<copperpour connectsTo="net.GND" layer="top" clearance="0.15mm" />
<copperpour connectsTo="net.GND" layer="bottom" clearance="0.15mm" />
<cutout shape="rect" {...refRect(2.4, 1.1, -16.2, 7.5)} />
<cutout shape="rect" {...refRect(2.4, 1.1, -16.2, 0)} />
<cutout shape="rect" {...refRect(2.4, 1.1, -16.2, -7.5)} />
<cutout shape="rect" {...refRect(2.4, 1.1, 16.2, 7.5)} />
<cutout shape="rect" {...refRect(2.4, 1.1, 16.2, 0)} />
<cutout shape="rect" {...refRect(2.4, 1.1, 16.2, -7.5)} />
<cutout shape="circle" {...edgeHole(102.8, 67.7)} />
<cutout shape="circle" {...edgeHole(102.9, 75.2)} />
<cutout shape="circle" {...edgeHole(102.9, 82.6)} />
<cutout shape="circle" {...edgeHole(102.8, 90.2)} />
<cutout shape="circle" {...edgeHole(137.4, 67.7)} />
<cutout shape="circle" {...edgeHole(137.6, 75.2)} />
<cutout shape="circle" {...edgeHole(137.6, 82.8)} />
<cutout shape="circle" {...edgeHole(137.5, 90.2)} />
<ModulePad name="J8" label="VIN" pcbX={-15.7} pcbY={11.25} side="left" />
<ModulePad name="J1" label="nCE" pcbX={-15.7} pcbY={3.75} side="left" />
<ModulePad name="J6" label="ON_OFF" pcbX={-15.7} pcbY={-3.75} side="left" />
<ModulePad name="J7" label="ALM" pcbX={-15.7} pcbY={-11.25} side="left" />
<ModulePad name="J2" label="VOUT" pcbX={15.7} pcbY={11.25} side="right" />
<ModulePad name="J3" label="GND" pcbX={15.7} pcbY={3.75} side="right" />
<ModulePad name="J5" label="SDA" pcbX={15.7} pcbY={-3.75} side="right" />
<ModulePad name="J4" label="SCL" pcbX={15.7} pcbY={-11.25} side="right" />
<B2B_PH_SM4_TBT_LF__SN_ name="SLPWR1" {...p(112.2, 71)} />
<B2B_PH_SM4_TBT_LF__SN_ name="SLPWR2" {...p(128.2, 71)} />
<BQ24650RVAR name="U3" {...p(112.2, 86)} />
<MCP73113T_06SI_MF name="U2" {...p(129.2, 82, 270)} />
<STC3117IJT name="IC1" {...p(130, 76.8, 270)} />
<LT1129CS8_3_3_PBF name="U1" {...p(122.6, 89.8)} />
<DMG3404L_7 name="Q1" {...p(117, 78.2, 90)} />
<DMG3404L_7 name="Q2" {...p(120.6, 78.2, 90)} />
<DMG3404L_7 name="Q3" {...p(109, 78.3, 270)} />
<resistor name="R1" resistance="100k" footprint="0201" {...jlcpcb("C270364")} {...p(122, 84.38, 270)} />
<resistor name="R2" resistance="499k" footprint="0201" {...jlcpcb("C138138")} {...p(121.55, 81.1, 270)} />
<resistor name="R3" resistance="499k" footprint="0201" {...jlcpcb("C138138")} {...p(110.6, 82.5, 270)} />
<resistor name="R4" resistance="36k" footprint="0201" {...jlcpcb("C295796")} {...p(109.2, 84, 270)} />
<resistor name="R5" resistance="2ohm" footprint="0201" {...jlcpcb("C240147")} {...p(112.6, 76, 180)} />
<resistor name="R6" resistance="10ohm" footprint="0201" {...jlcpcb("C270817")} {...p(114, 79.7, 180)} />
<resistor name="R7" resistance="1k" footprint="0201" {...jlcpcb("C270365")} {...p(129.3, 86, 270)} />
<resistor name="R8" resistance="1k" footprint="0201" {...jlcpcb("C270365")} {...p(131.8, 86.2, 90)} />
<resistor name="R9" resistance="1k" footprint="0201" {...jlcpcb("C270365")} {...p(126.6, 75.2, 180)} />
<resistor name="R10" resistance="1k" footprint="0201" {...jlcpcb("C270365")} {...p(108.9, 88.8, 270)} />
<resistor name="R11" resistance="1k" footprint="0201" {...jlcpcb("C270365")} {...p(108, 85.2, 270)} />
<resistor name="RS1" resistance="0.005ohm" footprint="0201" {...jlcpcb("C2981420")} {...p(131.5, 75.2)} />
<resistor name="RSR1" resistance="0.02ohm" footprint="0201" {...jlcpcb("C76748")} {...p(119.95, 81.1, 90)} />
<capacitor name="C1" capacitance="2.2uF" footprint="0201" {...jlcpcb("C319184")} {...p(111, 76, 180)} />
<capacitor name="C2" capacitance="1uF" footprint="0201" {...jlcpcb("C53067")} {...p(113, 83, 90)} />
<capacitor name="C3" capacitance="1uF" footprint="0201" {...jlcpcb("C53067")} {...p(127.4, 76.2, 180)} />
<capacitor name="C4" capacitance="1uF" footprint="0201" {...jlcpcb("C53067")} {...p(115.75, 85.8, 270)} />
<capacitor name="C5" capacitance="0.1uF" footprint="0201" {...jlcpcb("C76928")} {...p(114.5, 82.9)} />
<CL10A106MA8NRNC name="C6" {...p(113, 81.2)} />
<capacitor name="C7" capacitance="0.1uF" footprint="0201" {...jlcpcb("C76928")} {...p(117.62, 83.7, 180)} />
<CL10A106MA8NRNC name="C8" {...p(120.3, 83.68, 270)} />
<capacitor name="C9" capacitance="4.7uF" footprint="0201" {...jlcpcb("C335103")} {...p(118.5, 85.08, 270)} />
<capacitor name="C10" capacitance="22pF" footprint="0201" {...jlcpcb("C57783")} {...p(122.6, 81.98, 270)} />
<capacitor name="C11" capacitance="220nF" footprint="0201" {...jlcpcb("C76932")} {...p(125.12, 75.2, 180)} />
<capacitor name="Cin1" capacitance="22pF" footprint="0201" {...jlcpcb("C57783")} {...p(131.8, 80.6, 90)} />
<capacitor name="Cout1" capacitance="22pF" footprint="0201" {...jlcpcb("C57783")} {...p(131.6, 79.0, 180)} />
<CL31A107MQHNNNE name="C_VOLT1" {...p(127.2, 88.725, 90)} />
<CL31A107MQHNNNE name="C_VOLT2" {...p(114.7, 91.45, 90)} />
<SPH202012H100MT name="L1" {...p(117.52, 81.7, 180)} />
<SPH202012H100MT name="L2" {...p(111.8, 90.3, 270)} />
<ReferenceDiode0201 name="D1" {...p(114.8, 78.6, 90)} />
<ReferenceDiode0201 name="D2" {...p(114.95, 86.95, 90)} />
<ReferenceDiode0201 name="D3" {...p(133.2, 76.1, 270)} />
<B5819W_SL name="D5" {...p(117.6, 89.25, 270)} />
<ReferenceDiode0201 name="D4" {...p(128.6, 84.5, 180)} />
<ReferenceDiode0201 name="D6" {...p(109.7, 90.15, 90)} />
<ReferenceDiode0201 name="D7" {...p(107, 84, 90)} />
<pcbnotetext pcbX={2.8} pcbY={9} text="Battery Connector" fontSize={0.7} anchorAlignment="center" pcbRotation={270} />
<pcbnotetext pcbX={-2.5} pcbY={10.2} text="Solar Panel" fontSize={0.7} anchorAlignment="center" pcbRotation={90} />
<pcbnotetext pcbX={13.4} pcbY={11.2} text="Vout" fontSize={0.5} anchorAlignment="center" pcbRotation={90} />
<pcbnotetext pcbX={13.4} pcbY={4} text="GND" fontSize={0.5} anchorAlignment="center" pcbRotation={90} />
<pcbnotetext pcbX={13.2} pcbY={-3.7} text="SDA" fontSize={0.5} anchorAlignment="center" pcbRotation={90} />
<pcbnotetext pcbX={13.2} pcbY={-10.7} text="SCL" fontSize={0.5} anchorAlignment="center" pcbRotation={90} />
<pcbnotetext pcbX={-13.4} pcbY={-11.3} text="Alarm" fontSize={0.5} anchorAlignment="center" pcbRotation={270} />
<pcbnotetext pcbX={-13.4} pcbY={-3.5} text="Power ON/OFF" fontSize={0.5} anchorAlignment="center" pcbRotation={270} />
<pcbnotetext pcbX={-13.4} pcbY={4.6} text="nCE" fontSize={0.5} anchorAlignment="center" pcbRotation={270} />
<pcbnotetext pcbX={-13.3} pcbY={10.3} text="Vin" fontSize={0.5} anchorAlignment="center" pcbRotation={270} />
<chip
name="LOGO1"
pcbX={0.1}
pcbY={-0.2}
pcbRotation={180}
layer="bottom"
footprint={
<footprint>
<silkscreentext text="OSHW" fontSize="2.4mm" anchorAlignment="center" />
</footprint>
}
/>
<trace from="SLPWR1.pin1" to="net.VCC" />
<trace from="SLPWR1.pin2" to="net.GND" />
<trace from="SLPWR2.pin1" to="net.BATD" />
<trace from="SLPWR2.pin2" to="net.CS" />
<trace from="U3.VCC" to="net.VCC" />
<trace from="U3.MPPSET" to="net.MPPSET" />
<trace from="U3.STAT1" to="net.STAT_1" />
<trace from="U3.STAT2" to="net.STAT_2" />
<trace from="U3.VREF" to="net.VREF" />
<trace from="U3.TERM_EN" to="net.VREF" />
<trace from="U3.VFB" to="net.VFB" />
<trace from="U3.SRN" to="net.BATTERY" />
<trace from="U3.SRP" to="net.SRP" />
<trace from="U3.GND" to="net.GND" />
<trace from="U3.REGN" to="net.REGN" />
<trace from="U3.LODRV" to="net.LODRV" />
<trace from="U3.PH" to="net.PH" />
<trace from="U3.HIDRV" to="net.HIDRV" />
<trace from="U3.BTST" to="net.BTST" />
<trace from="U3.EP" to="net.GND" />
<trace from="Q1.G" to="net.HIDRV" />
<trace from="Q1.S" to="net.PH" />
<trace from="Q1.D" to="net.VCC_BOOT" />
<trace from="Q2.G" to="net.LODRV" />
<trace from="Q2.S" to="net.GND" />
<trace from="Q2.D" to="net.PH" />
<trace from="Q3.G" to="net.nCE" />
<trace from="Q3.S" to="net.GND" />
<trace from="Q3.D" to="net.MPPSET" />
<trace from="R3.pin1" to="net.VCC" />
<trace from="R3.pin2" to="net.MPPSET" />
<trace from="R4.pin1" to="net.MPPSET" />
<trace from="R4.pin2" to="net.GND" />
<trace from="R5.pin1" to="net.VCC" />
<trace from="R5.pin2" to="net.C1_FILTER" />
<trace from="C1.pin1" to="net.C1_FILTER" />
<trace from="C1.pin2" to="net.GND" />
<trace from="R6.pin1" to="net.VCC_BOOT" />
<trace from="R6.pin2" to="net.VCC" />
<trace from="C2.pin1" to="net.VCC" />
<trace from="C2.pin2" to="net.GND" />
<trace from="C6.pin1" to="net.VCC_BOOT" />
<trace from="C6.pin2" to="net.GND" />
<trace from="D1.pin1" to="net.VCC_BOOT" />
<trace from="D1.pin2" to="net.VCC" />
<trace from="U3.REGN" to="D2.pin2" />
<trace from="D2.pin2" to="C4.pin1" />
<trace from="C4.pin2" to="net.GND" />
<trace from="C5.pin1" to="net.PH" />
<trace from="U3.BTST" to="D2.pin1" />
<trace from="D2.pin1" to="C5.pin2" />
<trace from="L1.pin1" to="net.SRP" />
<trace from="L1.pin2" to="net.PH" />
<trace from="RSR1.pin1" to="net.SRP" />
<trace from="RSR1.pin2" to="net.BATTERY" />
<trace from="C7.pin1" to="net.BATTERY" />
<trace from="C7.pin2" to="net.SRP" />
<trace from="C8.pin1" to="net.BATTERY" />
<trace from="C8.pin2" to="net.GND" />
<trace from="C9.pin1" to="net.BATTERY" />
<trace from="C9.pin2" to="net.GND" />
<trace from="R2.pin1" to="net.BATTERY" />
<trace from="R2.pin2" to="net.VFB" />
<trace from="R1.pin1" to="net.VFB" />
<trace from="R1.pin2" to="net.GND" />
<trace from="C10.pin1" to="net.BATTERY" />
<trace from="C10.pin2" to="net.VFB" />
<trace from="D7.pin1" to="net.STAT1_LED" />
<trace from="D7.pin2" to="net.VCC" />
<trace from="R11.pin1" to="net.STAT_1" />
<trace from="R11.pin2" to="net.STAT1_LED" />
<trace from="D6.pin1" to="net.STAT2_LED" />
<trace from="D6.pin2" to="net.VCC" />
<trace from="R10.pin1" to="net.STAT_2" />
<trace from="R10.pin2" to="net.STAT2_LED" />
<trace from="U2.VDD1" to="net.BATTERY" />
<trace from="U2.VDD2" to="net.BATTERY" />
<trace from="U2.VBAT1" to="net.BATD" />
<trace from="U2.VBAT2" to="net.BATD" />
<trace from="U2.STAT" to="net.U2_STAT" />
<trace from="U2.VSS1" to="net.GND" />
<trace from="U2.VSS2" to="net.GND" />
<trace from="U2.PROG" to="net.U2_PROG" />
<trace from="D4.pin1" to="net.U2_STAT_LED" />
<trace from="D4.pin2" to="net.BATTERY" />
<trace from="R7.pin1" to="net.U2_STAT" />
<trace from="R7.pin2" to="net.U2_STAT_LED" />
<trace from="R8.pin1" to="net.U2_PROG" />
<trace from="R8.pin2" to="net.GND" />
<trace from="IC1.A2" to="net.SDA" />
<trace from="IC1.A3" to="net.GND" />
<trace from="IC1.B1" to="net.BATD" />
<trace
name="IC1_B2_SCL_CENTER_PAD"
from="IC1.B2"
to="net.SCL"
routingPhaseIndex={1}
thickness="0.06mm"
/>
<trace from="IC1.B3" to="net.CS" />
<trace from="IC1.C1" to="net.IC1_VIN" />
<trace from="IC1.C2" to="net.BATD" />
<trace from="IC1.C3" to="net.ALM" />
<trace from="R9.pin1" to="net.BATD" />
<trace from="R9.pin2" to="net.IC1_VIN" />
<trace from="C11.pin1" to="net.IC1_VIN" />
<trace from="C11.pin2" to="net.GND" />
<trace from="RS1.pin1" to="net.CS" />
<trace from="RS1.pin2" to="net.GND" />
<trace from="C3.pin1" to="net.BATD" />
<trace from="C3.pin2" to="net.GND" />
<trace from="Cout1.pin1" to="net.GND" />
<trace from="Cout1.pin2" to="net.BATD" />
<trace from="Cin1.pin1" to="net.GND" />
<trace from="Cin1.pin2" to="net.BATTERY" />
<trace from="D3.pin1" to="net.BATTERY" />
<trace from="D3.pin2" to="net.VIN_RAW" />
<trace from="U1.OUTPUT" to="net.VOUT" />
<trace from="U1.SENSE" to="net.D5_SW" />
<trace from="U1.GND1" to="net.GND" />
<trace from="U1.NC" to="net.D5_SW" />
<trace from="U1.SHDN" to="net.ON_OFF" />
<trace from="U1.GND2" to="net.GND" />
<trace from="U1.GND3" to="net.GND" />
<trace from="U1.VIN" to="net.BATD" />
<trace from="L2.pin1" to="net.D5_SW" />
<trace from="L2.pin2" to="net.VOUT" />
<trace from="D5.pin1" to="net.D5_SW" />
<trace from="D5.pin2" to="net.GND" />
<trace from="C_VOLT1.pin1" to="net.GND" />
<trace from="C_VOLT1.pin2" to="net.BATD" />
<trace from="C_VOLT2.pin1" to="net.GND" />
<trace from="C_VOLT2.pin2" to="net.VOUT" />
<trace from="J8.VIN" to="net.VIN_RAW" />
<trace from="J1.nCE" to="net.nCE" />
<trace from="J6.ON_OFF" to="net.ON_OFF" />
<trace from="J7.ALM" to="net.ALM" />
<trace from="J2.VOUT" to="net.VOUT" />
<trace from="J3.GND" to="net.GND" />
<trace from="J5.SDA" to="net.SDA" />
<trace from="J4.SCL" to="net.SCL" />
</board>
)