Help for calibration on Emonlib on ESP32

Hello all,

I’d like to monitor my house current consumption but I have some troubles calibratiing my test program.

My house hava a 200Amp electrical pannel (I have a 18k Watt furnace). So the CT I am using has been found on internet and is a KCT25 and is a 200Amp.

I am testing it with a small room 1000W heater and a circuit found on internet and My house voltage is 119.1V

I downloaded EmonLib library and tested my circuit with the current_only sample program. When The heater is Off or diconnected, I have a small fluctuating value and when I switch it On, a new value but not the real current consumption (see graph)

here is the code I am using

// EmonLibrary examples, Licence GNU GPL V3

#include “EmonLib.h” // Include Emon Library
EnergyMonitor emon1; // Create an instance

void setup()

emon1.current(34, 119.1); // Current: input pin, calibration.

void loop()
double Irms = emon1.calcIrms(2000); // Calculate Irms only

I am not at all surprised that you cannot read sensible values. Your c.t has a 5 A output, and you have NO burden resistor. The c.t. will be attempting to drive 5 A into the ESP analogue input, and it will try to generate as high a voltage as necessary (subject to the insulation breaking down) to achieve that. It is very likely that you have damaged or destroyed the input to the ESP32.

What you should have done is provide a burden resistor, which you connect directly across the secondary winding of the c.t., so that, at the rated current of the c.t. (200 A in the primary circuit, 5 A in the secondary winding, the current flowing in the burden will give a peak to peak voltage that is close to but less (around 5 - 10% less) than the input voltage span of the ESP32.

For example, if you want 1 V peak-peak to send to the ESP 32, that equates to about 300 mV rms. To develop 300 mV with 5 A flowing, the resistor value would be 0.06 Ω, and the power rating would be at least 1.5 W, a 3 W resistor would be appropriate.


Thank you for your response Bob… I hope my input 34 is correct… Do you know how can I test that?

I don’t think 0.06 Ohm resistor exist, can I use a 1 Ohm?

Hi Thierry,

I’m in the US, so am on the same type of grid you are.

200 Amp service is quite oftem very misunderstood. More info here:

Your 18 kW heater draws ~75 Amps, so you might be better served by a 100A:333mV CT.
(150A:333mV CTs are also available) The downside is finding one with a large enough wire-window to accommodate your Service Entrance Wires.

Info on said CTs here:

The table is about half-way down the page.

1 Like

Do you mean me? I’ve never been called that.

You would need to have one manufactured, or make one yourself - use a strip of metal whose resistivity you know, ideally having a low temperature coefficient (of resistance), and calculate the size to give the resistance value you need.

Or to put it another way, start with a more appropriate c.t., as Bill infers. That 5 A c.t. is intended to drive a 5 A moving iron meter, scaled 0 - 200 A; it’s not a good choice for an electronic instrument.

1 Like