A low-voltage current transformer (CT) is an inductive sensor that clamps around or threads onto an AC conductor to step down high primary current into a proportional, galvanically isolated secondary signal safe for microcontrollers and meters. In a real installation, a CT changes a potentially lethal 200A mains feed into a manageable 50mA signal, allowing you to log power consumption without cutting wires, breaking the circuit, or exposing your 3.3V logic to 240V AC.
Makers and junior techs commonly confuse CTs with Hall-effect sensors (like the ACS712). While Hall sensors measure both AC and DC, they suffer from temperature drift, require a 5V supply, and introduce insertion loss. CTs are strictly for AC but offer vastly superior accuracy, complete galvanic isolation, and zero insertion loss because they clamp around the wire rather than sitting in series with it. They are also frequently confused with potential transformers (PTs), which step down voltage rather than current.
The Math: Turns Ratio, Burden Resistors, and a Worked Example
To use a CT with a microcontroller like an Arduino or ESP32, you must convert the secondary current into a voltage your analog-to-digital converter (ADC) can read. This is done using a burden resistor. Some modern split-core CTs have this resistor built-in, but raw CTs require you to calculate and install it yourself.
Let us walk through a worked numeric example using a standard raw 100A:50mA CT (meaning when 100A flows through the primary wire, 50mA flows through the secondary coil). We want to interface this with an ESP32, which has a 3.3V ADC. To maximize resolution without clipping the sine wave peaks, we want an RMS voltage of about 1.0V (which yields a peak voltage of ~1.41V, leaving plenty of headroom below the 1.65V bias point).
- Primary Current (Ip): 100A
- Secondary Current (Is): 50mA (0.05A)
- Target RMS Voltage (Vrms): 1.0V
Using Ohm's law, we solve for the burden resistor (Rburden):
R = V / I = 1.0V / 0.05A = 20 Ω
Next, we must verify the power rating of the resistor so it does not overheat and fail. Power (P) equals I² × R:
P = (0.05A)² × 20 Ω = 0.0025 × 20 = 0.05W
A standard 1/4W (0.25W) carbon film or metal film resistor is more than adequate. If you are building a permanent energy monitor, refer to the OpenEnergyMonitor CT sensor guide for detailed biasing networks that center this 1.0V AC signal at 1.65V DC for single-supply ADCs.
Where You Meet This in Practice
You will encounter low-voltage current transformers in several specific bench and jobsite scenarios:
- Home Energy Monitors: Commercial units like Sense or Emporia Vue use arrays of split-core CTs clipped to individual branch circuits in your breaker panel. DIY builders replicate this using ESPHome and the ESPHome CT clamp integration to push real-time wattage to Home Assistant.
- Solar PV Inverter Logging: To verify what your grid-tied inverter is actually pushing to the grid, you clamp a CT over the inverter's AC output line. This avoids the data latency and API polling issues inherent in reading the inverter's internal software metrics.
- Motor Stall and Load Detection: In workshop automation, clamping a CT over the feed line of a bandsaw, lathe, or dust collector allows a PLC or microcontroller to detect when the motor is under heavy load or stalling, triggering an automatic shutoff before the thermal overload trips.
Decision Tree: Picking the Right CT for Your Build
Choosing the wrong CT leads to clipped signals, noisy ADC readings, or physical installation failures. Use this decision matrix to select the correct part.
| If your application is... | And your max current is... | Choose this output type... | Concrete Part Pick |
|---|---|---|---|
| Small appliance / single 120V branch circuit | < 30A | 0-1V (Internal Burden) | YHDC SCT-013-030 |
| Whole-home mains, subpanels, or 240V split-phase | Up to 100A | 0-1V (Internal Burden) | YHDC SCT-013-000 |
| Heavy commercial feeders, 200A+ service entrances | 200A - 400A | 5A (External Burden Required) | Magnelab T075-000 (Solid Core) |
| Battery banks, DC solar charge controllers, EV chargers | N/A (DC Current) | Hall-Effect / Shunt (CTs will NOT work) | Victron SmartShunt or ACS758 |
Critical Safety and Wiring Mistakes
Beyond the high-voltage hazard, builders frequently make two measurement errors:
- Clamping over Line and Neutral together: A CT measures the net magnetic field. If you clamp it over a standard 120V Romex cable containing both the hot (black) and neutral (white) wires, the magnetic fields cancel each other out perfectly, and your reading will be exactly zero. You must separate the conductors and clamp over only one current-carrying wire.
- Ignoring Phase Shift for Real Power: CTs introduce a slight phase delay between the primary current and the secondary signal. If you are only measuring RMS current (Amps), this does not matter. But if you are calculating Real Power (Watts) or Power Factor by multiplying the CT signal against an AC voltage reading, that phase shift will skew your wattage calculations. You must calibrate the phase offset in your software (e.g., using the
PHASECALconstant in EmonLib).
FAQ: Quick Answers for the Bench
Do I need to strip the wire insulation before clamping the CT?
No. The CT reads the magnetic field generated by the current. It will clamp directly over the THHN insulation, Romex jacket, or THWN jacket without any loss of accuracy. Never strip mains insulation just to fit a sensor.
Can I use a low-voltage CT on a DC circuit?
No. Transformers rely on a changing magnetic field to induce a secondary current. DC current creates a static magnetic field, which induces zero voltage in the secondary coil. For DC, you must use a Hall-effect sensor or a precision shunt resistor.
What happens if my wire is too thin for the CT window?
If you clamp a large 100A CT over a tiny 18 AWG wire, the physical gap between the wire and the core can introduce minor linearity errors at very low currents, but it will still function. However, if the wire is so thin that it moves around inside the window, you will get noisy, fluctuating readings. Wrap the wire around the CT core multiple times to multiply the primary current (e.g., 3 loops turns a 100A:50mA CT into a 33.3A:50mA CT) for better resolution on small loads.
My ESP32 ADC is reading erratic, jumping values when the load is off.
You are likely picking up electromagnetic interference (EMI) from the breaker panel. Keep the low-voltage signal wires from the CT away from the mains AC wires. Use a twisted-pair cable for the CT leads, and ensure your DC bias circuit has a stable, decoupled voltage reference rather than relying directly on the ESP32's noisy 3.3V rail.






