← AXA-012

Circuit review & bench-test guide

AXA-012 — E-stop / power gate PMOD module

Design-stage — board not yet fabricated

Document purpose#

This document explains the axa-012-estop prototype at component level and turns the design evidence into a practical manual-review and bench-test plan. It is based on the generated schematic (generate_design.py, rev 0.1-schematic), the module README, and the actuator-line family rules in ../README.md.

The board is an unfabricated prototype design. Status at the time of writing: schematic generated, ERC clean (0/0), netlist reviewed; PCB layout not started, no board built, no BOM ordered, and no bench evidence of any kind exists. Every voltage, current, resistance, and timing number below is a design target derived from the schematic and manufacturer datasheets — a target to verify on a first article, not proof that an assembled board works.

This is NOT a certified safety device. It is a convenience power interrupt for a hobby bench. It has no redundancy, no monitored (forcibly guided) contacts, no rated stop category, no diagnostics, and a single transistor in the power path whose most common failure mode (drain-source short) defeats the stop entirely. It must never be the only thing between a person and a hazard. Real machine safety uses certified components and engineered systems following ISO 13850-style e-stop principles and ISO 13849 / IEC 62061 functional-safety standards, none of which this board meets or attempts to meet. The module exists to teach fail-safe thinking and the fabric-side supervision lesson, nothing more.

1. What the board does#

The board is a high-side P-channel MOSFET power gate in series with a 5-24 V motor/actuator rail. VIN passes to VOUT only while both conditions hold: the normally-closed (NC) e-stop loop on J4 is intact and the PMOD host drives EN high. The AND is built from a discrete series chain: the P-FET gate can only be pulled low (turning the FET on) through R2, then through the NC loop, then through the 2N7002 EN switch to ground. Opening the loop (button hit or wire cut), dropping EN, or unplugging the host all break the chain and R1 pulls the gate back to VIN — output off. A resistive divider reports VOUT back to the host on STATUS.

The hardware is purely combinational: if the loop recloses while EN is still high, power returns immediately. The no-auto-relatch policy is a fabric contract — the host HDL must latch a STATUS drop and require a deliberate EN off-to-on toggle. This guide tests the hardware truth table; the latch is the HDL deliverable and is tested separately.

Functional block diagram#

J2 VIN 5-24V ──┬──────────────── S  Q1 AO3401A  D ────────┬──> J3 VOUT (gated)
               │                     P-FET                 │
               │   R1 10k            │ G = PGATE           │  R4 100k
               ├──/\/\/\─────────────┤                     ├──/\/\/\──┐
               │                     │                     │          │ ST_DIV
               │   D1 10V zener      │  R2 10k             │  R5 10k  ├─/\/\── STATUS
               └──────|<─────────────┴──/\/\/\── LOOP_A    └─/\/\/\─┐ │ R6 100R  (PMOD 2)
                  (clamps Vsg)                    │                 │ │
                                       J4 NC e-stop loop          GND └────────
                                     (mushroom button / link)
                                                  │
                                               LOOP_B
                                                  │ D
EN (PMOD 1) ──┬────────────────────────── G  Q2 2N7002
              │  R3 10k                          │ S
              └──/\/\/\── GND                   GND

Truth table (hardware level):

J4 loopEN (PMOD 1)Pull-down chainPGATEVOUT
closedhighconducts~VIN/2 (zener-clamped above ~20 V)ON
closedlow or host unpowered (R3)broken at Q2VINOFF
openanybroken at J4VINOFF
anyany, VIN absent0OFF (no source)

2. Safety and scope boundaries#

Repeat: NOT a certified safety device. No redundancy, no monitored contacts, no safety rating. Never let a person's safety depend on it. A shorted Q1 passes full power regardless of the loop; nothing on the board detects that. Certified e-stop systems (ISO 13850 principles, ISO 13849 performance levels) require rated switches, redundant channels, and monitored feedback that this teaching module deliberately does not have.

General bench boundaries:

2.1 Actuator-specific safety (mandatory reading)#

This board sits in series with motor power for boards that move. Treat it with the same discipline as the drivers behind it:

