jaiume1973/EZ-Gate

The code defines a PCB layout featuring key hardware components such as a microcontroller (ESP32-S3), LoRa radio module, power regulation circuitry including buck converters and LDOs, USB-C connector, relays, sensors, buttons, and status LEDs, with traces connecting these components on a 75mm by 55mm board.

Version
0.0.1
License
unset
Stars
0

dist/index.js

import { jsxs, jsx } from 'react/jsx-runtime';

// Board: 100mm x 40mm per spec §8
// Left short edge (X≈-50): J_POWER, J_RELAY, J_USB
// Power/buck zone: left-center top
// ESP32: board center
// LoRa RF zone: right half, along long edge
const BOARD_W = 100;
const BOARD_H = 40;
function EntryZenGateController() {
    return (jsxs("board", { width: `${BOARD_W}mm`, height: `${BOARD_H}mm`, pcbX: 0, pcbY: 0, autorouter: "auto-cloud", routingDisabled: false, children: [jsx("pcbnotetext", { pcbX: -48, pcbY: 19, text: "EntryZen GC v1.0  100x40mm", fontSize: 1.2, layer: "top" }), jsx("pcbnotetext", { pcbX: -48, pcbY: 16.5, text: "MF-R110 | SMBJ33A | MB6S | LM2596S-5.0 | MCP1700", fontSize: 0.75, layer: "top" }), jsx("pcbnotetext", { pcbX: -48, pcbY: 14.8, text: "ESP32-S3-WROOM-1-N8 | RA-02 | SRD-05VDC | AO3400 | USBLC6", fontSize: 0.75, layer: "top" }), jsx("pcbnoterect", { pcbX: 28, pcbY: 3, width: 40, height: 32, strokeWidth: 0.2, color: "#ff0000", hasStroke: true, isStrokeDashed: true, layer: "top" }), jsx("pcbnotetext", { pcbX: 35, pcbY: 19, text: "RF KEEP-OUT \u2014 LoRa/Antenna zone", fontSize: 0.9, layer: "top" }), jsx("pcbnotetext", { pcbX: -47, pcbY: 7, text: "POWER IN", fontSize: 1.0, layer: "top" }), jsx("pcbnotetext", { pcbX: -47, pcbY: -6, text: "RELAY OUT", fontSize: 1.0, layer: "top" }), jsx("pcbnotetext", { pcbX: -47, pcbY: -14, text: "USB", fontSize: 1.0, layer: "top" }), jsx("pcbnotetext", { pcbX: 8, pcbY: -13, text: "SENSOR IN", fontSize: 0.9, layer: "top" }), jsx("pcbnotetext", { pcbX: 8, pcbY: -19, text: "CONFIG / BOOT / RESET", fontSize: 0.9, layer: "top" }), jsxs("group", { name: "power-input", children: [jsx("connector", { name: "J_POWER", schX: -33, schY: -2, pcbX: -48, pcbY: 8, pinCount: 2, pinLabels: { pin1: "IN1", pin2: "IN2" } }), jsx("chip", { name: "F1", schX: -28, schY: -2, pcbX: -42, pcbY: 8, pinLabels: { pin1: "A", pin2: "B" } }), jsx("diode", { name: "TVS1", schX: -24, schY: 2.7, pcbX: -38, pcbY: 13, type: "tvs" }), jsx("chip", { name: "BR1", schX: -20, schY: -2, pcbX: -34, pcbY: 8, pinLabels: { pin1: "AC1", pin2: "AC2", pin3: "NEG", pin4: "POS" } }), jsx("capacitor", { name: "CIN_BULK", schX: -15, schY: -2, pcbX: -28, pcbY: 8, capacitance: "100uF", voltageRating: "50V", polarized: true })] }), jsxs("group", { name: "buck-v5", children: [jsx("chip", { name: "U_BUCK", schX: -6, schY: -2, pcbX: -22, pcbY: 10, pinLabels: { pin1: "BOOT", pin2: "VIN", pin3: "EN", pin4: "GND", pin5: "FB", pin6: "SW" } }), jsx("chip", { name: "L1", schX: -1, schY: -2, pcbX: -16, pcbY: 10, pinLabels: { pin1: "A", pin2: "B" } }), jsx("diode", { name: "D_BUCK", schX: -1, schY: 2, pcbX: -16, pcbY: 15, type: "schottky" }), jsx("diode", { name: "D_FIELD", schX: 3, schY: 2, pcbX: -10, pcbY: 15, type: "schottky" }), jsx("capacitor", { name: "COUT5_BULK", schX: 3, schY: -2, pcbX: -10, pcbY: 10, capacitance: "100uF", voltageRating: "10V", polarized: true }), jsx("resistor", { name: "RFB1", schX: -3, schY: 4, pcbX: -20, pcbY: 15, resistance: "52.3k", footprint: "0402" }), jsx("resistor", { name: "RFB2", schX: 1, schY: 4, pcbX: -14, pcbY: 15, resistance: "10k", footprint: "0402" }), jsx("capacitor", { name: "CBUCK_IN", schX: -8, schY: 4, pcbX: -26, pcbY: 15, capacitance: "100nF", footprint: "0402" }), jsx("capacitor", { name: "CBUCK_BOOT", schX: -6, schY: 4, pcbX: -24, pcbY: 15, capacitance: "100nF", footprint: "0402" }), jsx("pcbnotetext", { pcbX: -18, pcbY: 7, text: "Keep SW loop tight", fontSize: 0.8, layer: "top" })] }), jsxs("group", { name: "ldo-v3v3", children: [jsx("chip", { name: "U_LDO", schX: 12, schY: -2, pcbX: -4, pcbY: 10, pinLabels: { pin1: "VIN", pin2: "GND", pin3: "VOUT" } }), jsx("capacitor", { name: "CLDO_IN", schX: 9, schY: 3, pcbX: -7, pcbY: 15, capacitance: "1uF", footprint: "0402" }), jsx("capacitor", { name: "CLDO_OUT", schX: 15, schY: 3, pcbX: -1, pcbY: 15, capacitance: "1uF", footprint: "0402" })] }), jsxs("group", { name: "usb-c", children: [jsx("chip", { name: "J_USB", schX: -2, schY: -17, pcbX: -48, pcbY: -14, pinLabels: {
                            pin1: "GND1", pin2: "VBUS1", pin3: "CC1", pin4: "DP1", pin5: "DM1",
                            pin6: "SBU1", pin7: "VBUS2", pin8: "GND2", pin9: "GND3", pin10: "VBUS3",
                            pin11: "SBU2", pin12: "DM2", pin13: "DP2", pin14: "CC2",
                            pin15: "VBUS4", pin16: "GND4",
                        } }), jsx("diode", { name: "D_USB", schX: 5, schY: -17, pcbX: -40, pcbY: -14, type: "schottky" }), jsx("chip", { name: "U_ESD", schX: 5, schY: -13, pcbX: -40, pcbY: -9, pinLabels: { pin1: "IO1", pin2: "GND", pin3: "IO2", pin4: "VBUS", pin5: "IO3", pin6: "IO4" } }), jsx("resistor", { name: "RCC1", schX: 0, schY: -12.5, pcbX: -44, pcbY: -9, resistance: "5.1k", footprint: "0402" }), jsx("resistor", { name: "RCC2", schX: 2.5, schY: -12.5, pcbX: -44, pcbY: -6, resistance: "5.1k", footprint: "0402" }), jsx("pcbnotetext", { pcbX: -41, pcbY: -17.5, text: "USB-C | OR-ing | USBLC6 ESD | 5.1k CC", fontSize: 0.75, layer: "top" })] }), jsxs("group", { name: "relay-output", children: [jsx("resistor", { name: "RGATE", schX: 25, schY: 10, pcbX: -32, pcbY: -8, resistance: "10k", footprint: "0402" }), jsx("chip", { name: "Q1", schX: 30, schY: 10, pcbX: -26, pcbY: -8, pinLabels: { pin1: "G", pin2: "S", pin3: "D" } }), jsx("diode", { name: "D_FLY", schX: 35, schY: 12.5, pcbX: -20, pcbY: -5, type: "schottky" }), jsx("chip", { name: "K1", schX: 40, schY: 10, pcbX: -20, pcbY: -10, pinLabels: { pin1: "COILP", pin2: "COILN", pin3: "COM", pin4: "NO", pin5: "NC" } }), jsx("connector", { name: "J_RELAY", schX: 48, schY: 10, pcbX: -48, pcbY: -7, pinCount: 2, pinLabels: { pin1: "COM", pin2: "NO" } })] }), jsxs("group", { name: "esp32-s3-core", children: [jsx("chip", { name: "U1", schX: 10, schY: -15, pcbX: 4, pcbY: 0, pinLabels: {
                            pin1: "V3V3", pin2: "EN",
                            pin3: "GPIO4", pin4: "GPIO10", pin5: "GPIO11", pin6: "GPIO12",
                            pin7: "GPIO13", pin8: "GPIO14", pin9: "GPIO15", pin10: "GPIO16",
                            pin11: "GPIO19", pin12: "GPIO20", pin13: "GPIO34", pin14: "GPIO35",
                            pin15: "GPIO38", pin16: "GPIO0", pin17: "GND",
                        } }), jsx("capacitor", { name: "C3V3_BULK", schX: 2, schY: -9, pcbX: -4, pcbY: 5, capacitance: "10uF", footprint: "0603" }), jsx("capacitor", { name: "C3V3_DEC1", schX: 4, schY: -9, pcbX: -2, pcbY: 5, capacitance: "100nF", footprint: "0402" }), jsx("capacitor", { name: "C3V3_DEC2", schX: 6, schY: -9, pcbX: 0, pcbY: 5, capacitance: "100nF", footprint: "0402" }), jsx("resistor", { name: "REN", schX: 15, schY: -12, pcbX: 8, pcbY: 5, resistance: "10k", footprint: "0402" }), jsx("resistor", { name: "RGPIO0_PU", schX: 15, schY: -16, pcbX: 8, pcbY: 3, resistance: "10k", footprint: "0402" }), jsx("resistor", { name: "RCONFIG_PU", schX: 15, schY: -20, pcbX: 8, pcbY: 1, resistance: "10k", footprint: "0402" })] }), jsxs("group", { name: "status-led", children: [jsx("resistor", { name: "RLED1", schX: 22, schY: -4, pcbX: 17, pcbY: 4, resistance: "270", footprint: "0402" }), jsx("led", { name: "LED1", schX: 26, schY: -4, pcbX: 20, pcbY: 4, color: "green", footprint: "0402" })] }), jsxs("group", { name: "buttons", children: [jsx("chip", { name: "SW_CONFIG", schX: 23, schY: -21, pcbX: 2, pcbY: -17, pinLabels: { pin1: "A", pin2: "B" } }), jsx("chip", { name: "SW_BOOT", schX: 27, schY: -21, pcbX: 8, pcbY: -17, pinLabels: { pin1: "A", pin2: "B" } }), jsx("chip", { name: "SW_RESET", schX: 31, schY: -21, pcbX: 14, pcbY: -17, pinLabels: { pin1: "A", pin2: "B" } }), jsx("pcbnotetext", { pcbX: 8, pcbY: -19.5, text: "CFG    BOOT    RST", fontSize: 0.85, layer: "top" })] }), jsxs("group", { name: "sensor-input", children: [jsx("resistor", { name: "R_OPTO_LED", schX: 38, schY: -13, pcbX: 1, pcbY: -10, resistance: "1k", footprint: "0402" }), jsx("chip", { name: "U3", schX: 43, schY: -13, pcbX: 7, pcbY: -10, pinLabels: { pin1: "ANODE", pin2: "CATHODE", pin3: "EMITTER", pin4: "COLLECTOR" } }), jsx("resistor", { name: "R_SENSOR_PU", schX: 43, schY: -8, pcbX: 7, pcbY: -6, resistance: "10k", footprint: "0402" }), jsx("connector", { name: "J_SENSOR", schX: 50, schY: -13, pcbX: 14, pcbY: -10, pinCount: 2, pinLabels: { pin1: "IN", pin2: "GND" } })] }), jsxs("group", { name: "lora-radio", children: [jsx("chip", { name: "U2", schX: 31, schY: -3, pcbX: 30, pcbY: 7, pinLabels: {
                            pin1: "VCC", pin2: "GND", pin3: "SCK", pin4: "MISO",
                            pin5: "MOSI", pin6: "NSS", pin7: "RESET", pin8: "BUSY",
                            pin9: "DIO1", pin10: "ANT",
                        } }), jsx("capacitor", { name: "CLORA_DEC", schX: 26, schY: 2, pcbX: 24, pcbY: 12, capacitance: "100nF", footprint: "0402" }), jsx("chip", { name: "J_ANT", schX: 38, schY: -6, pcbX: 44, pcbY: 7, pinLabels: { pin1: "RF" } }), jsx("pcbnotetext", { pcbX: 36, pcbY: 17, text: "RA-02 LoRa \u2014 keep antenna at board edge", fontSize: 0.8, layer: "top" })] }), jsx("trace", { from: ".J_POWER > .pin1", to: ".F1 > .pin1" }), jsx("trace", { from: ".F1 > .pin2", to: ".BR1 > .pin1" }), jsx("trace", { from: ".J_POWER > .pin2", to: ".BR1 > .pin2" }), jsx("trace", { from: ".TVS1 > .pin1", to: ".J_POWER > .pin1" }), jsx("trace", { from: ".TVS1 > .pin2", to: ".J_POWER > .pin2" }), jsx("trace", { from: ".BR1 > .pin4", to: "net.VIN_RAW" }), jsx("trace", { from: ".BR1 > .pin3", to: "net.GND" }), jsx("trace", { from: ".CIN_BULK > .pin1", to: "net.VIN_RAW" }), jsx("trace", { from: ".CIN_BULK > .pin2", to: "net.GND" }), jsx("trace", { from: ".U_BUCK > .pin2", to: "net.VIN_RAW" }), jsx("trace", { from: ".U_BUCK > .pin3", to: "net.VIN_RAW" }), jsx("trace", { from: ".U_BUCK > .pin4", to: "net.GND" }), jsx("trace", { from: ".U_BUCK > .pin6", to: "net.SW_NODE" }), jsx("trace", { from: ".CBUCK_IN > .pin1", to: "net.VIN_RAW" }), jsx("trace", { from: ".CBUCK_IN > .pin2", to: "net.GND" }), jsx("trace", { from: ".CBUCK_BOOT > .pin1", to: ".U_BUCK > .pin1" }), jsx("trace", { from: ".CBUCK_BOOT > .pin2", to: "net.SW_NODE" }), jsx("trace", { from: ".L1 > .pin1", to: "net.SW_NODE" }), jsx("trace", { from: ".L1 > .pin2", to: "net.V5_FIELD" }), jsx("trace", { from: ".D_BUCK > .pin1", to: "net.GND" }), jsx("trace", { from: ".D_BUCK > .pin2", to: "net.SW_NODE" }), jsx("trace", { from: ".COUT5_BULK > .pin1", to: "net.V5_FIELD" }), jsx("trace", { from: ".COUT5_BULK > .pin2", to: "net.GND" }), jsx("trace", { from: ".RFB1 > .pin1", to: "net.V5_FIELD" }), jsx("trace", { from: ".RFB1 > .pin2", to: ".U_BUCK > .pin5" }), jsx("trace", { from: ".RFB2 > .pin1", to: ".U_BUCK > .pin5" }), jsx("trace", { from: ".RFB2 > .pin2", to: "net.GND" }), jsx("trace", { from: ".D_FIELD > .pin1", to: "net.V5_FIELD" }), jsx("trace", { from: ".D_FIELD > .pin2", to: "net.V5" }), jsx("trace", { from: ".J_USB > .pin2", to: ".D_USB > .pin1" }), jsx("trace", { from: ".J_USB > .pin7", to: ".D_USB > .pin1" }), jsx("trace", { from: ".J_USB > .pin10", to: ".D_USB > .pin1" }), jsx("trace", { from: ".J_USB > .pin15", to: ".D_USB > .pin1" }), jsx("trace", { from: ".D_USB > .pin2", to: "net.V5" }), jsx("trace", { from: ".J_USB > .pin1", to: "net.GND" }), jsx("trace", { from: ".J_USB > .pin8", to: "net.GND" }), jsx("trace", { from: ".J_USB > .pin9", to: "net.GND" }), jsx("trace", { from: ".J_USB > .pin16", to: "net.GND" }), jsx("trace", { from: ".RCC1 > .pin1", to: ".J_USB > .pin3" }), jsx("trace", { from: ".RCC1 > .pin2", to: "net.GND" }), jsx("trace", { from: ".RCC2 > .pin1", to: ".J_USB > .pin14" }), jsx("trace", { from: ".RCC2 > .pin2", to: "net.GND" }), jsx("trace", { from: ".J_USB > .pin4", to: ".U_ESD > .pin1" }), jsx("trace", { from: ".J_USB > .pin13", to: ".U_ESD > .pin1" }), jsx("trace", { from: ".J_USB > .pin5", to: ".U_ESD > .pin3" }), jsx("trace", { from: ".J_USB > .pin12", to: ".U_ESD > .pin3" }), jsx("trace", { from: ".U_ESD > .pin2", to: "net.GND" }), jsx("trace", { from: ".U_ESD > .pin4", to: "net.V5" }), jsx("trace", { from: ".U_ESD > .pin5", to: ".U1 > .pin11" }), jsx("trace", { from: ".U_ESD > .pin6", to: ".U1 > .pin12" }), jsx("trace", { from: ".U_LDO > .pin1", to: "net.V5" }), jsx("trace", { from: ".U_LDO > .pin2", to: "net.GND" }), jsx("trace", { from: ".U_LDO > .pin3", to: "net.V3V3" }), jsx("trace", { from: ".CLDO_IN > .pin1", to: "net.V5" }), jsx("trace", { from: ".CLDO_IN > .pin2", to: "net.GND" }), jsx("trace", { from: ".CLDO_OUT > .pin1", to: "net.V3V3" }), jsx("trace", { from: ".CLDO_OUT > .pin2", to: "net.GND" }), jsx("trace", { from: ".U1 > .pin1", to: "net.V3V3" }), jsx("trace", { from: ".U1 > .pin17", to: "net.GND" }), jsx("trace", { from: ".C3V3_BULK > .pin1", to: "net.V3V3" }), jsx("trace", { from: ".C3V3_BULK > .pin2", to: "net.GND" }), jsx("trace", { from: ".C3V3_DEC1 > .pin1", to: "net.V3V3" }), jsx("trace", { from: ".C3V3_DEC1 > .pin2", to: "net.GND" }), jsx("trace", { from: ".C3V3_DEC2 > .pin1", to: "net.V3V3" }), jsx("trace", { from: ".C3V3_DEC2 > .pin2", to: "net.GND" }), jsx("trace", { from: ".REN > .pin1", to: "net.V3V3" }), jsx("trace", { from: ".REN > .pin2", to: ".U1 > .pin2" }), jsx("trace", { from: ".RGPIO0_PU > .pin1", to: "net.V3V3" }), jsx("trace", { from: ".RGPIO0_PU > .pin2", to: ".U1 > .pin16" }), jsx("trace", { from: ".RCONFIG_PU > .pin1", to: "net.V3V3" }), jsx("trace", { from: ".RCONFIG_PU > .pin2", to: ".U1 > .pin14" }), jsx("trace", { from: ".SW_RESET > .pin1", to: ".U1 > .pin2" }), jsx("trace", { from: ".SW_RESET > .pin2", to: "net.GND" }), jsx("trace", { from: ".SW_BOOT > .pin1", to: ".U1 > .pin16" }), jsx("trace", { from: ".SW_BOOT > .pin2", to: "net.GND" }), jsx("trace", { from: ".SW_CONFIG > .pin1", to: ".U1 > .pin14" }), jsx("trace", { from: ".SW_CONFIG > .pin2", to: "net.GND" }), jsx("trace", { from: ".U2 > .pin1", to: "net.V3V3" }), jsx("trace", { from: ".U2 > .pin2", to: "net.GND" }), jsx("trace", { from: ".CLORA_DEC > .pin1", to: "net.V3V3" }), jsx("trace", { from: ".CLORA_DEC > .pin2", to: "net.GND" }), jsx("trace", { from: ".U2 > .pin3", to: ".U1 > .pin7" }), jsx("trace", { from: ".U2 > .pin4", to: ".U1 > .pin6" }), jsx("trace", { from: ".U2 > .pin5", to: ".U1 > .pin5" }), jsx("trace", { from: ".U2 > .pin6", to: ".U1 > .pin4" }), jsx("trace", { from: ".U2 > .pin7", to: ".U1 > .pin8" }), jsx("trace", { from: ".U2 > .pin8", to: ".U1 > .pin9" }), jsx("trace", { from: ".U2 > .pin9", to: ".U1 > .pin10" }), jsx("trace", { from: ".U2 > .pin10", to: ".J_ANT > .pin1" }), jsx("trace", { from: ".U1 > .pin3", to: ".RGATE > .pin1" }), jsx("trace", { from: ".RGATE > .pin2", to: ".Q1 > .pin1" }), jsx("trace", { from: ".Q1 > .pin2", to: "net.GND" }), jsx("trace", { from: ".Q1 > .pin3", to: ".K1 > .pin2" }), jsx("trace", { from: ".K1 > .pin1", to: "net.V5" }), jsx("trace", { from: ".D_FLY > .pin1", to: ".K1 > .pin2" }), jsx("trace", { from: ".D_FLY > .pin2", to: "net.V5" }), jsx("trace", { from: ".K1 > .pin3", to: ".J_RELAY > .pin1" }), jsx("trace", { from: ".K1 > .pin4", to: ".J_RELAY > .pin2" }), jsx("trace", { from: ".R_OPTO_LED > .pin1", to: "net.V3V3" }), jsx("trace", { from: ".R_OPTO_LED > .pin2", to: ".U3 > .pin1" }), jsx("trace", { from: ".U3 > .pin2", to: ".J_SENSOR > .pin1" }), jsx("trace", { from: ".J_SENSOR > .pin2", to: "net.GND" }), jsx("trace", { from: ".U3 > .pin3", to: "net.GND" }), jsx("trace", { from: ".U3 > .pin4", to: ".U1 > .pin13" }), jsx("trace", { from: ".R_SENSOR_PU > .pin1", to: "net.V3V3" }), jsx("trace", { from: ".R_SENSOR_PU > .pin2", to: ".U1 > .pin13" }), jsx("trace", { from: ".U1 > .pin15", to: ".RLED1 > .pin1" }), jsx("trace", { from: ".RLED1 > .pin2", to: ".LED1 > .pin1" }), jsx("trace", { from: ".LED1 > .pin2", to: "net.GND" }), jsx("schematictext", { x: -34, y: 22, text: "100x40mm\nField: MF-R110→SMBJ33A→MB6S→LM2596S→MCP1700\nMCU: ESP32-S3-WROOM-1-N8 | LoRa: RA-02\nRelay: SRD-05VDC+AO3400 | USB: USBLC6-2SC6" })] }));
}

export { EntryZenGateController as default };