Arduino Nano+ACS712 strange values with 3D printers

So far I have implemented several ACS712 AC measurement nodes around the house. After calibration the accuracy is around 10-20W which has been good enough for me. However now I'm really having a trouble to understand why the values it provides are way of the chart. Information about this node:

  • My computer room has 2xPCs, Xbox, 2x3D printer, Raspberry 3 running Domoticz, Gigabit switch and home theatre amplifier

  • There comes one 230V/50Hz power intake to a small UPS. UPS provides backup power only to the switch and the other PC. All other devices are connected only through UPS power surge protection outlets. There are couple of multiple output extension power cords to achieve this.

  • Now if I use anything else than the 3D printers the power meter shows realistic values. If I turn either of the 3D printers on the values goes all crazy. I have used my Belkin power meter as reference point and with 3D printer on it shows around 200W and arduino +680W. If I turn the both printers on, the values goes even more separate. Blink node implemented to the electric meter of the house backups Belkin's "reference" values.

  • I have tried to separate the arduino power meter so that it is at least one meter away from the 3D printers but no difference.

  • The other 3D printer (Kossel) uses normal computer supply and the other (official Prusa) probably quite similar. Common thing is that they both are open type printers and they have the same hotends. Hotend takes 12V 5A and Kossel heated bed around 12V 11A, Prusa probably something similar.

  • I have tried to use different exension cords, pluggin in different apparatus (hair dryer is my common calibration device) but currently I have no idea what's going on. Only thing I could imagine would be something related to the magnetic fields these quite much DC current consuming printers generate. Arduino is currently sitting about one meter from them, but could it still somehow disturb the ACS712? Also I have checked that the Arduino Nano's 5V voltage stays very stable and shouldn't affect the calculations.

Edit. I plugged Prusa to another wall outlet about one meter away (behind phase/fuse though) and turned it on -> no affect to the Arduino sitting in the same place. So it cannot be my magnetic mumbo jambo theory. So now I'm even more lost...do they generate some noise to the line or...??? :slightly_frowning_face:

Must be picking up line-borne interference in the analog input attached to the ACS712 I suspect. 3D printer
power supplies are big switch-mode ones?

Perhaps all the anti-surge outputs are commoned after the mains filtering, so no isolation
between them, just from the house mains noise/spikes?

Not sure, but now I have pinpointed the problem to the 3D printers. When plugging ACS712+Arduino+Prusa MK2 alone I can replicate the problem: ACS712 shows around 690W consumption when the maximum Prusa can actually take is about 180W. When using my old faithful hair dryer it shows correctly 430W, 820W and 1400W. So the UPS is not the problem.

Found help from MySensors forum:

Basically it seems that Prusa MK2's power supply generates extremely spiky reactive load. By using Emon libraries and some finetuning managed to partially adjust the skew, but still in worst case Arduino monitored Prusa load can be 100W off the actual usage. All the other devices in the same setup differs max 20W of the reference values.