ESP32 + SCT-013 - Measuring current does not change - burden resistor wiring issue?

Hello everyone,

I’m working on a current monitoring project using an ESP32 and an SCT-013-000 current transformer (CT). I’ve followed many guides and discussions (including OpenEnergyMonitor), but I'm facing a strange issue.

I soldered a 22Ω 1W metal film burden resistor directly between the white and red wires of the jack connected to the SCT-013 (see attached photo). Then I connected:

  • The white wire (burden resistor side) to a voltage divider (100k – 100k) and GPIO34 (ADC).
  • The red wire to GND (ESP32).
  • The voltage divider shifts the output to 1.65V using 3.3V and GND.

Problem:
Even when I plug in and run a 2kW kettle, the ADC readings do not change meaningfully. Whether the kettle is on or off, the measured voltage remains around ~1.54V – barely fluctuating by a few millivolts.

I double-checked:

  • ESP32 pins: GND = I6, GPIO34 = I15, 3.3V = I19 (on the breadboard)
  • Dupont wires run from these to rows with the burden + divider
  • Voltage readings across the burden are static, around 3.27V (between GND and 3.3V)
  • But across the burden itself (white-red wire) – almost no AC ripple or signal

What I suspect:

  • Burden placement may be wrong? I soldered it directly inside the jack between red and white leads.
  • Maybe the CT is not generating enough signal?
  • Burden resistance too high?
  • Filtering capacitor misused?

What I want:
I just need to reliably detect when the appliance is on (current > 0.1A) and count runtime (motohours). Eventually I’ll add InfluxDB/Grafana, but right now I need to make the analog signal work.

Any advice, feedback, wiring corrections, or successful examples using SCT-013 directly with ESP32 on a breadboard would help me a lot!

Thank you very much! :folded_hands:

Which variant of the SCT-013. Most of them already have a built-in burden resistor.
Except for the 100A/50mA model.
How did you measure that AC voltage from the burden resistor.
Leo..

How? You can't measure the current on the cable, you need to have just single wire, L or N, inside your clamp.

Attached where?

Likely too low.

And voltage divider too high.

Hi, @1martin-polzer
Welcome to the forum.

First the voltage across the burden resistor will be AC.

You will need some interface circuitry to convert this to being suitable for an ADC.

Have you read this page:

And in particular this diagram;

Can you please post a copy of your circuit, a picture of a hand drawn circuit in jpg, png?
Hand drawn and photographed is perfectly acceptable.
Please include ALL hardware, power supplies, component names and pin labels.

Tom.... :smiley: :+1: :coffee: :australia:

The SCT-013-000 is designed for measuring up to 100A so the input to output current ratio is very small 500uA/A. For 1A input you will only get 500uA output. With a 22 ohm burder thats only 11mV

A SCT-013-010 may be better for your application.

(current > 0.1A)

You also need to consider the maximum current that will pass through thr CT

rather than building circuits to offset the CT AC output for input to a microcontroller ADC look at the following

for single phase readings see ESP8266 Mains Current Sensor

for three phase I used ESP32-4-Channel-Mains-Current-Sensor

We still don't know which SCT-013 OP has.
There are 10 versions of that CT.
And only one of them needs a burden resistor.
Leo..

And I suspect the CT is same in all of them...

You could be right there.
Maybe just a different internal burden resistor value.
That would mean that you can increase CT current range by adding an external burden resistor.
It's best to match the CT to your requirements. Using a 100A CT to measure a couple of Amps will result in low resolution and noise of the A/D.
Leo..

Hi Leo, thanks for the quick reply!

I have the SCT-013-000 100A/50mA version, which doesn't have a built-in burden resistor. That's why I added the external 22Ω resistor.

I measured the AC voltage across the burden directly with a DMM in AC voltage mode, before the voltage divider. Even with the 2kW kettle on, it showed practically zero or negligible AC voltage.

Hi Jim,

Thanks for pointing out the sensitivity issue. That's a very good point I might have underestimated. I'm indeed trying to detect currents as low as 0.1A.

I have the SCT-013-000 (100A/50mA), which, as you mentioned, has a very small output current ratio. This likely explains why I'm seeing such low readings even with a 2kW appliance.

You suggested the SCT-013-010. Does this version have a higher sensitivity for lower currents, or does it also come with a built-in burden resistor, making it more suitable out-of-the-box for low-current detection with a microcontroller? Any insights on why it would be better for my application (detecting currents down to 0.1A and up to ~10A for typical appliances) would be greatly appreciated.

