# HLW8032 energy meter circuit showing power usage at no load

I am designing an AC energy metering circuit. The circuit has to measure voltage, current, power, power factor and energy used for two channels (from the same source). The HLW8032 transmits 24 bytes with information on the above quantities every 50 ms.

I have designed a circuit based on this chip following the example application circuit given in its datasheet. A difference, however was in the shunt resistor. I have cut a rectangular piece of copper, drilled some holes and I am using it as my shunt.

To calculate energy usage, the resistance of the shunt should be known. I arrived at this value by connecting a resistive load, measuring the current and getting the appropriate current data values from the chip. The formula given in the datasheet involves current = (some data in a register/some other data in a register) * (a factor related to shunt resistance)

working back using the current I measured from my multimeter, I got a value of 0.145 mΩ.

Now the actual problem: energy measurement. The chip has a register that holds a count relating directly to the energy consumed, e.g. 950 pulses for 10 Whr.

When actual loads are connected the circuit works as expected, measures power, current and energy consumed. When there is no load connected, the register increments, indicating that there is a tiny load connected. Working back from the pulses I estimate it to be ~3 W. The current value at no load also does not make sense.

My concern is that this will lead to huge errors as the energy usage accumulates.

Is this because the shunt is a custom piece of copper? Or is it because the shunt value is too low? Is there a problem with copper-solder joints (thermal emf? Seebeck effect?)? Is this because of noise and will disappear when shielded? I tried cleaning all the residual flux from the chips in case they caused some leakage/interference but still no change.

Another issue is that the rate at which it counts up at no load is different for each chip. and the value for a particular chip has a strong degree of variation. This rules out the possibility of just subtracting a certain number of counts per hour. What can I do to solve this issue.

The circuit is as follows. the only difference is that I have a relay just before the load.

An English datasheet for the chip is here: [Datasheet on github] 2 LCSC datasheet

My implementation is on an etched pcb, handsoldered The chip BL0937 is pin compatible with HLW8032 on the AC side, Using it in the schematic shouldn't make a difference. Also ground and neutral are connected (bodged after printing)

• Please add a working link to the English data sheet preferably directly from the supplier's website and not a 3rd party. Commented Oct 27, 2023 at 19:30
• Here's one from LCSC datasheet.lcsc.com/lcsc/…
– k.h
Commented Oct 27, 2023 at 19:39
• You will always have some zero-point error. What full scale current have you designed for? Commented Oct 27, 2023 at 20:03
• Have you tried swapping live and neutral to see if the error reduces? Commented Oct 27, 2023 at 20:07
• Noise pickup on the current sense wires could increase the zero error. Are the lines twisted or shielded? It is common in these types of measurement to put a threshold in software so that if the current is too low the resulting power measurement is set to zero. Commented Oct 27, 2023 at 20:17