3. Power and control behavior#

  1. With VIN present and nothing else, R1 (10 k) holds PGATE at VIN, so Vsg = 0 and Q1 is off. VOUT is dark, STATUS reads ~0 V.
  2. R3 (10 k) holds EN at GND whenever the host is absent, unpowered, or tri-stated, keeping Q2 off — default state is OFF from both directions.
  3. When the host drives EN high (3.3 V), Q2 turns on. If the J4 loop is closed, the chain R1 -> PGATE -> R2 -> loop -> Q2 -> GND conducts.
  4. R1/R2 form a 1:1 divider, so PGATE settles at ~VIN/2 and Vsg = VIN/2: 2.5 V at VIN = 5 V (just enough — AO3401A is specified at VGS = -2.5 V), 6.0 V at 12 V, and a nominal 12 V at 24 V — exactly the FET's +/-12 V gate abs max, which is why D1 (10 V zener, cathode to VIN, anode to PGATE) clamps Vsg to ~9.4-10.6 V for VIN above ~20 V.
  5. Q1 turns on and VIN passes to VOUT through ~60 mΩ (at Vsg >= 4.5 V).
  6. R4/R5 (100 k / 10 k) divide VOUT by 11 to ST_DIV; R6 (100 Ω) carries the tap to STATUS (PMOD pin 2). As fitted the divider is sized for 24 V rails; see section 7 for the repopulation rule at 12 V and 5 V.
  7. Opening the loop or dropping EN breaks the chain. R1 recharges Q1's gate (Ciss 645 pF typical) with a ~6.5 µs time constant, so the FET itself should stop conducting within a few tens of microseconds; how fast VOUT actually collapses then depends on the load resistance and any downstream capacitance. This is a calculated target — measure it (section 9.E).

Design observations to verify rather than assume:

4. Interfaces#

ReferencePins/signalsIntended use
J1PMOD 2x6 plug, Type 1 GPIOHost connection: 1 EN (host-driven), 2 STATUS (module-driven via R6), 5/11 GND, 6/12 3V3, all others NC
J21 VIN, 2 GNDGated supply input, 5-24 V screw terminal (MKDS 1,5/2-5,08 class); motor power never enters via PMOD
J31 VOUT, 2 GNDGated supply output to the downstream load/driver
J41 LOOP_A, 2 LOOP_BNC e-stop loop: wire an NC mushroom button (or chain of NC contacts) across 1-2; fit a wire link if unused

Grounds join on the module (family rule). The PMOD carries 3.3 V logic only; the 3V3 pins power nothing on this board (there is no IC) but are flagged for ERC. Note the module draws essentially zero current from 3V3.

5. Component-by-component review#

5.1 Power path and switches#

Ref.Part / datasheet summaryFunction and why neededIf absent/openIf shorted, wrong, or misassembled
Q1Alpha & Omega AO3401A, -30 V/-4 A P-channel MOSFET, SOT-23; RDS(on) < 60 mΩ max at VGS = -4.5 V, < 85 mΩ max at -2.5 V; VGS abs max +/-12 V; PD 1.4 W at 25 °C / 0.9 W at 70 °CHigh-side series switch; the only element that interrupts VIN->VOUTNo output everD-S short passes full power regardless of loop or EN — the stop is gone and nothing indicates it. Reversed S/D orientation puts the body diode across the switch, so VOUT follows VIN minus a diode drop even when "off"
Q22N7002 (Nexperia datasheet), 60 V/300 mA N-channel MOSFET, SOT-23; RDS(on) 5 Ω max at VGS = 10 V; VGS(th) 1-2.5 V; BOM names onsemi 2N7002LT1GEN low-side switch; host authority over the gate chainChain never conducts, VOUT permanently offD-S short removes host authority — the loop alone controls power and EN low no longer stops it. G-S short holds Q2 off (VOUT off) and loads EN with a short
J2Phoenix MKDS 1,5/2-5,08 class screw terminal (MPN TBD)VIN entry; must carry the full load currentNo input powerReversed VIN/GND wiring reverse-biases nothing protective — there is no reverse-input protection; Q1 body diode plus the load see the reversal. Loose screw = heat at 2 A
J3Same terminal class (MPN TBD)Gated outputNo usable outputReversed harness damages the load; loose screw heats
J4Same terminal class (MPN TBD)NC e-stop loop entryLoop open, VOUT permanently off (fail-safe direction)A screw-terminal short or stray strand across 1-2 bypasses the mushroom button permanently — the button does nothing and only a deliberate loop-resistance check catches it
J1PMOD 2x6 plugEN in, STATUS out, GND/3V3No host control; R3 keeps output offMiskeyed/offset insertion can put 3.3 V or GND on the wrong pins; verify pin 1 orientation against the host before first attach

5.2 Gate network and protection#

