AnasSarkiz/VoltPeek
This code defines a PCB layout featuring a voltage probe module with key components including an RP2040 microcontroller, resistors, LEDs, connectors, and a custom probe interface, along with their physical footprints and routing details.
- Version
- 1.0.0
- License
- unset
- Stars
- 0
index.circuit.tsx
PCB
Schematic
import { PJ_320D } from "./imports/PJ_320D"
import { TAC_32N_Q_T_R } from "./imports/TAC_32N_Q_T_R"
const xiaoPinLabels = {
pin1: ["D0", "A0", "ADC_SENSE"],
pin2: ["D1", "A1"],
pin3: ["D2", "A2"],
pin4: ["D3", "A3"],
pin5: ["D4", "SDA", "OLED_SDA"],
pin6: ["D5", "SCL", "OLED_SCL"],
pin7: ["D6", "LED_STATUS"],
pin8: ["D7", "BUTTON_MODE"],
pin9: ["5V"],
pin10: ["GND"],
pin11: ["VCC_3V3", "3V3"],
pin12: ["D10", "MOSI"],
pin13: ["D9", "MISO"],
pin14: ["D8", "SCK"],
} as const
const XiaoRp2040Module = (props: {
name: string
pcbX?: number
pcbY?: number
pcbRotation?: number
layer?: "top" | "bottom"
}) => (
<chip
{...props}
manufacturerPartNumber="Seeed Studio XIAO RP2040 module, hand-soldered"
pinLabels={xiaoPinLabels}
showPinAliases
footprint={
<footprint>
<platedhole portHints={["pin1"]} pcbX="-8.89mm" pcbY="7.62mm" outerDiameter="1.6mm" holeDiameter="0.9mm" shape="circle" />
<platedhole portHints={["pin2"]} pcbX="-8.89mm" pcbY="5.08mm" outerDiameter="1.6mm" holeDiameter="0.9mm" shape="circle" />
<platedhole portHints={["pin3"]} pcbX="-8.89mm" pcbY="2.54mm" outerDiameter="1.6mm" holeDiameter="0.9mm" shape="circle" />
<platedhole portHints={["pin4"]} pcbX="-8.89mm" pcbY="0mm" outerDiameter="1.6mm" holeDiameter="0.9mm" shape="circle" />
<platedhole portHints={["pin5"]} pcbX="-8.89mm" pcbY="-2.54mm" outerDiameter="1.6mm" holeDiameter="0.9mm" shape="circle" />
<platedhole portHints={["pin6"]} pcbX="-8.89mm" pcbY="-5.08mm" outerDiameter="1.6mm" holeDiameter="0.9mm" shape="circle" />
<platedhole portHints={["pin7"]} pcbX="-8.89mm" pcbY="-7.62mm" outerDiameter="1.6mm" holeDiameter="0.9mm" shape="circle" />
<platedhole portHints={["pin8"]} pcbX="8.89mm" pcbY="-7.62mm" outerDiameter="1.6mm" holeDiameter="0.9mm" shape="circle" />
<platedhole portHints={["pin9"]} pcbX="8.89mm" pcbY="-5.08mm" outerDiameter="1.6mm" holeDiameter="0.9mm" shape="circle" />
<platedhole portHints={["pin10"]} pcbX="8.89mm" pcbY="-2.54mm" outerDiameter="1.6mm" holeDiameter="0.9mm" shape="circle" />
<platedhole portHints={["pin11"]} pcbX="8.89mm" pcbY="0mm" outerDiameter="1.6mm" holeDiameter="0.9mm" shape="circle" />
<platedhole portHints={["pin12"]} pcbX="8.89mm" pcbY="2.54mm" outerDiameter="1.6mm" holeDiameter="0.9mm" shape="circle" />
<platedhole portHints={["pin13"]} pcbX="8.89mm" pcbY="5.08mm" outerDiameter="1.6mm" holeDiameter="0.9mm" shape="circle" />
<platedhole portHints={["pin14"]} pcbX="8.89mm" pcbY="7.62mm" outerDiameter="1.6mm" holeDiameter="0.9mm" shape="circle" />
<silkscreenrect pcbX="0mm" pcbY="0mm" width="21mm" height="18mm" />
<silkscreentext text="XIAO RP2040" pcbX="0mm" pcbY="0mm" fontSize="1mm" anchorAlignment="center" />
<silkscreentext text="USB ->" pcbX="0mm" pcbY="7.2mm" fontSize="0.8mm" anchorAlignment="center" />
</footprint>
}
/>
)
export default () => (
<board width="66mm" height="28mm" layers={2} borderRadius="3mm" title="VoltPeek Probe">
<PJ_320D name="J1" pcbX={-23.6} pcbY={-0.8} layer="top" />
<resistor
name="R1"
resistance="100k"
footprint="0603"
pcbX={-12.5}
pcbY={4.8}
pcbRotation={90}
layer="top"
supplierPartNumbers={{ jlcpcb: ["C25803"] }}
/>
<resistor
name="R2"
resistance="33k"
footprint="0603"
pcbX={-9.5}
pcbY={4.8}
pcbRotation={90}
layer="top"
supplierPartNumbers={{ jlcpcb: ["C4216"] }}
/>
<resistor
name="R3"
resistance="1k"
footprint="0603"
pcbX={-6.5}
pcbY={4.8}
pcbRotation={90}
layer="top"
supplierPartNumbers={{ jlcpcb: ["C21190"] }}
/>
<XiaoRp2040Module name="U1" pcbX={5.4} pcbY={-0.8} layer="top" />
<pinheader
name="J2"
pinCount={4}
gender="female"
pitch="2.54mm"
footprint="pinrow4"
showSilkscreenPinLabels
pinLabels={["VCC", "GND", "SDA", "SCL"]}
pcbX={9.5}
pcbY={10.5}
pcbRotation={0}
layer="top"
supplierPartNumbers={{ jlcpcb: ["C5144876"] }}
/>
<TAC_32N_Q_T_R name="SW1" pcbX={24.5} pcbY={-6.5} layer="top" />
<resistor
name="R5"
resistance="10k"
footprint="0603"
pcbX={24.5}
pcbY={-1.8}
pcbRotation={90}
layer="top"
supplierPartNumbers={{ jlcpcb: ["C25804"] }}
/>
<resistor
name="R4"
resistance="330"
footprint="0603"
pcbX={23.6}
pcbY={6.4}
layer="top"
supplierPartNumbers={{ jlcpcb: ["C23138"] }}
/>
<led
name="D1"
color="green"
footprint="0603"
pcbX={28}
pcbY={6.4}
layer="top"
supplierPartNumbers={{ jlcpcb: ["C965805"] }}
/>
<hole name="H1" diameter="2.2mm" pcbX={-28.5} pcbY={10.5} />
<hole name="H2" diameter="2.2mm" pcbX={29.2} pcbY={10.5} />
<trace from=".J1 > .pin2" to="net.VIN_PROBE" />
<trace from=".R1 > .pin1" to="net.VIN_PROBE" />
<trace from=".J1 > .pin1" to="net.GND" />
<trace from=".J1 > .pin4" to="net.GND" />
<trace from=".R1 > .pin2" to="net.ADC_DIV" />
<trace from=".R2 > .pin1" to="net.ADC_DIV" />
<trace from=".R3 > .pin1" to="net.ADC_DIV" />
<trace from=".R2 > .pin2" to="net.GND" />
<trace from=".R3 > .pin2" to="net.ADC_SENSE" />
<trace from=".U1 > .ADC_SENSE" to="net.ADC_SENSE" />
<trace from=".U1 > .VCC_3V3" to="net.VCC_3V3" />
<trace from=".U1 > .GND" to="net.GND" />
<trace from=".J2 > .pin1" to="net.VCC_3V3" />
<trace from=".J2 > .pin2" to="net.GND" />
<trace from=".J2 > .pin3" to="net.OLED_SDA" />
<trace from=".J2 > .pin4" to="net.OLED_SCL" />
<trace from=".U1 > .OLED_SDA" to="net.OLED_SDA" />
<trace from=".U1 > .OLED_SCL" to="net.OLED_SCL" />
<trace from=".U1 > .BUTTON_MODE" to="net.BUTTON_MODE" />
<trace from=".R5 > .pin1" to="net.VCC_3V3" />
<trace from=".R5 > .pin2" to="net.BUTTON_MODE" />
<trace from=".SW1 > .pin1" to="net.BUTTON_MODE" />
<trace from=".SW1 > .pin3" to="net.BUTTON_MODE" />
<trace from=".SW1 > .pin5" to="net.BUTTON_MODE" />
<trace from=".SW1 > .pin2" to="net.GND" />
<trace from=".SW1 > .pin4" to="net.GND" />
<trace from=".SW1 > .pin6" to="net.GND" />
<trace from=".U1 > .LED_STATUS" to="net.LED_STATUS" />
<trace from=".R4 > .pin1" to="net.LED_STATUS" />
<trace from=".R4 > .pin2" to=".D1 > .pin1" />
<trace from=".D1 > .pin2" to="net.GND" />
<copperpour name="GND_TOP" connectsTo="net.GND" layer="top" clearance="0.2mm" />
<copperpour name="GND_BOTTOM" connectsTo="net.GND" layer="bottom" clearance="0.2mm" />
<silkscreentext text="VOLTPEEK PROBE" pcbX={0} pcbY={-12.2} fontSize="1.2mm" anchorAlignment="center" />
<silkscreentext text="0-12V DC MAX" pcbX={-17} pcbY={-12.2} fontSize="0.8mm" anchorAlignment="center" />
<silkscreentext text="TOP ASSEMBLY ONLY" pcbX={20.2} pcbY={-12.2} fontSize="0.75mm" anchorAlignment="center" />
<silkscreentext text="PROBE JACK" pcbX={-22.5} pcbY={12} fontSize="0.8mm" anchorAlignment="center" />
<silkscreentext text="TIP=VIN" pcbX={-21.6} pcbY={10.2} fontSize="0.7mm" anchorAlignment="center" />
<silkscreentext text="SLEEVE=GND" pcbX={-21.6} pcbY={8.5} fontSize="0.7mm" anchorAlignment="center" />
<silkscreentext text="OLED V G D C" pcbX={9.5} pcbY={7.6} fontSize="0.7mm" anchorAlignment="center" />
<silkscreentext text="HOLD" pcbX={24.5} pcbY={-11.1} fontSize="0.8mm" anchorAlignment="center" />
<silkscreentext text="STATUS" pcbX={26.1} pcbY={3.8} fontSize="0.75mm" anchorAlignment="center" />
<silkscreentext text="BOTTOM: ROUTES/POUR ONLY" pcbX={0} pcbY={0} fontSize="0.8mm" anchorAlignment="center" layer="bottom" />
</board>
)