How to measure small amounts of power with emonPi

I’m looking at the emonPi for monitoring power, temperature and humidity at a number of our remote sites. My concern is that these sites are only using a couple of hundred watts each - say 1A of current, well into the noise floor for a 100A CT.

I think my only option here is buying a lower current CT (like this) which has a voltage output, pulling it to pieces and removing the built in burden resistor, then replacing the burden resistor on the emonPi with an appropriate value (this looks to be a surface mount component, potentially making it tricky…)

Am I correct that this is my only/best option, or am I missing something? Replacing surface mount components potentially takes this out of the realm of something we’d really want to do, which is why I’m looking for alternatives…

I cannot speak for the precise accuracy of the existing CTs but the granularity at the 1A level and 240V seems fine on the emonTX normal inputs, and there is a standard “high sensitivity” CT4 input too. The feeds I have of my solar generation and grid consumption show sub-10W changes quite happily.

Interesting - thanks for that. Have you compared the emonTX readings at these levels with something else to see how accurate they are? The SCT013 is only rated for linearity between 10% and 120% of it’s max current (source) and I saw a couple of posts around it becoming pretty inaccurate under 5% (though I can’t find them now.)

Additionally, it looks like the ADC on the ATmega328 is only 10 bits, meaning that assuming 100A = full input, you have ~10 steps per amp of current, or 1 step per 100ma/24W (neglecting PF.) I would guess the changes of less than 10W relate to averaging over time or PF changes maybe?

I will have to let others comment on the tolerances and accuracy, but as an example here are a bunch of outputs from this morning for my house “base load”:

1462958100, -3.0
1462958110, -22.0
1462958120, -15.0
1462958130, null
1462958140, 7.0
1462958150, 2.0
1462958160, null
1462958170, -25.0
1462958180, null
1462958190, 15.0
1462958200, 6.0
1462958210, 23.0
1462958220, null
1462958230, null
1462958240, 41.0
1462958250, -103.0

Update/edit: Sorry, the previous were processed value, the above are what the emonpi sees from CT1 - the negatives are from solar export.

(emonTX CT1, default firmware from last year)

I think @peter might be answering the wrong question.

The burden resistors are indeed SMT, but there are holes for wire-ended resistors adjacent, so it’s only a matter of removing the fitted burden that might be a minor problem. You could fit a different CT, the problem is finding one that will give you 3.3 V p-p output with the maximum current that you’ll measure, i.e. its (most often unpublished) VA rating is the limiting factor. I believe Robin Emley uses either the 20A:10mA version here: or this 20A:10mA one from in his energy diverter.

The calculations are in Building Blocks, but if you want help with them, post details of your CT and maximum load current.

Awesome, thanks all. Might have to buy one and have a tinker, see how difficult the process will be…

If the burden resistance needed can be made by putting a wire-ended resistor in parallel with the SMT resistor (provided the wire-ended resistor vaule needed to do so, is available) the SMT resistor can be left in place, correct?

It’s unlikely that the required resistance will be lower than the fitted SMT resistor, so in all probability the fitted one will need to be removed. But if you can make the required value with two in parallel, do so by all means.

(I did suggest to Glyn when designing the V3.4 that he provided a link on the PCB that could be broken and resoldered, but it didn’t happen.)


I would want to use a 20A or 25A sensor as well and was curious if you made the 5A sensors work?



If you know for sure that those circuits can only take a few amps, simply wind the sampled wire through the C.T. a few times - every turn is an increase in sensitivity e.g. 5turns makes the C.T. into a 0-20A device for free. Then fix your calculations allowing for the multiplier.

1 Like

That might not be feasible, but if it is, it’s probably by far the best way to increase sensitivity. It is, after all, how I tested the CT’s at currents (in truth: ampere.turns) up to 250 A.

1 Like