Ref.Value / partPurposeWhat is lost if omittedImportant failure/review point
R110 kΩ (Yageo RC0603FR-0710KL)Gate pull-up to VIN: default OFF; also the turn-off path (τ ≈ 6.5 µs into Ciss)PGATE floats; Q1 can drift on from leakage/coupling — default state no longer guaranteed offShort (G-S) holds Q1 permanently off; wrong high value slows turn-off proportionally — R1 is the stop path, do not "improve" it with added gate capacitance
R210 kΩ (RC0603FR-0710KL)Series/divider resistor; with R1 sets Vsg = VIN/2 and limits chain current to ~VIN/20kNo pull-down path, VOUT permanently offShort raises Vsg toward full VIN: at 24 V the zener then carries the full clamp burden (~1.4 mA, still safe) but at any VIN the divider protection halves are gone — verify value, not just presence
D110 V zener, SOD-123, MPN TBD, candidate Diodes Inc. BZT52C10 — VZ 9.4-10.6 V, 500 mW (distributor data); IZT and impedance must be checked against the final datasheetClamps Vsg so a 24 V rail cannot push the divider's 12 V onto Q1's +/-12 V abs-max gateVsg = VIN/2 = 12.0 V at 24 V — zero margin to Q1's gate abs max; tolerance or a supply overshoot kills Q1's gate oxideShorted D1 ties PGATE to VIN: Q1 permanently off (fail-safe direction). Reversed D1 forward-conducts at ~0.7 V PGATE-to-VIN and clamps Vsg to ~-0.7 V... i.e. Q1 can never turn on. Wrong (lower) VZ reduces available drive; wrong (higher) VZ removes the margin
R310 kΩ (RC0603FR-0710KL)EN pull-down: unpowered/unconfigured host = OFFEN floats; a tri-stated host pin can leave Q2 half-on — default-off from the host side is lostShort loads the host EN driver with 0 Ω to GND (most FPGA pins survive but EN stays low, output off)

5.3 STATUS divider#

Ref.Value / partPurposeWhat is lost if omittedImportant failure/review point
R4100 kΩ (RC0603FR-07100KL)STATUS divider top, sized for 24 V rails (tap = VOUT/11)STATUS reads 0 V always; the fabric supervisor is blind and cannot latch stopsShort puts full VOUT (up to 24 V) through R6 onto the FPGA pin — input damage; this is the one resistor whose short is host-lethal. Wrong value skews every reading; must be repopulated for 12 V (39 k) and 5 V (10 k) rails
R510 kΩ (RC0603FR-0710KL)STATUS divider bottomTap floats toward VOUT through R4 — up to ~24 V minus pin clamping on the FPGA pin, limited only by R4+R6 (~240 µA into the clamp); unhealthy, verify presenceShort grounds the tap: STATUS always 0, supervisor sees a permanent stop
R6100 Ω (RC0603FR-07100RL)Series protection on the module-driven STATUS line (family line rule)Direct divider-to-pin connection; less ESD/fault isolationShort is benign in normal operation; open makes STATUS float at the host

5.4 Schematic-only items#

Ref.What it isNote
#FLG01-#FLG03ERC power flags on 3V3, GND, VINNot physical parts; nothing to assemble or test

There are deliberately no capacitors on this module: there is no IC to decouple, and added gate or PGATE capacitance would slow the turn-off path through R1 — the stop path. Do not add capacitance to the gate net during debugging.

6. Datasheet summary and design interpretation#

