To build reliable embedded arc-fault circuit-interrupter protection for a 48V DC battery or solar microgrid, use a high-side current shunt paired with an AC-coupled wideband amplifier feeding an ESP32 ADC, which then drives a Silicon Carbide (SiC) MOSFET disconnect. Unlike AC systems where current crosses zero 120 times a second, DC arcs do not self-extinguish. They sustain continuous plasma, generating broadband high-frequency noise (10kHz–100kHz) that must be detected and interrupted before the surrounding insulation ignites.
The DC Arc-Fault Topology: Nodes and Signal Path
The core challenge of DC arc-fault circuit-interrupter protection is separating the steady DC load current from the chaotic, high-frequency AC noise generated by the arc plasma. We achieve this using a dual-path sensing topology.
Node Labels and Signal Flow
- V_BAT (48V): Main positive supply from the battery bank or solar array.
- SHUNT_P / SHUNT_N: High-side current shunt terminals. Measures total DC load current.
- AC_SENSE: The node immediately after the shunt, where the high-frequency arc noise is superimposed on the DC voltage.
- COUPLE_NODE: Output of the high-pass filter, stripping away the 48V DC offset and passing only the arc noise.
- ADC_CH0: ESP32-WROOM-32 GPIO 36, reading the amplified AC noise.
- GATE_OUT: ESP32 GPIO 25, driving the opto-isolated gate driver.
- LOAD_P / LOAD_RETURN: The protected downstream circuit.
Why This Topology Over the Alternatives?
You might wonder why we do not use a Hall-effect sensor (like the ACS712) or a low-side shunt. Hall-effect sensors typically roll off above 80kHz, completely missing the critical 100kHz+ noise signature of a nascent series arc. Low-side shunts disrupt the system ground reference, making it impossible to detect parallel ground-fault arcs that bypass the load. A high-side shunt with AC coupling preserves the ground plane and captures the full broadband noise spectrum.
Component Selection and Design Walkthrough
Let us assign real component values to this topology for a 48V nominal (58.4V max) LiFePO4 system rated for 30A continuous.
- Current Shunt: 2mΩ, 5W precision alloy shunt (e.g., Bourns CSS 4-wire). At 30A, this drops 60mV and dissipates 1.8W, keeping thermal drift minimal.
- AC Coupling Network: 100nF X7R ceramic capacitor in series with a 10kΩ resistor to ground. This creates a high-pass filter with a cutoff frequency of ~159Hz, blocking the 48V DC while passing arc noise.
- AC Amplifier: MCP6002 op-amp configured for a non-inverting gain of 20. This boosts the millivolt-level arc noise to a 1V–3V swing readable by the ESP32’s 0–3.3V ADC.
- Disconnect Switch: C2M0080120D (1200V, 80mΩ SiC MOSFET). While a 100V Si MOSFET seems sufficient for 48V, interrupting a DC arc across an inductive load causes massive voltage spikes. The 1200V SiC rating prevents avalanche breakdown without needing a complex snubber network.
Behavior Table: Parameter Sensitivity
| Element Changed | Direction of Change | Effect on Arc Detection & System Behavior |
|---|---|---|
| Shunt Resistance | Increases (e.g., to 5mΩ) | Improves DC current resolution, but increases I²R heating and voltage drop at 30A. |
| Coupling Capacitor | Decreases (e.g., to 10nF) | Raises high-pass cutoff to 1.5kHz. Filters out low-frequency mechanical switching noise, but may miss early-stage parallel arcs. |
| Op-Amp Gain | Increases (e.g., to 50x) | Increases sensitivity to micro-arcs, but causes ADC saturation during normal load transients (e.g., motor startup). |
| ADC Sample Rate | Decreases (e.g., to 5kHz) | Violates Nyquist theorem for 10kHz+ arc noise, resulting in aliasing and false trips. |
Failure Modes: What Breaks at the Extremes?
A robust arc-fault circuit-interrupter protection design must fail safely. Here is how the circuit behaves when critical components fail open or short.
Shorted Shunt (SHUNT_P to SHUNT_N)
If the shunt shorts, the DC voltage drop becomes zero. The ESP32 reads 0A DC current. However, if the short is a partial weld, AC arc noise may still couple into the AC_SENSE node. System Response: The firmware detects a "shunt failure" (0A DC but high AC noise variance) and commands the SiC MOSFET open. The system fails safe.
Open Coupling Capacitor
If the 100nF capacitor fails open, the AC path is broken. The ESP32 receives a flat 0V on ADC_CH0. System Response: The system loses its ability to detect series arcs via high-frequency noise. It degrades to a standard DC overcurrent protector. To catch this, the firmware must inject a high-frequency test tone via a secondary GPIO during boot; if the tone is not seen on the ADC, the system flags a sensor fault and refuses to close the contactor.
Shorted SiC MOSFET (Drain to Source)
Catastrophic thermal runaway or overvoltage puncture can short the main switch. System Response: The system can no longer interrupt the circuit. This is why embedded solid-state AFCIs must be paired with a physical, mechanical fuse or a secondary mechanical contactor in series to clear a shorted-semiconductor fault.
Bench and Breadboard Testing Protocol
Do not wire this directly to a 48V battery bank on day one. Follow this stepped breadboard-test sequence to validate the AC noise detection logic.
- Low-Voltage Setup: Power the high-side circuit with a 12V bench supply and a 10Ω, 50W power resistor as the load (drawing ~1.2A). Power the ESP32 and op-amp from a separate 5V USB supply, ensuring all grounds are bonded at a single star point.
- Simulate Arc Noise: Wire a mechanical 12V automotive relay in parallel with the load. Do not connect the relay contacts; instead, use a signal generator to drive the relay coil at 50Hz, causing the contacts to chatter. This chattering generates a broadband high-frequency "hash" that closely mimics the RF signature of a DC arc.
- Verify the AC Path: Connect an oscilloscope to
COUPLE_NODE. You should see the 12V DC blocked, with 100mV–500mV AC spikes passing through. Verify the op-amp output (ADC_CH0) scales these spikes to 1V–2.5V. - Firmware FFT/RMS Check: Flash the ESP32 with a continuous ADC sampling loop (using the ESP-IDF Continuous ADC API). Calculate the RMS of a 1024-sample buffer. When the relay chatters, the RMS value should jump from a baseline of ~10 to >300.
- Interrupt Test: Wire the
GATE_OUTpin to an LED (via a 330Ω resistor) representing the gate driver. Set a firmware threshold: if AC RMS > 200 for three consecutive buffers, pullGATE_OUTLOW. Verify the LED extinguishes within 50ms of the relay chattering.
Decision Tree: Sizing Your Embedded AFCI
Selecting the right disconnect switch and sensing topology depends entirely on your system voltage and inductance. Use this decision path to finalize your BOM.
| System Condition | Required Action / Component Pick |
|---|---|
| Nominal Voltage < 24V DC (e.g., 12V van build) | Use standard Si MOSFET (IRFB4110PbF, 100V). Arc energy is generally insufficient to sustain long plasma columns. |
| Nominal Voltage 24V – 60V DC (e.g., 48V LiFePO4) | Use 100V Si MOSFET + 60V TVS diode clamp, OR step up to 1200V SiC for absolute safety. |
| Nominal Voltage > 80V DC (e.g., 400V Solar String) | MANDATORY: Use 1200V SiC MOSFET (C2M0080120D). Si MOSFETs will avalanche and fail shorted under DC arc inductive kickback. See NREL guidelines on PV arc faults for string-level hazards. |
| High Inductive Loads (Motors, Transformers) | Add a 10µF film capacitor + 10Ω resistor snubber across the MOSFET Drain-Source to dampen ringing. |
The Final Concrete Pick
For a standard 48V off-grid or solar storage system, do not compromise on the main disconnect. Select the C2M0080120D 1200V SiC MOSFET. While it costs roughly $12 more than a comparable silicon part, the massive voltage headroom completely eliminates the risk of inductive avalanche failure when interrupting a high-current DC arc. Pair it with the 2mΩ Bourns shunt and the MCP6002 AC-coupling network described above. This specific combination provides the bandwidth, thermal stability, and fail-safe margins required to meet the intent of NFPA 70 Article 690.11 for embedded DC arc mitigation.






