DIY 3-phase board with onboard VT's

I am in the process of designing my own board that connects directly to Danish 3-phase 230v and if space permits be mounted in a DIN rail housing so it can be installed in my breaker box.
The plan is to use use three of the smallest 9V PCB mount transformers i can find, like [PE2006-M] ( and a Hi-Link hlk-pm03 to power the electronics.

I will remove CT channel 13+14 obviously. But will it be better to use the ACBIAS signal used for 1-phase VT instead of the BIAS signal currently used for channel 13+14?
The op-amp is just configured for voltage following, so the BIAS and ACBIAS are the same voltage.

Can IoTaWatt measure 400V loads (Voltage between two phases) or is it limited to single phase loads?
I do not have any 400V appliances yet, so not really a problem but nice to know.

Thank you for this amazing project!

Best regards


Hello Asbjørn,

That’s an aggressive project. Good luck. It sounds like you have four-wire 230V/400V three-phase. There are some IoTaWatt three-wire 230V installations in scandinavia.

They are the same. It should make no difference. The LM358 is a dual op-amp so I had isolated the channel 0 bias, but newer designs simply use one.

Do you have any idea what the phase shift is for those? I would guess it’s very high. I’d also look at whether there is any waveform distortion.

Yes, it can do that, but it uses the derived reference logic scaling and shifting the 230V signal for reference.

Thank you for your reply.
The datasheet for the transformer is very limited. I guess I will have to try and measure the phase shift when I get my hands on one and have look at the waveform distortion.
I see the software has phase shift compensation. I just need to measure it.

You mention a newer design than V5 on your github. Anything you would like to share? I might as well get all your improvements implemented on my board.

You have a catch-22 there. I measure VT phase shift very accurately using an isolated IoTaWatt with a voltage divider on the direct line. (Don’t try this at home). The IoTaWatt firmware has an undocumented command to measure phase shift between two inputs.

I know there are other methods, and they have their merits, but the shift measured by the IoTaWatt is what is needed to correct the signal as used by the IoTaWatt.

It’s the ongoing ESP32 effort. Still a lot of work to do and although I have working prototypes, I’m still improving the hardware.

Maybe I am naive, but is it not possible to measure the phase shift with safe voltages using a signal generator (Sine @ 50Hz) and comparing in- and output with a scope?

At the end of the day, you need to compare the 230V signal going into the transformer to the ~9V signal coming out. I don’t have a signal generator, except for a 230V 50Hz sine-wave inverter.

I just thought of an idea to safely determine the phase shift in a transformer.

Instead of using your dangerous voltage divider setup. You could properly use a CT with a load you know has a powerfactor of 1.00. Like a kettle or toaster.

Then your undocumented function can determine the phase shift directly. `
This could be a safe way for users to calibrate transformers.

BTW: Can your firmware run without a VT? I know power factor will not work but it should be possible to give a power or current estimation anyway.
This would make it possible to make a minimalist version with only a few channels to measure a single device.
For home automation purposes it would be nice to know if the oven is on or the washing machine is done.

While the unity power factor eliminates any reactive phase shift, the CT itself will have a phase that is a function of the primary current of the load. If you know what that shift is for the load you are using, you can measure the VT relative to the CT and add the CT shift to the result.

A better way might be to do the same using another VT with a known shift.

IoTaWatt cannot measure power without a voltage reference. The fundamental operating principle uses the AC frequency to schedule tasks.