A current transformer (CT) is a passive electromagnetic device that steps down high primary AC current to a safe, proportional secondary current for measurement and protection. In a real circuit, it changes a potentially lethal 200A primary conductor into a manageable 1A, 5A, or milliamp secondary signal without requiring you to break the physical wire or de-energize the mains. Makers and junior electricians commonly confuse CTs with Potential Transformers (PTs, which step down voltage) or Hall-effect sensors (which can measure DC and rely on semiconductor physics rather than magnetic induction).

The Core Purpose: What a CT Changes and What It Isn't

At its core, a CT is a step-up voltage transformer that operates as a step-down current transformer. The primary "winding" is often just the single conductor passing through the center of the toroidal core. The secondary winding consists of hundreds or thousands of turns of fine magnet wire. By the laws of conservation of energy and transformer action, if you step the current down by a factor of 1000, the voltage across the secondary burden increases proportionally. This is why a CT must never be open-circuited while primary current is flowing—a concept we will explore in the scenario below.

The Math: Turns Ratio and Burden Resistor Sizing

To interface a CT with a microcontroller like an ESP32 or an Arduino, you must convert the secondary current into a measurable voltage using a burden resistor. Let's look at a worked numeric example using the ubiquitous YHDC SCT-013-000, a split-core CT widely available for around $15 to $25 in 2026.

Specs for SCT-013-000:
Primary Current ($I_p$): 100A max
Secondary Current ($I_s$): 50mA (0.05A) at full load
Turns Ratio ($N$): 2000:1

The Calculation:
You want to measure up to 100A RMS using an ESP32-S3 ADC, which operates at 3.3V. To maximize resolution without clipping, you want the peak voltage at 100A to be roughly half the ADC reference (1.65V peak).

  1. Find the peak secondary current: $I_{s(peak)} = I_{s(RMS)} \times \sqrt{2} = 0.05A \times 1.414 = 0.0707A$.
  2. Calculate the ideal burden resistor: $R_{burden} = V_{peak} / I_{s(peak)} = 1.65V / 0.0707A = 23.34\Omega$.
  3. Select a standard resistor: A 22Ω or 24Ω 1% tolerance resistor is ideal. Using 24Ω yields a peak voltage of 1.69V, well within the 3.3V ADC limit.

For deeper accuracy on AC waveform sampling, refer to the OpenEnergyMonitor CT theory guide, which details how to calculate phase shift errors introduced by the burden resistor and core inductance.

Where You Meet This in Practice

You will encounter current transformers in several specific domains, each requiring different accuracy classes and physical form factors:

  • Home Energy Monitors: Systems like Emporia Vue or Sense use small split-core CTs (typically 50A to 200A) clamped onto branch circuit wires in your subpanel to track real-time wattage.
  • Solar Production Metering: Grid-tied inverters use CTs to measure export/import current at the point of common coupling (PCC) to comply with utility anti-islanding and export limits.
  • Motor Protection Relays: Industrial VFDs and motor starters use 5A-secondary CTs to feed overload relays. If a 50HP motor draws excessive current during a mechanical jam, the CT signals the relay to trip the contactor before the windings melt.
  • Bench Power Analysis: High-end oscilloscopes use specialized high-frequency current probes (which are essentially wide-bandwidth CTs with integrated active amplifiers) to measure switching currents in SMPS designs.

Real-World Scenario Walkthrough: The Arcing Terminal Block

Understanding CT theory isn't just about getting clean ADC readings; it's about preventing catastrophic jobsite failures. Here is a real-world scenario that illustrates the danger of ignoring CT physics.

The Setup:
An installer was retrofitting a Modbus power meter on a 400A main feeder in a commercial HVAC panel using a standard 400:5A split-core CT (like the Accuenergy ACCT-S200). The goal was to route the 5A secondary leads to a new transducer mounted 20 feet away.

