OpenEnergyMonitor Community

Calibrate voltage on emonPi

I got the emonPi the other day, with a pair of the 200A CTs. Setup was pretty straightforward, it seems to be monitoring my home power usage, making pretty charts and graphs, and all that good stuff. :+1:

However, voltage readings are way off. For a direct comparison, I just pulled the cover off the main panel and measured voltage there with my Fluke DMM–it measured 124.1V, compared to a reading on the emonPi of 112.1. That’s a difference of about 10%, which doubtless means all the power figures read 10% low as well.

I’ve followed the docs at Use In North America - Guide | OpenEnergyMonitor, and made this change:


…and I think this may be the problem. Nominal mains voltage in .us is 120/240, and has been for over 50 years. If the system is expecting 110 VAC to equate to 9 VAC out of the transformer (the “voltage sensor adapter” you sell, which I bought as part of this kit), and it’s actually 120 VAC-to-9 VAC, that would seem to explain what I’m seeing.

But regardless of the cause, how do I fix this?

I’m afraid you’re wrong there. “110V” is not a number - it’s a flag that is passed through from the Pi into the Atmel328P analogue front end. The actual calibration voltage is set in there. I think the explanation for “110V” is that’s the voltage for portable tools (normally as 55-0-55 V) and a common control voltage here in the UK.

The easy fix is to use the “scales = …” line in emonhub.conf.

You have this section for the emonPi itself, it is Node 5:

    nodename = emonpi
        names = power1,power2,power1pluspower2,vrms,t1,t2,t3,t4,t5,t6,pulsecount
        datacodes = h, h, h, h, h, h, h, h, h, h, L
        scales = 1,1,1,0.01,0.1,0.1,0.1,0.1,0.1,0.1,1
        units = W,W,W,V,C,C,C,C,C,C,p

Those 4 lines all match (left-right), but because the calibration is applied a long time before the numbers get here, you need to change everything by the same factor - all 3 powers and the voltage.

So let’s say your voltage need to be raised by 10.7% (= 1.107 ×) you change the three “1” values at the start (for the 3 powers) to 1.107, and the 4th value, 0.01 to 0.01107.

If you find the current values also are wrong - which of course they will be if they are 200 A : 50 mA c.t’s, then you need to multiply each of the 3 powers by 2.0× in addition to the factor for the voltage.

The hard fix is to download the sketch for the front end, edit the calibration in there and reload it. Once you’re set up to do it, it’s easy; setting everything up to begin with is not trivial.


Actually, it isn’t. The no-load voltage of that (and at 1 mA, it is effectively operating at no-load) is 12.0 V ±5% for a 120 V input. But even taking the resistor divider chain into account and the ADC reference voltage, that still doesn’t reach your 10% error. Was the a.c. adapter plugged in at a point where it did not share a heavily-loaded cable, and is your DMM in calibration? Those are factors that need to be taken into account.

1 Like

Well, it was a reasonable guess. The alternative is just that the calibration on this system (on my copy, at least) is just really bad–but if that’s the case, that’s the case.

By 2x, or by 3x? The product page for the CTs says 3x, which is what I’ve been using.

It’s measuring 11.38VAC open-circuit.

Yes, the only load on that 1800W circuit, other than whatever the emonPi draws, was about 20 watts of lighting. Assuming 10W for the emonPi, that’s only about 250mA on that entire circuit. To account for a drop of 10V, if I’m applying Ohm’s law correctly, would mean a resistance of 40Ω from the circuit breaker terminal to the power point.

I don’t send my DMMs to a calibration lab, but I just checked my Fluke against two Brymens, all three of which are True RMS meters (not that that should mater on mains power). All three read 124.4nV (with some variation in the second decimal) at the circuit breaker terminals feeding the emonPi, while the emonPi was showing 112.28V.

To rule out issues with circuit load and the like, I just probed the receptacle where the transformer has been connected. Still reading the same, 124.4VAC.

By 3×. What I wrote is still correct:

But those you have are not, they are 200 A : 33 mA.

So the a.c adapter you have seems to be out of tolerance - unless the spec has changed and nobody has told us - it appears to be 8.5% low. That still leaves ~ 2% unaccounted for.