If you want me to see the exchanges, yes, otherwise do as you wish.
It might well appear in the logs - I don’t know because I’ve never needed to look! If it does reach the log, you should see something like this
Cal: k0 -0.53 0
But note - if it is sending recalibration commands, it’s either sending the correct calibration again whereupon the correct voltage is reported, or (possibly more realistically) it’s not saving the “new” calibration to EEPROM and then there’s some mechanism causing it to restart and restore the correct calibration from EEPROM.
If one or more voltage amplitude values are wrong, then a very small calibration adjustment can be made (deliberately
) - but if you change it to -0.53 and then save the settings, you will have permanent wrong negative voltages and powers. If you do not save the settings, they remain in effect only until the next restart.
What I was having difficulty understanding was
a. all three voltages were affected at (or very nearly at) the same instant,
b. all three voltages are affected by the same amount (or very nearly).
even though each channel requires a separate command - but when I look at the sketch, it appears @TrystanLea has not separated out the three voltage calibrations and all three use the same value!
c. all three voltages return to the correct value at (or very nearly at) the same instant, though this can be explained by a reset/restart of the sketch.
d. despite the above, there does not seem to be a pattern for when it happens.
Looking at what needs to be sent
++[cr][lf]
or +++[cr][lf]
k 0 -0.53[cr][lf]
or k 0 -0.53 01234 [cr][lf]
{the 01234
etc is ignored }
then later
r[cr][lf]
might be enough to cause a restart and restore the correct calibration, or it might need
++[cr][lf] *or* +++[cr][lf]
r[cr][lf]
to cause the restart.
+++
(the ‘password’) can easily appear as a separator or heading of a message intended for humans to read, so in hindsight it’s a particularly bad choice (not as bad as ***
) - we had a similar problem with the serial interface and the Huzzah ESP8266 Wi-Fi module sending “chatter” intended for humans which was interpreted by the emonTx V3.