abse/wifi-smart-switch

The AO3400A component models a small N-channel MOSFET in a SOT-23 package with drain, gate, and source pins, used for switching or amplification in electronic circuits.

Version
1.0.29
License
unset
Stars
0

index.circuit.tsx

PCBPCB preview for index.circuit.tsx
SchematicSchematic preview for index.circuit.tsx
import { AO3400A } from "./imports/AO3400A/AO3400A"
import { DBT50G_7_62_2P_BK_P } from "./imports/DBT50G_7_62_2P_BK_P/DBT50G_7_62_2P_BK_P"
import { ESP_12F_ESP8266MOD_ } from "./imports/ESP_12F_ESP8266MOD_/ESP_12F_ESP8266MOD_"
import { HF115F_005_1HS3A } from "./imports/HF115F_005_1HS3A/HF115F_005_1HS3A"
import { IRM_10_5 } from "./imports/IRM_10_5/IRM_10_5"
import { KS107M016D07RR0VH2FP0 } from "./imports/KS107M016D07RR0VH2FP0/KS107M016D07RR0VH2FP0"
import { PTF_77 } from "./imports/PTF_77/PTF_77"
import { S6B_PH_K_S_LF__SN_ } from "./imports/S6B_PH_K_S_LF__SN_/S6B_PH_K_S_LF__SN_"
import { SS14 } from "./imports/SS14/SS14"
import { SN74AHCT1G125DBVR } from "./imports/SN74AHCT1G125DBVR/SN74AHCT1G125DBVR"
import { TMOV14RP300E } from "./imports/TMOV14RP300E/TMOV14RP300E"
import { TP10811645 } from "./imports/TP10811645/TP10811645"
import { XC6220B331MR_G } from "./imports/XC6220B331MR_G/XC6220B331MR_G"
import { XL_3528RGBC_2812B } from "./imports/XL_3528RGBC_2812B/XL_3528RGBC_2812B"

