A toroidal current transformer is a donut-shaped instrument transformer that steps down high alternating current (AC) in a primary conductor to a safely measurable, proportional low current in its secondary winding without interrupting the circuit. By clamping this device around a live wire, you achieve galvanic isolation and scale dangerous mains-level amperage down to milliamp or millivolt levels that microcontrollers and panel meters can process safely.
How a Toroidal Current Transformer Changes Your Circuit
When you introduce a toroidal current transformer (CT) into an installation, you are fundamentally changing how you acquire data without altering the power delivery itself. The primary conductor (your load wire) acts as a single-turn primary winding. The alternating magnetic field generated by the AC current induces a proportional current in the hundreds or thousands of secondary turns wrapped around the toroidal core.
Think of it like a mechanical gear reduction: a high-torque, low-speed input is converted to a low-torque, high-speed output. Here, a high-current, low-voltage primary is converted to a low-current, higher-voltage secondary. What this changes in your physical circuit is measurement topology. Instead of breaking a 120V/240V line to insert an inline shunt—which exposes you to shock hazards and creates a point of failure—the CT allows non-intrusive, isolated monitoring. The secondary circuit operates at safe, extra-low voltage (ELV) levels, allowing you to route thin 22 AWG signal wires directly into an ESP32 or Arduino analog-to-digital converter (ADC).
Worked Numeric Example: Sizing and Burden Resistor Calculation
Let’s calculate the exact burden resistor needed for the most common DIY CT: the YHDC SCT-013-000, which has a rating of 100A primary to 50mA secondary. We want to interface this with a 5V Arduino Uno ADC to measure a standard 120V US branch circuit.
- Determine the Turns Ratio: 100A / 0.050A = 2000 turns.
- Find the Peak Secondary Current: The 50mA rating is RMS. The peak current is $I_{peak} = I_{rms} \times \sqrt{2}$. So, $0.050 \times 1.414 = 0.0707A$ (70.7mA).
- Define the ADC Voltage Target: A 5V Arduino ADC reads 0V to 5V. Because AC swings positive and negative, we must bias the signal to a 2.5V midpoint using a voltage divider. This leaves a maximum peak swing of 2.5V (from 2.5V up to 5.0V, and down to 0V) before clipping.
- Calculate the Burden Resistor ($R_{burden}$): Using Ohm’s Law ($R = V / I$), we divide the target peak voltage by the peak secondary current: $2.5V / 0.0707A = 35.36\Omega$.
Since 35.36Ω is not a standard resistor value, we select the next closest standard 1% metal film resistor, which is 34.8Ω, or a standard 5% carbon film resistor at 33Ω. Using 33Ω gives a slight safety margin against ADC clipping if the mains voltage or load slightly exceeds the 100A nominal rating.
Resistor Wattage Rating: Power dissipated is $P = I_{rms}^2 \times R$. At max load: $(0.050)^2 \times 33 = 0.0825W$. A standard 1/4W (0.25W) resistor is more than adequate and will run cool to the touch.
Where You Meet This in Practice
You will encounter toroidal current transformers in both commercial off-the-shelf equipment and custom bench builds:
- Home Energy Monitors: Systems like the Emporia Vue or Sense use arrays of 15 to 20 split-core CTs clamped onto individual branch circuit breakers inside your main service panel to provide real-time, circuit-level power disaggregation.
- Grid-Tie Solar Inverters: Inverters use solid-core CTs on the AC output side to monitor grid frequency, phase alignment, and export current, ensuring they do not backfeed the grid during a blackout (anti-islanding protection).
- DIY Smart Panels: Makers frequently pair split-core CTs with ESP32 dev boards and the EmonLib library to build custom MQTT power meters that log data to Home Assistant, bypassing the cloud-dependency of commercial smart plugs.
- Motor Drives and VFDs: Industrial variable frequency drives use CTs on the output phases to monitor for overcurrent conditions and trigger protective shutdowns before the IGBTs fail.
Common Confusions: CTs vs. Shunts and Hall Effect Sensors
Beginners often confuse toroidal CTs with other current sensing topologies. Choosing the wrong sensor for your application leads to blown microcontrollers or inaccurate DC readings.
| Feature | Toroidal Current Transformer (CT) | Hall Effect Sensor (e.g., ACS712) | Inline Shunt Resistor (e.g., INA219) |
|---|---|---|---|
| Current Type | AC Only | AC and DC | AC and DC |
| Galvanic Isolation | Yes (Magnetic) | Yes (Magnetic/Silicon) | No (Direct electrical contact) |
| Circuit Intrusion | Non-intrusive (Clamp-on) | Intrusive (Must break circuit) | Intrusive (Must break circuit) |
| Accuracy (Pure AC) | Excellent (High linearity) | Moderate (Prone to offset drift) | Excellent |
| Power Consumption | Zero (Passive) | Low (Requires 5V/3.3V supply) | Zero (Passive, but dissipates heat) |
If you are measuring battery banks, solar charge controller outputs, or DC-DC converters, a CT will read exactly zero. You must use a shunt or Hall effect sensor for DC. However, for 120V/240V AC mains monitoring, the toroidal CT is the undisputed champion due to its non-intrusive nature and inherent isolation, as detailed in comprehensive guides by All About Circuits.
Frequently Asked Questions
Can a toroidal current transformer measure DC current?
No. Toroidal CTs operate strictly on Faraday’s Law of Induction, which requires a changing magnetic field to induce a voltage in the secondary winding. Direct current (DC) creates a static magnetic field. Once the DC current stabilizes, the magnetic field stops changing, and the secondary output drops to zero. Furthermore, passing high DC current through the primary can saturate the ferromagnetic core, temporarily ruining its accuracy for AC measurements until the core is degaussed.
Does the physical direction of the wire through the toroid matter?
Yes, absolutely. The orientation dictates the phase polarity of the secondary signal. If you clamp the CT on with the arrow pointing toward the load, the AC waveform will be in phase. If you flip it around, the waveform shifts by 180 degrees. While this doesn't matter if you are only measuring RMS amperage, it will completely destroy your Real Power (Watts) and Power Factor calculations if you are also measuring voltage, as the math relies on the precise phase relationship between the voltage and current waveforms.
What is the difference between the SCT-013-000 and the SCT-013-030?
The YHDC SCT-013-000 is a pure current output device (100A in = 50mA out) and requires you to calculate and install an external burden resistor on your PCB or breadboard. The SCT-013-030, however, has a built-in internal burden resistor calibrated to output 1V RMS when 30A flows through the primary. The -030 version is plug-and-play for 3.3V ADCs (like the ESP32) without needing external biasing resistors, but it is limited to 30A and offers less resolution for low-load measurements.
How do I calibrate an SCT-013 with an ESP32 or Arduino in code?
Never rely purely on the theoretical math for your final calibration constant. Manufacturing tolerances on the CT core and your burden resistor can introduce a 5% to 10% error. To calibrate, plug a purely resistive load with a known wattage (like a 1500W space heater) into the monitored circuit. Measure the actual current with a trusted, calibrated Fluke or Klein clamp meter. In your Arduino IDE using the EmonLib library, adjust the current_calibration constant in the emon1.current(A0, CALIBRATION_VALUE); function until the serial monitor matches your clamp meter. The OpenEnergyMonitor documentation provides an excellent step-by-step calibration workflow for this exact process.