The Numbers:
The HVAC compressors were running, pulling a steady 350A primary current. Based on the 80:1 turns ratio (400/5), the secondary circuit was carrying 4.375A. The secondary wire was 14 AWG THHN, rated for 15A, which is perfectly adequate for normal 5A CT secondary loops.

The Outcome:
The installer disconnected the secondary wires from the old analog ammeter to route them to the new transducer while the system was live. A loud crack echoed through the panel, the terminal block melted into a puddle of black plastic, and the main 400A breaker tripped on ground fault.

What Went Wrong:
The installer open-circuited a loaded CT. Without a burden (the ammeter) to limit the voltage, the secondary winding acted as a massive step-up transformer. The core saturated instantly, and the collapsing magnetic field induced a voltage spike exceeding 2,000V across the open secondary terminals. This voltage easily jumped the 1/4-inch gap in the terminal block, creating a sustained plasma arc that drew enough primary current to trip the main breaker's ground-fault protection. As detailed in Electronics Tutorials' transformer safety section, a CT secondary must always be shorted or connected to a burden before primary current flows.

CRITICAL SAFETY RULE: Never open-circuit the secondary of a current transformer while primary current is flowing. If you must remove a meter or transducer from a live 5A CT circuit, use a shorting terminal block to jumper the secondary leads first.

Step-by-Step: Wiring a CT to an ESP32-S3 ADC

If you are building a DIY energy monitor using a voltage-output CT (like the SCT-013-030, which has an internal burden and outputs 0-1V RMS) or a current-output CT with an external burden, you cannot wire it directly to a microcontroller GPIO. The ADC cannot read negative voltages, and the AC waveform will clip at 0V, destroying your RMS calculations. You must add a DC bias.

  1. Create a Virtual Ground: Wire two 10kΩ resistors in series between the ESP32-S3's 3.3V pin and GND. The junction between them provides a stable 1.65V DC bias.
  2. Add a Decoupling Capacitor: Place a 10µF ceramic capacitor between the 1.65V junction and GND to filter out high-frequency noise from the ESP32's internal switching regulators.
  3. Connect the CT: Wire one lead of your burden-loaded CT to the 1.65V bias junction. Wire the other CT lead to your chosen ADC pin (e.g., GPIO4).
  4. Verify with a Multimeter: With the CT clamped around a dead wire, measure the voltage at the ADC pin. It should read exactly 1.65V DC. When clamped around a live 10A wire, it should read 1.65V DC on a standard multimeter (which averages the AC), but your oscilloscope will show a 1.65V-centered sine wave.
  5. Sample in Code: In your Arduino/ESP-IDF sketch, sample the ADC at least 1,000 times per second (ideally 3,000+ for 60Hz mains). Subtract the 1.65V offset in software, square the results, average them, and take the square root to calculate true RMS current.

Frequently Asked Questions

Can a current transformer measure DC current?

No. CTs rely on Faraday's Law of Induction, which requires a changing magnetic field to induce a secondary current. A steady DC current creates a static magnetic field, inducing zero secondary current. To measure DC, you must use a Hall-effect sensor (like the ACS712) or a fluxgate magnetometer.

What do CT accuracy classes like 0.5 and 5P mean?

These IEC/IEEE designations define the error margin. A Class 0.5 CT guarantees the measured current will be within ±0.5% of the true value, making it ideal for revenue-grade utility metering. A Class 5P (Protection) CT is designed to maintain accuracy during massive fault currents (e.g., 20x nominal current) to ensure breakers trip correctly, but it may have a ±5% error during normal low-load operation.

Why is my ESP32 reading erratic current values at low loads?

The original ESP32 (and many early variants) feature an ADC with notorious non-linearity and noise near 0V and 3.3V. If your low-load signal hovers near the 1.65V bias point, the ESP32's internal noise floor will swamp the signal. For serious energy monitoring in 2026, bypass the internal ADC and use an external 16-bit I2C ADC like the Texas Instruments ADS1115, which offers vastly superior resolution and programmable gain amplifiers.