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
PCB
Schematic
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>
)