Thanks!

Hi Horace,

Thanks for these excellent references! I'll definitely check out the 'ESP8266 Mains Current Sensor' and 'ESP32-4-Channel-Mains-Current-Sensor' for inspiration and best practices once I get the basic analog signal working reliably.

My primary goal right now is to understand why my current analog setup isn't producing a detectable signal from the CT, rather than immediately jumping to a pre-built solution. But these resources look very valuable for the next steps.

Thanks for sharing

Hi Wawa and Kmin,

Just to clarify for everyone: I have confirmed in my previous replies that I am using the SCT-013-000 100A/50mA version, which (as Wawa mentioned) is the one that does NOT have a built-in burden resistor, hence my external 22Ω resistor.

Regarding the discussion about different CT versions and their internal burdens: it seems the main issue might indeed be the mismatch between the 100A CT's sensitivity and my goal of detecting very low currents (down to 0.1A). Jim-p's point about the extremely low mV output for small currents seems very relevant.

Thanks for the insights!

can i use 15A AC, SCT-013-015? it will be better?

How are you clamping the power cable?

Tom.... :smiley: :+1: :coffee: :australia:

You can likely have identic results just replacing your 22ohm burden with 120ohm one.

could you give more details of the project?
are you reading AC or DC currents? what range?
Current Transformers are generally aimed at sensing high AC currents
have a look at ACS712 current sensor

My Current Setup:

  • Microcontroller: ESP32 DevKit
  • Current Transformer (CT): SCT-013-000 (100A:50mA, no internal burden resistor)
  • Measurement Circuit:
    • External 22Ω Burden Resistor (1W, 1% metal film) soldered directly between the red and white wires of the SCT's jack.
    • Voltage Divider (2x 100kΩ resistors) to bias the signal to ~1.65V (using a 3.3V supply).
    • 10nF Capacitor for filtering.
  • Wiring: SCT → Burden → Divider → ESP32 GPIO34 (ADC input). All built on a breadboard.

Current Problem and Testing:

Even when a 2kW kettle is plugged in and running, the ADC readings barely change and the measured voltage remains around ~1.54V, fluctuating only by a few millivolts. There's no meaningful difference between the load being ON or OFF. My multimeter shows practically zero AC voltage across the burden resistor.

What I've tried:

  • Double-checked wiring and burden soldering.
  • Measured voltages with a multimeter at various points.
  • Changed burden resistor values.
  • Used ADC debug printouts.

Suspected Causes:

  1. The SCT-013-000 (100A:50mA) is too insensitive for detecting low currents (like 0.1A or even a few amps), resulting in an extremely small output signal.
  2. The ESP32's internal ADC might not be accurate or sensitive enough for such a small signal, especially in an industrial setting where reliability is paramount.

Seeking Advice for Next Steps (with industrial application in mind):

  1. Sensor Choice: My initial understanding was that the SCT-013-000 is unsuitable for my needs. Is the SCT-013-010 (10A) or SCT-013-015 (15A) (or another similar lower-range CT with a built-in burden) a much better fit for reliable current detection from 0.1A upwards in an industrial environment? I'm looking for the best cost/performance ratio for industrial deployment.
  2. ADC Accuracy: Given the industrial use case and the need for accurate data for motohours and dashboards – is it essential to switch to an external 16-bit ADC module (e.g., ADS1115) for significant improvements in measurement accuracy and stability? What are your thoughts on galvanic isolation for such applications?
  3. Robust Circuit Design: Are there any recommended robust circuit designs for interfacing current transformers with an ESP32 that are suitable for industrial environments and minimize noise/errors?

My ultimate goal is reliable online motohour tracking and the ability to create dashboards for efficient production management and energy consumption analysis. Any advice or experience, especially with industrial applications, would be highly appreciated!

Thank you!

You are supposed to measure the voltage across the burden resistor (not between pin and ground). with the DMM set to mV AC. It should be about 11mV per Ampere with a 22 Ohm burden resistor.
I hope you have understood what @TomGeorge tried to tell you; only one wire through the CT, not both.
Leo..

Hi, @1martin-polzer

Can you post some images of your project?
So we can see your component layout.

Tom.... :smiley: :+1: :coffee: :australia
PS. Are my posts invisible!!!!!!!!!!!!!!!!!!!!