I have had the same issue after upgrading the firmware to the latest one. It worked fine for almost a year with the original firmware, but I wanted the support for change filament gcode… Now seriously considering downgrading it back. Or throwing the machine away.
They changed the frimware to save the modified z-offset to eprom, so it could be remembered and applied in case of a power failure. Which is fine as such, but now there is no way to reset it.
To make things worse, there is some instance somewhere (read: bug), where it either ignores the saved z-offset or compensates for it twice, causing a mismatch between the actual measurement and what is saved. This mismatch can then grow over time.
What is totally catastrophic, is that automatic calibration does NOT reset the offset and fix the mismatch. At one point it started printing over a half millimetre too high (the plastic not even reaching the bed) directly after calibration. I calibrated twice, just to be sure, same result. And then I ran to the z-offset limit where the nozzle couldn’t be lowered any more, while it still printed in the air directly after calibration!
After fiddling around in frustration I somehow managed to cheat the machine. I can’t remember what I did exaclty, but I started a temporary print, and think I adjusted the offset in the other direction to get more room for adjustment and then stopped and recalibrated. Whatever I did, I did in small steps to avoid hitting the nozzle into the bed, and I got it to a point where it is close enough, and then let it be.
I have a suspicion, but because I don’t want to get it messed up again, i’m not gonna touch it. And considering that this was not a cheap machine, I expect it to be fully functional without me acting as a beta tester. I have had to help out quite a lot with boring software testing in work and even if I got paid quite nicely I still hated it. I’m not going to do it for free in my freetime…
But if someone else has the time and will to troubleshoot the cause of the issue, my suspicion is this: there may be a difference in how it acts, depending on whether you adjust the offset from the “adjust” button before starting the print or if you adjust the offset on the fly after the printing has started (by swiping the screen and then adjusting the value). Changing between PETG and other plastics I still may have to up the nozzle by 0,05 mm for PETG. But now I have only done it on-the-fly if needed during the printing of the skirt and the offset has not crept away in a while.
I hope Snapmaker really tries to find the cause of the issue or revert back to functioning code. After all, we can live with a print that ignores a modified offset in case of a rare power failure, rather than regular frustration trying to get the bed calibrated.
Or add a setting to choose which behavior you want (old or new). In my country we very rarely have power outages, and in the few cases we do have, they are due to exceptional weather which you know in advance. I can always postpone a large print job that relies on a modifided -offsets if they forecast an exceptional storm, but I cannot constantly waste hours trying to get the damned machine calibrated every time I change nozzle or filament.