hrithik18k/rc-car-esc-xiao-20261025
A Seeed XIAO ESP32-C3 carrier board interfaces 3.3V PWM outputs to an ESC and steering servo, with 220Ω series/100kΩ pulldown resistors, SS14 5V BEC/USB isolation, and power filtering capacitors.
- Version
- 1.0.1
- License
- unset
- Stars
- 0
dist/index.js
import { jsx, jsxs } from 'react/jsx-runtime';
import { Fragment } from 'react';
// CarKit-inspired external-ESC receiver carrier. See README.md for limits.
// XIAO socket: official Seeed DIP geometry, rotated USB toward +Y.
const pins = { pin1: "D0", pin2: "D1", pin3: "D2", pin4: "D3", pin5: "D4", pin6: "D5", pin7: "D6", pin8: "D7", pin9: "D8", pin10: "D9", pin11: "D10", pin12: "V3V3", pin13: "GND", pin14: "V5" };
const nets = {
GND: ["U1.GND", "J1.pin1", "J2.pin1", "C1.pin2", "C2.pin2", "C3.pin2", "R3.pin2", "R4.pin2"],
BEC5V: ["J1.pin2", "J2.pin2", "D1.anode", "C1.pin1", "C2.pin1"],
MCU5V: ["D1.cathode", "U1.V5", "C3.pin1"],
ESC_GPIO: ["U1.D1", "R1.pin1"],
SERVO_GPIO: ["U1.D2", "R2.pin1"],
ESC_PWM: ["R1.pin2", "R3.pin1", "J1.pin3"],
SERVO_PWM: ["R2.pin2", "R4.pin1", "J2.pin3"],
};
function RcCarEsc() {
return jsx("board", { width: "60mm", height: "45mm", layers: 2, schLayout: { layoutMode: "none" }, title: "RC CAR / ESC + SERVO", children: jsxs("schematicsheet", { name: "Main", displayName: "RC car ESC carrier", children: [jsx("schematicsection", { name: "MCU", displayName: "XIAO ESP32-C3 / USB on module" }), jsx("schematicsection", { name: "Power", displayName: "5V BEC / USB backfeed isolation" }), jsx("schematicsection", { name: "Control", displayName: "ESC + steering / 3.3V PWM" }), jsx("chip", { name: "U1", manufacturerPartNumber: "Seeed XIAO ESP32C3", pinLabels: pins, pinAttributes: { V5: { requiresPower: true }, GND: { requiresGround: true }, V3V3: { providesPower: true }, D1: { isOutput: true }, D2: { isOutput: true } }, pcbX: -13, pcbY: 7, schX: -8, schY: 0, schSectionName: "MCU", footprint: jsxs("footprint", { children: [Array.from({ length: 14 }, (_, i) => {
const left = i < 7;
return jsx(Fragment, { children: jsx("platedhole", { shape: "circle", holeDiameter: 0.889, outerDiameter: 1.524, pcbX: left ? -7.62 : 7.62, pcbY: left ? 7.62 - i * 2.54 : -7.62 + (i - 7) * 2.54, portHints: [`pin${i + 1}`] }) }, i);
}), jsx("courtyardrect", { pcbX: 0, pcbY: 0, width: 18.3, height: 21.5 }), jsx("silkscreenrect", { pcbX: 0, pcbY: 0, width: 17.8, height: 21 })] }) }), jsx("pinheader", { name: "J1", pinCount: 3, pitch: "2.54mm", pcbX: 22, pcbY: 10, pcbRotation: 90, schX: 10, schY: 4, schSectionName: "Control", pinLabels: ["GND", "BEC5V", "ESC"] }), jsx("pinheader", { name: "J2", pinCount: 3, pitch: "2.54mm", pcbX: 22, pcbY: -6, pcbRotation: 90, schX: 10, schY: -4, schSectionName: "Control", pinLabels: ["GND", "BEC5V", "SERVO"] }), jsx("resistor", { name: "R1", resistance: "220", footprint: "0805", pcbX: 7, pcbY: 10, schX: 3, schY: 4, schSectionName: "Control" }), jsx("resistor", { name: "R2", resistance: "220", footprint: "0805", pcbX: 7, pcbY: -6, schX: 3, schY: -4, schSectionName: "Control" }), jsx("resistor", { name: "R3", resistance: "100k", footprint: "0805", pcbX: 15, pcbY: 6, pcbRotation: 90, schX: 6, schY: 2, schRotation: 90, schSectionName: "Control" }), jsx("resistor", { name: "R4", resistance: "100k", footprint: "0805", pcbX: 15, pcbY: -10, pcbRotation: 90, schX: 6, schY: -6, schRotation: 90, schSectionName: "Control" }), jsx("diode", { name: "D1", footprint: "sma", manufacturerPartNumber: "SS14", pcbX: 0, pcbY: -13, pcbRotation: 180, schX: -8, schY: -12, schRotation: 90, schSectionName: "Power" }), jsx("capacitor", { name: "C1", capacitance: "100uF", footprint: "electrolytic_d6.3mm_p2.5mm", pcbX: 22, pcbY: 2, schX: -2, schY: -12, schRotation: -90, schSectionName: "Power" }), jsx("capacitor", { name: "C2", capacitance: "100nF", footprint: "0805", pcbX: 11, pcbY: 0, schX: 2, schY: -12, schRotation: -90, schSectionName: "Power" }), jsx("capacitor", { name: "C3", capacitance: "10uF", footprint: "0805", pcbX: -8, pcbY: -12, schX: -12, schY: -12, schRotation: -90, schSectionName: "Power" }), Object.entries(nets).flatMap(([net, ports]) => ports.map(port => jsx(Fragment, { children: jsx("trace", { from: port, to: `net.${net}`, thickness: 0.3 }) }, `${net}-${port}`))), [-25, 25].flatMap(x => [-17.5, 17.5].map(y => jsx(Fragment, { children: jsx("hole", { diameter: 3.2, pcbX: x, pcbY: y }) }, `${x},${y}`))), jsx("silkscreentext", { text: "RC CAR / ESC", pcbX: 0, pcbY: 20, fontSize: 1.3 }), jsx("silkscreentext", { text: "5V BEC ONLY", pcbX: 0, pcbY: -19, fontSize: 1.2 }), jsx("silkscreentext", { text: "S 5V G", pcbX: 26, pcbY: 10, pcbRotation: 90, fontSize: 1 }), jsx("silkscreentext", { text: "S 5V G", pcbX: 26, pcbY: -6, pcbRotation: 90, fontSize: 1 }), jsx("silkscreentext", { text: "USB", pcbX: -13, pcbY: 19, fontSize: 1 })] }) });
}
export { RcCarEsc as default };