DeviceKey manufacturer facts used hereBoard-specific interpretation
AO3401A (Q1)VDS -30 V, VGS +/-12 V abs max; ID -4 A at 25 °C / -3.2 A at 70 °C; IDM -27 A; PD 1.4 W at 25 °C / 0.9 W at 70 °C; RDS(on) max 50 mΩ at VGS = -10 V, 60 mΩ at -4.5 V, 85 mΩ at -2.5 V; VGS(th) -0.5 to -1.3 V; Ciss 645 pF typ; RθJA 90 °C/W (t ≤ 10 s) / 125 °C/W steady-state maxThe +/-12 V gate limit is the reason D1 exists: the bare divider hits exactly 12 V at VIN = 24 V. At VIN = 5 V drive is only -2.5 V, the weakest characterized point (85 mΩ max, rising with temperature) — derate hardest on 5 V rails. Design derating to 2 A gives ~0.24 W (~60 mΩ): a 22-30 °C rise on the datasheet footprint, more on a small pour — measure it
2N7002 (Q2)VDS 60 V; ID 300 mA; RDS(on) 5 Ω max at VGS = 10 V/500 mA, 5.3 Ω max at 4.5 V/75 mA; VGS(th) 1-2.5 V; VGS abs max +/-30 V (Nexperia) — the onsemi 2N7002LT1G limit could not be fetched and must be checked (commonly +/-20 V)Chain current is ~0.25-1.2 mA, so even 10 Ω of Q2 is invisible against 20 kΩ. The real question is 3.3 V gate drive vs. a 2.5 V max threshold: expected fine at 1 mA, but outside the characterized RDS(on) conditions — verify saturation on the bench
BZT52C10 (D1 candidate, MPN TBD)VZ 9.4-10.6 V, 500 mW, SOD-123 (distributor data; Diodes Inc. datasheet fetch was blocked — confirm VZ at the actual IZT, impedance, and leakage below 9 V from the manufacturer PDF before ordering)Clamp current at VIN = 24 V is only ~0.4 mA (well under 500 mW). Leakage below breakdown must be low enough not to disturb the 6 V divider point at 12 V — expected negligible, verify
Yageo RC0603 resistors1%, 0603, 100 mW classAll values dissipate microwatts to low milliwatts; the only sizing that matters is the R4 repopulation rule per rail voltage

Official references: AO3401A datasheet (Alpha & Omega), 2N7002 datasheet (Nexperia), onsemi 2N7002 datasheet (fetch blocked during this review — check before procurement), BZT52C10 product page (Diodes Inc.) (fetch blocked; VZ range corroborated via LCSC listing). Check the latest revision and exact orderable suffix before procurement; the zener and terminal MPNs are explicitly TBD in the schematic.

7. Expected values before bench testing#

Gate drive (Q1 on state, loop closed, EN high):

VINPGATE targetVsg targetGoverning elementMargin to +/-12 V abs max
5 V~2.5 V~2.5 VR1/R2 divider9.5 V (but weakest drive: RDS(on) up to 85 mΩ)
12 V~6.0 V (5.88-6.12 V with 1% parts)~6.0 VR1/R2 divider (D1 not conducting: 6 V < 9.4 V min VZ)6.0 V
24 V~13.4-14.6 V~9.4-10.6 VD1 clamp>= 1.4 V

The 12 V row is the required gate-Vsg check of section 9.D: measure Q1 source-to-gate at VIN = 12 V in the on state and confirm ~6.0 V. The design divides the gate drive (R1/R2) and clamps it (D1) rather than applying full VIN; a reading near 12 V at VIN = 12 V means R2 or the chain is shorted.

STATUS divider (tap = VOUT x R5/(R4+R5), through R6 into a high-impedance FPGA input; R6 drops ~0 V at input leakage):

RailR4 fittedTap at VOUT = railTap at VOUT offFPGA (LVCMOS33, VIH ~2.0 V) reads
24 V100 k (as designed)2.18 V~0 Vhigh / low — usable
12 V100 k (as fitted)1.09 V~0 Vindeterminate — do not use; repopulate
12 V39 k (repopulated)2.45 V~0 Vhigh / low — usable
5 V100 k (as fitted)0.45 V~0 Vlow always — blind
5 V10 k (repopulated)2.50 V~0 Vhigh / low — usable

The tap can never exceed 3.3 V-safe levels with the listed values. Verify the actual host VIH; the 2.0 V figure is a typical LVCMOS33 value, not a measurement.

Other expected values:

QuantityDesign target / calculatedWhat to measure
Chain current (on state)~VIN/20 kΩ: 0.25 mA at 5 V, 0.6 mA at 12 V, ~1.4 mA at 24 V (clamped)Voltage across R2 / 10 k
Q1 drop at 1 A<= 60 mV (60 mΩ max at Vsg >= 4.5 V); <= 85 mV at VIN = 5 VVIN-to-VOUT differential at load
Q1 dissipation at 2 A~0.24 W; expect a clearly warm but touchable SOT-23Thermocouple / IR on Q1
Turn-off (gate)τ = R1 x Ciss ≈ 6.5 µs; Q1 off within a few tens of µsPGATE and VOUT on scope, loop-open trigger
VOUT collapse under resistive loadFET-off time plus RC of load and downstream capacitance; sub-100 µs expected with no added CScope capture, section 9.E
EN threshold behaviorQ2 on with EN = 3.3 V; off below ~1 VSlow EN ramp while watching VOUT
Loop contact budget~mA at < VIN/2 — verify the chosen button is comfortable at dry-circuit levelsOhmmeter on the loop, repeated actuations