export default () => (
  <board
    title="Universal Wi-Fi Smart Switch — 8 A Continuous Resistive"
    width="134mm"
    height="80mm"
    layers={2}
    thickness="1.6mm"
    solderMaskColor="blue"
    silkscreenColor="white"
    minTraceWidth="0.25mm"
    minViaHoleDiameter="0.3mm"
    minViaPadDiameter="0.6mm"
    nominalTraceWidth="0.35mm"
  >
    {/* Named SELV nets. Mains nets are point-to-point with explicit widths below. */}
    <net name="V5_PSU" isPowerNet nominalTraceWidth="0.8mm" />
    <net name="V5_PROG" isPowerNet nominalTraceWidth="0.8mm" />
    <net name="V5" isPowerNet nominalTraceWidth="0.8mm" />
    <net name="V3_3" isPowerNet nominalTraceWidth="0.6mm" />
    <net name="GND" isGroundNet nominalTraceWidth="0.8mm" />
    <net name="EN" />
    <net name="RST" />
    <net name="GPIO0" />
    <net name="GPIO2" />
    <net name="GPIO15" />
    <net name="RELAY_CTL" />
    <net name="RELAY_GATE" />
    <net name="RELAY_COIL_LOW" nominalTraceWidth="0.8mm" />
    <net name="BUTTON" />
    <net name="STATUS_LED_DATA_3V3" />
    <net name="STATUS_LED_BUFFERED" />
    <net name="STATUS_LED_DATA" />
    <net name="TXD0" />
    <net name="RXD0" />

    {/* FUNCTIONAL SCHEMATIC SECTIONS */}
    <schematicsection name="mains" displayName="1. MAINS INPUT & LOAD SWITCHING" />
    <schematicsection name="power" displayName="2. ISOLATED 5V & 3.3V POWER" />
    <schematicsection name="relay" displayName="3. RELAY & FAIL-SAFE DRIVER" />
    <schematicsection name="controller" displayName="4. ESP8266 CONTROL & BOOT" />
    <schematicsection name="interface" displayName="5. USER INTERFACE & PROGRAMMING" />

    {/* MAINS INPUT, LOAD OUTPUT, PROTECTION, AND ISOLATED POWER */}
    <DBT50G_7_62_2P_BK_P
      name="J1"
      displayName="AC IN — L / N"
      schSectionName="mains"
      pcbX={-57}
      pcbY={22}
      pcbRotation={90}
      schRotation={90}
    />
    <DBT50G_7_62_2P_BK_P
      name="J2"
      displayName="LOAD — L / N"
      schSectionName="mains"
      pcbX={-57}
      pcbY={-22}
      pcbRotation={90}
      schRotation={90}
    />
    <PTF_77
      name="F1"
      displayName="F1 T8A 250V — PTF-77 20A HOLDER"
      schSectionName="mains"
      pcbX={-33.7}
      pcbY={33}
    />
    <PTF_77
      name="F2"
      displayName="F2 T500mA 250V HBC — PTF-77 HOLDER"
      schSectionName="power"
      pcbX={-32}
      pcbY={22}
    />
    <TMOV14RP300E
      name="RV1"
      displayName="RV1 TMOV14RP300E THERMALLY PROTECTED"
      schSectionName="mains"
      pcbX={-38}
      pcbY={10}
    />
    <IRM_10_5
      name="PS1"
      displayName="PS1 IRM-10-5 (85–305VAC / 5V 2A)"
      schSectionName="power"
      pcbX={6}
      pcbY={14}
      schWidth={2.5}
      connections={{
        pin3: "net.GND",
        pin4: "net.V5_PSU",
      }}
    />
    <HF115F_005_1HS3A
      name="K1"
      displayName="K1 HF115F/005-1HS3A 5V 16A SPST-NO"
      schSectionName="relay"
      pcbX={-29}
      pcbY={-16}
      pcbRotation={180}
      connections={{
        pin1: "net.V5",
        pin2: "net.RELAY_COIL_LOW",
      }}
    />

    {/* 5V TO 3.3V SUPPLY */}
    <KS107M016D07RR0VH2FP0
      name="C1"
      displayName="C1 100uF 16V"
      schSectionName="power"
      maxVoltageRating="16V"
      polarized
      pcbX={31}
      pcbY={1}
      connections={{ pin1: "net.V5", pin2: "net.GND" }}
    />
    <SS14 name="D2" displayName="D2 PSU POWER OR" schSectionName="power" pcbX={33} pcbY={19} connections={{ anode: "net.V5_PSU", cathode: "net.V5" }} />
    <SS14 name="D3" displayName="D3 PROGRAMMER POWER OR" schSectionName="power" pcbX={25} pcbY={2} connections={{ anode: "net.V5_PROG", cathode: "net.V5" }} />
    <XC6220B331MR_G
      name="U1"
      displayName="U1 XC6220B331MR-G 3.3V 1A"
      schSectionName="power"
      pcbX={34}
      pcbY={13}
      connections={{
        VIN: "net.V5",
        CE: "net.V5",
        VSS: "net.GND",
        VOUT: "net.V3_3",
      }}
      noConnect={["NC"]}
    />
    <capacitor
      name="C2"
      displayName="10uF IN"
      schSectionName="power"
      capacitance="10uF"
      maxVoltageRating="10V"
      footprint="0805"
      pcbX={32}
      pcbY={8}
      connections={{ pin1: "net.V5", pin2: "net.GND" }}
    />
    <capacitor
      name="C3"
      displayName="10uF OUT"
      schSectionName="power"
      capacitance="10uF"
      maxVoltageRating="10V"
      footprint="0805"
      pcbX={38}
      pcbY={10}
      connections={{ pin1: "net.V3_3", pin2: "net.GND" }}
    />
    <capacitor
      name="C4"
      displayName="100nF LDO"
      schSectionName="power"
      capacitance="100nF"
      maxVoltageRating="16V"
      footprint="0603"
      pcbX={38}
      pcbY={14}
      connections={{ pin1: "net.V3_3", pin2: "net.GND" }}
    />

    {/* ESP8266 CONTROLLER — ANTENNA SITS AT THE BOTTOM BOARD EDGE */}
    <ESP_12F_ESP8266MOD_
      name="U2"
      displayName="U2 ESP-12F (ESP8266MOD)"
      schSectionName="controller"
      pcbX={49}
      pcbY={-20.5}
      pcbRotation={90}
      schWidth={3.2}
      schHeight={7}
      connections={{
        VCC: "net.V3_3",
        GND: "net.GND",
        EN: "net.EN",
        RST: "net.RST",
        GPIO0: "net.GPIO0",
        GPIO2: "net.GPIO2",
        GPIO15: "net.GPIO15",
        GPIO5: "net.RELAY_CTL",
        GPIO4: "net.BUTTON",
        GPIO14: "net.STATUS_LED_DATA_3V3",
        TXD0: "net.TXD0",
        RXD0: "net.RXD0",
      }}
      noConnect={[
        "ADC",
        "GPIO16",
        "GPIO12",
        "GPIO13",
        "CS0",
        "MISO",
        "GPIO9",
        "GPIO10",
        "MOSI",
        "SCLK",
      ]}
    />
    <capacitor
      name="C5"
      displayName="22uF ESP bulk"
      schSectionName="controller"
      capacitance="22uF"
      maxVoltageRating="10V"
      footprint="1206"
      pcbX={57}
      pcbY={-10}
      connections={{ pin1: "net.V3_3", pin2: "net.GND" }}
    />
    <capacitor
      name="C6"
      displayName="100nF ESP bypass"
      schSectionName="controller"
      capacitance="100nF"
      maxVoltageRating="16V"
      footprint="0603"
      pcbX={53}
      pcbY={-10}
      connections={{ pin1: "net.V3_3", pin2: "net.GND" }}
    />

    {/* ESP8266 REQUIRED BOOT STRAPS AND RESET RC */}
    <resistor name="R1" displayName="EN PULL-UP" schSectionName="controller" resistance="10k" footprint="0603" pcbX={39} pcbY={1} connections={{ pin1: "net.V3_3", pin2: "net.EN" }} />
    <resistor name="R2" displayName="RST PULL-UP" schSectionName="controller" resistance="10k" footprint="0603" pcbX={42} pcbY={1} connections={{ pin1: "net.V3_3", pin2: "net.RST" }} />
    <capacitor name="C7" displayName="RST 100nF" schSectionName="controller" capacitance="100nF" footprint="0603" pcbX={45} pcbY={1} connections={{ pin1: "net.RST", pin2: "net.GND" }} />
    <resistor name="R3" displayName="GPIO0 PULL-UP" schSectionName="controller" resistance="10k" footprint="0603" pcbX={39} pcbY={-3} connections={{ pin1: "net.V3_3", pin2: "net.GPIO0" }} />
    <resistor name="R4" displayName="GPIO2 PULL-UP" schSectionName="controller" resistance="10k" footprint="0603" pcbX={42} pcbY={-3} connections={{ pin1: "net.V3_3", pin2: "net.GPIO2" }} />
    <resistor name="R5" displayName="GPIO15 PULL-DOWN" schSectionName="controller" resistance="10k" footprint="0603" pcbX={45} pcbY={-3} connections={{ pin1: "net.GPIO15", pin2: "net.GND" }} />

    {/* FAIL-SAFE RELAY DRIVER */}
    <resistor name="R6" displayName="GATE SERIES" schSectionName="relay" resistance="100" footprint="0603" pcbX={7} pcbY={-13} connections={{ pin1: "net.RELAY_CTL", pin2: "net.RELAY_GATE" }} />
    <resistor name="R7" displayName="GATE PULL-DOWN" schSectionName="relay" resistance="100k" footprint="0603" pcbX={2} pcbY={-19} connections={{ pin1: "net.RELAY_GATE", pin2: "net.GND" }} />
    <AO3400A name="Q1" displayName="Q1 AO3400A RELAY DRIVER" schSectionName="relay" pcbX={-7} pcbY={-16} pcbRotation={180} connections={{ G: "net.RELAY_GATE", S: "net.GND", D: "net.RELAY_COIL_LOW" }} />
    <SS14 name="D1" displayName="D1 SS14 FLYBACK" schSectionName="relay" pcbX={-12} pcbY={-8} pcbRotation={90} connections={{ cathode: "net.V5", anode: "net.RELAY_COIL_LOW" }} />

    {/* USER INTERFACE AND KEYED 5V-POWERED, 3.3V-LOGIC UART PROGRAMMING CONNECTOR */}
    <TP10811645
      name="SW1"
      displayName="LOCAL TOGGLE"
      schSectionName="interface"
      pcbX={25}
      pcbY={-17}
      connections={{ pin1: "net.BUTTON", pin2: "net.BUTTON", pin3: "net.GND", pin4: "net.GND" }}
    />
    <resistor name="R8" displayName="BUTTON PULL-UP" schSectionName="interface" resistance="10k" footprint="0603" pcbX={30} pcbY={-12} connections={{ pin1: "net.V3_3", pin2: "net.BUTTON" }} />
    <SN74AHCT1G125DBVR
      name="U3"
      displayName="U3 3.3V TO 5V LED DATA BUFFER"
      schSectionName="interface"
      pcbX={44}
      pcbY={13}
      connections={{ OE: "net.GND", A: "net.STATUS_LED_DATA_3V3", GND: "net.GND", Y: "net.STATUS_LED_BUFFERED", VCC: "net.V5" }}
    />
    <capacitor name="C8" displayName="U3 100nF BYPASS" schSectionName="interface" capacitance="100nF" maxVoltageRating="16V" footprint="0603" pcbX={44} pcbY={9} connections={{ pin1: "net.V5", pin2: "net.GND" }} />
    <resistor name="R9" displayName="LED DATA SERIES" schSectionName="interface" resistance="330" footprint="0603" pcbX={48} pcbY={13} connections={{ pin1: "net.STATUS_LED_BUFFERED", pin2: "net.STATUS_LED_DATA" }} />
    <XL_3528RGBC_2812B
      name="LED1"
      displayName="LED1 TOP-EMITTING PROGRAMMABLE RELAY STATUS RGB"
      schSectionName="interface"
      pcbX={54}
      pcbY={13}
      connections={{ VDD: "net.V5", GND: "net.GND", DI: "net.STATUS_LED_DATA" }}
      noConnect={["DO"]}
    />
    <capacitor name="C9" displayName="LED1 100nF BYPASS" schSectionName="interface" capacitance="100nF" maxVoltageRating="16V" footprint="0603" pcbX={52} pcbY={9} connections={{ pin1: "net.V5", pin2: "net.GND" }} />
    <S6B_PH_K_S_LF__SN_
      name="J3"
      displayName="J3 JST-PH UART / FLASH"
      schSectionName="interface"
      schMarginTop="2mm"
      pcbX={18}
      pcbY={-33}
      connections={{ pin1: "net.V5_PROG", pin2: "net.GND", pin3: "net.TXD0", pin4: "net.RXD0", pin5: "net.GPIO0", pin6: "net.RST" }}
    />

    {/* MAINS COPPER — 4mm LOAD PATHS, 1mm PSU/MOV BRANCHES */}
    <trace from=".J1 > .pin1" to=".F1 > .pin1" width="4mm" schDisplayLabel="AC_L_IN" />
    <trace from=".F1 > .pin2" to=".K1 > .pin6" width="4mm" schDisplayLabel="AC_L_FUSED" />
    <trace from=".K1 > .pin6" to=".K1 > .pin5" width="4mm" />
    <trace from=".F1 > .pin2" to=".F2 > .pin1" width="1mm" />
    <trace from=".F2 > .pin2" to=".PS1 > .pin2" width="1mm" schDisplayLabel="PSU_AC_L" />
    <trace from=".F1 > .pin2" to=".RV1 > .pin2" width="1mm" />
    <trace from=".J1 > .pin2" to=".J2 > .pin2" width="4mm" schDisplayLabel="AC_N" />
    <trace from=".J1 > .pin2" to=".RV1 > .pin1" width="1mm" />
    <trace from=".RV1 > .pin1" to=".PS1 > .pin1" width="1mm" />
    <trace from=".K1 > .pin7" to=".K1 > .pin8" width="4mm" />
    <trace from=".K1 > .pin7" to=".J2 > .pin1" width="4mm" schDisplayLabel="AC_L_SWITCHED" />

    {/* PRIMARY/SELV ISOLATION AND RF KEEP-OUT */}
    <keepout shape="rect" pcbX={6} pcbY={14} width="18mm" height="23mm" layers={["top", "bottom"]} excludeRefs={[".PS1"]} />
    <keepout shape="rect" pcbX={-24} pcbY={-18.5} width="10mm" height="20mm" layers={["top", "bottom"]} excludeRefs={[".K1"]} />
    <keepout shape="rect" pcbX={49.5} pcbY={-34} width="35mm" height="10mm" layers={["top", "bottom"]} excludeRefs={[".U2"]} />

    {/* REVIEW / ASSEMBLY MARKINGS */}
    <silkscreentext text="AC IN" pcbX={-57} pcbY={32.5} fontSize="1.4mm" />
    <silkscreentext text="L" pcbX={-60} pcbY={18.2} fontSize="1.4mm" />
    <silkscreentext text="N" pcbX={-60} pcbY={25.8} fontSize="1.4mm" />
    <silkscreentext text="LOAD" pcbX={-57} pcbY={-32.5} fontSize="1.4mm" />
    <silkscreentext text="L" pcbX={-60} pcbY={-25.8} fontSize="1.4mm" />
    <silkscreentext text="N" pcbX={-60} pcbY={-18.2} fontSize="1.4mm" />
    <silkscreentext text="DANGER — MAINS" pcbX={-34} pcbY={4} fontSize="1.5mm" />
    <silkscreentext text="110–240VAC • 8A MAX RESISTIVE" pcbX={-33} pcbY={-4} fontSize="1.05mm" />
    <silkscreentext text="EXTERNAL PE BYPASS REQUIRED" pcbX={-38} pcbY={-34} fontSize="0.95mm" />
    <silkscreentext text="ANTENNA — NO COPPER / METAL" pcbX={46} pcbY={-35} fontSize="0.9mm" />
    <silkscreentext text="Wi-Fi Smart Switch v1.0" pcbX={43} pcbY={33} fontSize="1.5mm" />
    <silkscreentext text="5V" pcbX={13} pcbY={-25.8} fontSize="0.55mm" />
    <silkscreentext text="GND" pcbX={15} pcbY={-25.8} fontSize="0.55mm" />
    <silkscreentext text="TX" pcbX={17} pcbY={-25.8} fontSize="0.55mm" />
    <silkscreentext text="RX" pcbX={19} pcbY={-25.8} fontSize="0.55mm" />
    <silkscreentext text="BOOT" pcbX={21} pcbY={-25.8} fontSize="0.5mm" />
    <silkscreentext text="RST" pcbX={23} pcbY={-25.8} fontSize="0.55mm" />
    <silkscreenline x1={-6} y1={35} x2={-6} y2={3} strokeWidth="0.35mm" />
    <silkscreenline x1={-6} y1={3} x2={-24} y2={-7} strokeWidth="0.35mm" />
    <silkscreenline x1={-24} y1={-7} x2={-24} y2={-35} strokeWidth="0.35mm" />
    <silkscreentext text="PRIMARY" pcbX={-13} pcbY={33} fontSize="0.9mm" />
    <silkscreentext text="SELV" pcbX={7} pcbY={33} fontSize="0.9mm" />

    {/* Explicit references for imported custom schematic symbols. */}
    <schematictext text="F1" schX={-12.9} schY={-6.68} fontSize={0.2} color="#880000" />
    <schematictext text="F2" schX={-6.94} schY={-5.77} fontSize={0.2} color="#880000" />
    <schematictext text="RV1" schX={-11.4} schY={-4.98} fontSize={0.2} color="#880000" />
    <schematictext text="C1" schX={-1.32} schY={-8.14} fontSize={0.2} anchor="left" color="#880000" />
    <schematictext text="K1" schX={12.08} schY={-4.83} fontSize={0.22} anchor="left" color="#880000" />
    <schematictext text="Q1" schX={10.02} schY={-4.83} fontSize={0.2} anchor="left" color="#880000" />

    <hole name="H1" pcbX={-5} pcbY={-34.5} diameter="3.2mm" />
    <hole name="H2" pcbX={62} pcbY={34.5} diameter="3.2mm" />
    <hole name="H3" pcbX={62} pcbY={0} diameter="3.2mm" />
  </board>
)