How do you change/save updated Z offset without calibrating?

It’s not, it uses another method tied into the HMI handling process. It doesn’t use gcode at all, the touchscreen has a special z offset variable.

G1029 D directly modifies the z_values[i][j] store containing the mesh offsets, in abl.cpp via the compensate_offset function

BedLevelService::UpdateLiveZOffset is dispatched from SystemService::ChangeRuntimeEnv, which itself is an event callback registered to the touchscreen and handled by DispatchEvent called in the main system loop.

1 Like