8. Manual schematic and assembly review checklist#

9. Ordered bench-test procedure#

Stop at the first abnormal result. Record board serial, equipment IDs, ambient, and operator with every capture. Two bench contexts are covered:

A. Unpowered inspection and resistance tests#

  1. Nothing connected. Complete the section 8 checklist under magnification.
  2. Loop continuity with an ohmmeter: across J4 with the mushroom button wired, expect < 1 Ω closed; press the button, expect open; release, expect closed again. Repeat several actuations. With a wire link, expect < 1 Ω. An intermittent or high-resistance loop stops the procedure here.
  3. Measure VIN-to-GND, VOUT-to-GND, and VIN-to-VOUT resistance in both meter polarities. VIN-to-VOUT should show Q1's body diode in one polarity (VOUT-positive lead forward-biases it) and high resistance in the other; a hard short either way is a failed/reversed Q1 — stop.
  4. Measure EN-to-GND: ~10 kΩ (R3). Measure STATUS-to-GND: ~10.1 kΩ (R5 + R6, with R4 to the dead VOUT in parallel paths — expect ~10 kΩ class, not 0, not open).

B. First power, output must stay OFF (Context A)#

  1. J2 from a supply set to 12 V, current limit 100 mA. No load, EN source not yet connected (R3 holds EN low), loop closed.
  2. Apply power. Expect: VOUT ~0 V (allow a small body-diode/leakage-related reading into a DMM's high impedance — investigate anything above ~1 V), PGATE = VIN, STATUS ~0 V, supply current < 1 mA.
  3. Open the loop. Nothing should change. Reclose it.

C. First enable, no load (Context A)#

  1. Connect the 3.3 V EN source through a switch. Loop closed. EN low first: VOUT still 0.
  2. Drive EN high. Expect VOUT = VIN (no load), PGATE ~6.0 V below... i.e. at ~VIN/2, STATUS per the section 7 table for the fitted R4.
  3. Gate Vsg check at 12 V: measure Q1 source-to-gate (VIN minus PGATE, differential) in the on state. Target ~6.0 V (5.88-6.12 V). This confirms the divider is intact and, by implication, that 24 V operation will rely on a working D1 — also verify at 24 V if that rail will ever be used: Vsg must read 9.4-10.6 V there, never ~12 V.
  4. Drive EN low. VOUT must return to ~0 V.

D. Truth-table bench matrix (Context A, then repeat key rows in Context B)#

Run every row; record measured VOUT, PGATE, STATUS. Static rows first at 12 V with a light resistive load (~0.1 A); the dynamic rows follow in E.

#VIN (J2)J4 loopENExpected VOUTExpected STATUS (12 V, R4 = 39 k)
1presentclosedhighON, ~VIN~2.45 V (logic high)
2presentclosedlowOFF, ~0 V~0 V (low)
3presentcloseddisconnected (R3)OFF~0 V
4presentopenhighOFF~0 V
5presentopenlowOFF~0 V
6absentclosedhigh0 V (no source)0 V
7absentopenany0 V0 V
8presentopened while running (dynamic)highcollapses — see Edrops with VOUT
9presentreclosed while EN still high (dynamic)highRETURNS ON — expected hardware behavior; the fabric latch, not this board, must refuse itrises again

Row 9 is not a failure: it demonstrates why the no-auto-relatch rule lives in the fabric. In Context B, row 9 with the supervisor FSM loaded must show the host holding EN low until a deliberate toggle.

E. Loop-opened-while-running under load (the test that matters)#

  1. Context A, VIN = 12 V, resistive dummy load sized for the rated test current (e.g. ~6.8 Ω / 25 W for ~1.8 A, or 12 Ω for ~1 A — stay at or under the 2 A derating). Supply current limit just above the load current.
  2. Enable (loop closed, EN high). Confirm steady VOUT, load current, and measure the VIN-to-VOUT drop (expect <= ~60 mV/A). Let it soak 10 minutes; log Q1 temperature (expect warm, not hot, at <= 2 A).
  3. Scope VOUT (and PGATE if a second/differential channel is available), single-shot trigger on falling VOUT. Physically hit the mushroom button. Capture the collapse; note the time from PGATE rising to VOUT below 10% (expect tens of µs for the FET plus the load RC tail).
  4. Repeat the kill via EN-low instead of the button; capture again.
  5. Repeat step 3 at least five times. The stop must be clean and repeatable every single time. Until these captures exist, do not run a motor behind this board.
  6. Only after E passes: repeat rows 1/8 at 5 V and (if used) 24 V, with the correct R4 fitted for each rail, and re-verify Vsg at 24 V is clamped.

F. Host-context run (Context B)#

  1. Power the FPGA host first (rail sequencing rule), J2 second.
  2. Confirm the host reads STATUS low with VOUT off and high with VOUT on at the fitted divider's rail.
  3. Run the truth-table matrix rows 1, 2, 4, 8, 9 from the fabric, with the supervisor FSM latching row 8 and refusing row 9 until an EN toggle.
  4. First downstream motor spin, if any, comes only after E and F pass: current-limited rail, hands clear, button within reach, and the operator has personally seen this specific board kill power under load.

10. Troubleshooting map#

SymptomFirst measurementsLikely areas
VOUT never turns onPGATE, EN at Q2 gate, loop resistanceOpen R1/R2 chain, reversed or shorted D1, Q2 orientation, open loop/J4 wiring, EN not reaching 3.3 V
VOUT on but should be off (loop open or EN low)VIN-to-VOUT resistance unpowered, PGATEShorted Q1 (D-S) — replace, and treat the event as a lesson in why this is not a safety device; shorted Q2; solder bridge across J4
VOUT ~VIN minus 0.3-0.7 V when "off"Body-diode check unpoweredQ1 reversed S/D, or VOUT back-fed from downstream
Vsg ~12 V at VIN = 12 VR2 value, chain continuityR2 shorted/bypassed; wrong divider stuffing
Vsg ~12 V at VIN = 24 VD1 polarity/presenceD1 open, missing, or wrong VZ — stop 24 V testing immediately (zero gate margin)
Vsg only ~0.7 V, VOUT offD1 orientationD1 reversed (forward diode across R1)
STATUS stuck low with VOUT onTap voltage at ST_DIV, R4 value vs. railWrong R4 for the rail (see section 7), open R4/R6, shorted R5
STATUS near VOUT / host pin stressedR5 presence, R4 for shortShorted R4 or open R5 — disconnect the host before debugging further
Stop is slow or VOUT tails for msAdded capacitance on PGATE/VOUT, load RCRework capacitance on gate net (remove it), large downstream capacitance discharging through the load
Loop intermittentOhmmeter across J4 while flexing wiringButton contact oxide at dry-circuit current, loose screw terminal, broken strand
Q1 hot at <= 2 AVIN-to-VOUT drop vs. currentHigh RDS(on) from weak Vsg (5 V rail), poor solder, undersized copper

11. Bench record template#

FieldRecord
Board revision / serial
R4 fitted value and intended rail
Zener MPN actually fitted
Loop device (button model / wire link)
Supplies (logic 3.3 V, J2 rail), current-limit settings
DMM/scope/load equipment and calibration
Ambient
A. loop continuity and unpowered resistance results
B. first-power off-state result
C. no-load enable, Vsg at 12 V (and 24 V if used)
D. truth-table matrix, all rows, measured values
E. loop-open-under-load captures (file paths), turn-off times, repeat count
E. thermal soak result (current, duration, Q1 temperature)
F. host-context result, supervisor latch verified
Deviations, photos, raw-file paths
Reviewer / date / disposition

12. Review conclusion#

The design is a coherent, minimal discrete AND gate in the power path, and its fail-safe direction is mostly right: every open failure (loop, R1 chain, Q2, EN) turns the output off, R1 and R3 make both control inputs default-off, and the D1 clamp correctly resolves the otherwise zero-margin 12 V-gate condition at VIN = 24 V. The principal open items are entirely unverified first-article behavior (nothing has been built), the TBD zener and terminal MPNs, Q1 thermal reality at the 2 A derating on real copper, the marginal 2.5 V gate drive on 5 V rails, 3.3 V drive of Q2 outside its characterized conditions, the R4-per-rail repopulation rule (the fitted 100 k divider is blind below ~20 V rails), and the measured loop-open turn-off time under load. The single most important test on this board is section 9.E: seeing the button kill power at rated current, on a scope, repeatedly, before any motor sits behind it.

And once more, because it belongs in the conclusion as much as in the preamble: this is NOT a certified safety device. It is a convenience power interrupt for a hobby bench — no redundancy, no monitored contacts, no safety rating, one transistor whose short-circuit failure silently defeats the stop. It must never be the only thing between a person and a hazard. Real machine safety requires certified components and engineered systems built to ISO 13850-style e-stop principles and functional-safety standards that this teaching module does not meet.