Community
OpenEnergyMonitor

Community

Emontx Shield - Understanding Calibration and Burdens

This weekend I got my new EmonTX Shield connected. I can’t say enough good things about the OpenEnergy project. Between the documentation, explanations, and hardware, this group/project is terrific.

I’m in the US with a split phase 100amp service so two 50a mains coming into the building although we never exceed 20amps on either leg. I’m mostly concerned with accurate low wattage (0-400w) measurement and tracking. I attached the EmonTX shield to a Arduino Due for better analog resolution. In the firmware I set the output be a json string over serial so that it can be inserted into emoncms with a few lines of python to a Pi attached via USB – this works great.

I have a few questions and please excuse the long post:

I’m confused about the correct burdens. I got two SCT-013-030 (30amp) attachments which have an internal 62 ohm burden so I removed two of the 33 ohm burdens on the emontx shield and calibrated. 62 ohm matches the numbers produced by the burden calculator linked to in the Learn section but I’ve read elsewhere on this forum that 100ohm burdens would be preferable for 30amp CTs using the shield. What am I missing?

Aside: One of the CT attachments had a bad internal 62ohm burden and it drove me nuts for a bit trying to find out why that channel on the emontx was giving bad readings. I switched to using a SCT-013-000 on another input which still had the shield’s 33ohm burden.

It seems all the CT transformers in the SCT-013-0x0 series are identical except the for the burden resistor and slight reduction in secondary turns. The circuit boards in these have solder pads for the resistor, even if it isn’t used in that model. For safety, isn’t it better to solder the burden resistor directly in the CT? (Also, is there a preferable wattage for this resistor?)

When calibrating the Emontx Shield I used a “1500w” (1045w actual) space heater and a plug-in meter. I found the AC transformer shipped from the OEM store needed to calibrated to 150.1 to give the correct voltage reading. (Using the 130 figure in the code comment had it 10v too low.)

I wasn’t able to get the phase calibration correct, although I didn’t spend that long at it. It seemed realPower and apparentPower where always within 4-5w of one another. The documentation says phase calibration should be 0-2.0 – is that correct?

Finally, is it possible to flip the 1/8" surface mount connectors to the top of the shield? This would help with mounting. (I haven’t followed the traces.)

I don’t know the answer to many of your questions, hopefully others will chime in, but a couple of points…

Did you remember to mod the txshield for 3.3V operation? We had to do that when we used them on the Nucleo boards and I imagine you’d need to do the same with the Due. There are some pics of the mod in this thread.

I believe the phase calibration compensates for the time difference between consecutive ADC samples. analogRead() on a standard AVR Arduino takes a little over 100 usecs but it’s probably a whole lot faster on the Due, so I wouldn’t expect the absolute number to be directly comparable.

Thanks for the link! I didn’t make any modifications to the voltage pins although it would be easy to do so. My electronics knowledge is limited, so is this change needed if already using (and calculating for) external burden resistors @ 3.3v? I’m not installing a radio module.

I think this makes me understand the answer to my question regarding 62/100 ohm burdens for a 30amp CT. For the one 100/50ma CT i’m using, it would have a range of 70amp with the on-board 33 ohm burden when the analog range is 3.3v, correct? (And 62ohm is correct for a 30a/1v CT.)

Without that mod I think your mid-rail will be sitting at 2.5V instead of 1.65V which means you’ll have more dynamic range on the negative swings than you will on the positive swings… 2.5V on the negative and 0.8V on the positive.

You’ll also be exposing a bunch of other Due input pins to 5V via various pull-ups on the shield.

Thanks. Time to snip a pin!

I’d guess… an understanding!
The burden is there to convert the current (it is a current transformer) into a voltage. I have two numbers that I remember for the voltage that the burden resistor must develop across it: 1.1 V rms for the emonTx with an ADC working over the range 0 - 3.3 V, and 1.6 V rms for the Arduino & emonTx Shield with an ADC working over the range 0 - 5 V. You can calculate the ideal burden using those numbers. (They include an allowance for component tolerances, and if the value isn’t very close to a preferred value, always choose the next lower resistance.

Most of the SCT-013 range of C.T’s have an internal burden, so their output is a voltage, so you don’t need a second external burden. The output is 1 V rms at rated current, so it doesn’t use the full input range of the 5 V Arduino. These have 1860 secondary turns. The exception is the SCT-013-000, which is a true current transformer, and has 2000 secondary turns. It also has a TVS (in effect two back-to-back zener diodes) to hold the voltage down to a safe value in case the burden is missing or disconnected.

You’re unlikely to get real and apparent powers exactly equal, because of the voltage distortion introduced by the phase adjustment algorithm itself.

I don’t understand what you’re saying here. The assembled Shield SHOULD look like this:

If you have put the jack connectors on the other (component) side, it’s wrong and you will have problems mating it with the Arduino. And the connections to the tip and ring will be swapped, giving you further problems.

Thank you Robert. I understood the purpose of the burden resistor but I was confused about calculating that value. You’ve helped answer that question.

On the calibration page:
https://learn.openenergymonitor.org/electricity-monitoring/ctac/calibration
Step #4 says to adjust the phase value so that “real power and apparent power read the same value”. If that’s difficult or impossible, how close should they come to be considered an acceptable value?

The opposite is true for the case of a Arduino Due – the jack connectors prevent the shield from mating unless you extend or offset the shield. I had not checked the pinout of the 1/8" connectors so I didn’t know if they were symmetrical with the middle pin being the tip but you’ve confirmed that isn’t the case.

Phase compensation:
Provided that the current you’re measuring has a reasonable power factor, it makes little difference. The phase error becomes very important when the load is close to a pure reactance - and in an extreme case, it could reverse the sign of the power.

Jack sockets:
As you need to put the socket on the “wrong” side, the easy fix is to link tip and ring on the socket. This is possible because the ring is unused.

Yep, and not just the Due, but any of the range that have the extended headers down the bottom. The headphone jacks and the power jack all snag on those extra headers. For those that haven’t seen a Due or 2560 here’s a pic:


LtoR: Due, 2560, Nucleo, Uno

@Robert.Wall do you have a view on that? I’ve often wondered if it’s better from a noise perspective to be running a current or a voltage down the relatively long CT cables.

I’ve never really thought about it. There’s insignificant voltage drop due to the input current of the ADC if the burden on at the c.t. end, and the c.t. will automatically adjust for the voltage drop in the cable if the c.t. is at the ADC end.

So the question really is, is the noise source an electric field or a magnetic one, and how effectively does each couple into the cable to produce a voltage at the ADC?

My instinct is to say it’s the burden at the ADC end, but I might be wrong.

Often a point of confusion, the term 100 Amp service is somewhat misleading. It refers to the ampacity of your load center (circuit breaker panel) vice the amount of current available.

Here’s some additional info:

That’s why I was thinking two 30amp C.T., one for each main to the breaker panel, would be more accurate rather than the normal 100amp C.T.s. given our minimal electrical usage. One nice thing about this configuration is that it allows someone to monitor the even and odd circuits in the panel separately. As it turns out, ~80% of my typical load is on the odd side so I’ll often see a split of 30w/280w in the evening.

The term for that is leg. The term mains is generally taken to mean the electrical supply as a whole.
(in the UK, they refer to them as incomers. In the US, we call them Service Entrance Wires)

Correct. The idea is to shoot for a CT with a rating that’s as close to the maximum current you’re going to measure/monitor plus a little for headroom. Given your ~20 Amp “max per leg,” a 30 Amp CT
fills that bill nicely.

OEM was designed as a whole house monitor, but yep, you’re correct WRT even/odd breaker
monitoring.