# "Calibrate Z-Offset" / "Tune" does not save my setting

**URL:** <https://forum.sovol3d.com/t/calibrate-z-offset-tune-does-not-save-my-setting/9842>\
**Category:** Sovol SV08\
**Created:** [April 3, 2026, 1:52pm UTC](https://forum.sovol3d.com/t/calibrate-z-offset-tune-does-not-save-my-setting/9842 "2026-04-03T13:52:34Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![Markus-N](https://avatars.discourse-cdn.com/v4/letter/m/f04885/32.png) [@Markus-N](https://forum.sovol3d.com/u/Markus-N)\
**Post date:** [April 3, 2026, 1:52pm UTC](https://forum.sovol3d.com/t/calibrate-z-offset-tune-does-not-save-my-setting/9842/1 "2026-04-03T13:52:34Z")

</div>

Hi,

After having had bed adhesion problems outside the center 30% of the build plate for a while, I’m now having them now across the whole plate. Even adhesion helpers (glue) don’t help.

So I tried “Calibrate Z Offset” again. And it looked like the “too high” pictures in the manual. So I’ve tried “Tune”. I can change the offset during “Tune”, and indeed it has a visible effect. I’m changing the value between the dots, and the really do look different. After seeing the desired result, I go to “Save & Exit”. But then nothing happens. It does not even exit.

And at the next “Calibrate Z Offset”, it looks like before I went to “Tune”. My tuning is gone.

What can I do?

Thanks

---

<div class="post-metadata">

**Author:** ![mich0111](https://yyz2.discourse-cdn.com/flex030/user_avatar/forum.sovol3d.com/mich0111/32/1176_2.png) [@mich0111](https://forum.sovol3d.com/u/mich0111)\
**Post date:** [April 3, 2026, 2:07pm UTC](https://forum.sovol3d.com/t/calibrate-z-offset-tune-does-not-save-my-setting/9842/2 "2026-04-03T14:07:36Z")

</div>

Hello,  
What filament are you using?  
The solution may vary depending on the type of filament.

---

<div class="post-metadata">

**Author:** ![Markus-N](https://avatars.discourse-cdn.com/v4/letter/m/f04885/32.png) [@Markus-N](https://forum.sovol3d.com/u/Markus-N)\
**Post date:** [April 3, 2026, 2:31pm UTC](https://forum.sovol3d.com/t/calibrate-z-offset-tune-does-not-save-my-setting/9842/3 "2026-04-03T14:31:10Z")

</div>

I’m using PLA. In between, I was experimenting with TPU, if that matters.  
Oh … one more thin I’m not sure if it matters: For a good result, I had to go into negative values in the “Tune” submenu.

---

<div class="post-metadata">

**Author:** ![mich0111](https://yyz2.discourse-cdn.com/flex030/user_avatar/forum.sovol3d.com/mich0111/32/1176_2.png) [@mich0111](https://forum.sovol3d.com/u/mich0111)\
**Post date:** [April 3, 2026, 3:32pm UTC](https://forum.sovol3d.com/t/calibrate-z-offset-tune-does-not-save-my-setting/9842/4 "2026-04-03T15:32:33Z")

</div>

Generally, PLA is very easy to print. You don’t even need to heat the bed with it.  
TPU is very different and more difficult to print. With TPU you need to print very slowly and allow the time to layers to bond together.  
For PLA, the issue is likely due to your slicer’s setting.  
Did you use the default settings of the slicer?

---

<div class="post-metadata">

**Author:** ![Lion](https://yyz2.discourse-cdn.com/flex030/user_avatar/forum.sovol3d.com/lion/32/5586_2.png) [@Lion](https://forum.sovol3d.com/u/Lion)\
**Post date:** [April 3, 2026, 4:28pm UTC](https://forum.sovol3d.com/t/calibrate-z-offset-tune-does-not-save-my-setting/9842/5 "2026-04-03T16:28:56Z")

</div>

“Tuning” is temporary for that print.  
You will have to edit the print config file in Klipper for it to be permanent.

@cardoc

---

<div class="post-metadata">

**Author:** ![Markus-N](https://avatars.discourse-cdn.com/v4/letter/m/f04885/32.png) [@Markus-N](https://forum.sovol3d.com/u/Markus-N)\
**Post date:** [April 3, 2026, 4:52pm UTC](https://forum.sovol3d.com/t/calibrate-z-offset-tune-does-not-save-my-setting/9842/6 "2026-04-03T16:52:43Z")

</div>

> For PLA, the issue is likely due to your slicer’s setting.

I don’t think this is the case here. If I try to print the same gcode file that worked previously, it fails now.

So it can only be something in the printer that changed.

---

<div class="post-metadata">

**Author:** ![Markus-N](https://avatars.discourse-cdn.com/v4/letter/m/f04885/32.png) [@Markus-N](https://forum.sovol3d.com/u/Markus-N)\
**Post date:** [April 3, 2026, 4:57pm UTC](https://forum.sovol3d.com/t/calibrate-z-offset-tune-does-not-save-my-setting/9842/7 "2026-04-03T16:57:53Z")

</div>

> You will have to edit the print config file in Klipper for it to be permanent.

Oh, that’s interesting. I’ll try that. Can you tell me from the top of your head where this config file is?

But what is even more strange to me is that I need to adjust this at all.

The printer is relatively new and it has less than 500 printing hours. At first, “Calibrate Z-Offset” always looked good, without the need to “Tune” (I started to try “Tune” today). Over time, it looked like “too high” more and more. How can this thing have a “drift” without any change to the hardware?

---

<div class="post-metadata">

**Author:** ![Lion](https://yyz2.discourse-cdn.com/flex030/user_avatar/forum.sovol3d.com/lion/32/5586_2.png) [@Lion](https://forum.sovol3d.com/u/Lion)\
**Post date:** [April 3, 2026, 5:53pm UTC](https://forum.sovol3d.com/t/calibrate-z-offset-tune-does-not-save-my-setting/9842/8 "2026-04-03T17:53:08Z")

</div>

I’m still not 100% comfortable with Klipper myself, to tell you how to make a backup then edit the file. I know how to do it, but honestly I don’t want to make a mistake.

As for it changing after 500 hours of good printing…  
When was the last time you re-calibrated your SV08…do a full calibration…gantry, bed level..??

---

<div class="post-metadata">

**Author:** ![Markus-N](https://avatars.discourse-cdn.com/v4/letter/m/f04885/32.png) [@Markus-N](https://forum.sovol3d.com/u/Markus-N)\
**Post date:** [April 3, 2026, 6:15pm UTC](https://forum.sovol3d.com/t/calibrate-z-offset-tune-does-not-save-my-setting/9842/9 "2026-04-03T18:15:56Z")

</div>

I did the full procedure directly before trying “Tune”: Gantry, Bed Mesh, Belt test (although unrelated).

Being an experienced Linux user (it’s my daily driver for work and private since \>10 years), I’m very comfortable with editing config files. 😁

As for the Klipper famlilarity … this is my second printer. The first one was a much simpler model that died of old age 😉 and it was based on Marlin. Klipper is definitely much more powerful. Marlin isn’t even suited for fast printers who need kind of 2 CPUs: One “Arduino”-like for the stepper motors and one “Raspberry”-like for motion calculations, network, web interface, …

I’ve read that the Sovol firmware is a derivative of Klipper, and that there is a way to put the “original” Klipper onto it. But because there is always a risk to brick the device, I’m not yet ready to do that.

---

<div class="post-metadata">

**Author:** ![cardoc](https://avatars.discourse-cdn.com/v4/letter/c/ec9cab/32.png) [@cardoc](https://forum.sovol3d.com/u/cardoc)\
**Post date:** [April 3, 2026, 7:48pm UTC](https://forum.sovol3d.com/t/calibrate-z-offset-tune-does-not-save-my-setting/9842/10 "2026-04-03T19:48:41Z")

</div>

> [@Markus-N](#):
>
> Sovol firmware is a derivative of Klipper, and that there is a way to put the “original” Klipper onto it.

To focus on the original topic of this thread, I’ll offer this.

Sovol EXPECTS users to do everything VIA the knob screen interface. Several of their macros don’t play well with input the web UI (mainsail/fluidd/klipperscreen).

# Sovol CoreXY Z Offset Handling

## Also applies to the Sovol Zero and the SV08 Max

This is a well-known SV08 pain point with a few distinct root causes depending on _when_ it resets. The short answer: **the SV08 has two separate Z offset adjustment paths, and only one of them actually saves.**

* * *

## How the SV08 Z Offset System Works

There are three layers involved:

For reasons unknown, Sovol chose not to use Klipper’s built in system of saving Z offset to the “do not edit” section of printer.cfg. Instead they created a new variable AND copy that OVER the value in printer.cfg when some macros run.

The `offsetadjust` value is stored via `SAVE_VARIABLE` and applied each print start via `SET_GCODE_OFFSET`. **This is the only path that actually persists across reboots.**

* * *

## The Most Common Cause: Two Adjustment Paths, Only One Saves

**Path A — LCD knob (saves):**

menu.cfg → SAVE\_VARIABLE VARIABLE=offsetadjust VALUE={…} → written to saved\_variables.cfg

This is persistent. Survives power cycles.

**Path B — Web UI (Mainsail/Fluidd/KlipperScreen) baby-step / Z offset control (does NOT save):**

Web UI “Z Offset” button → SET\_GCODE\_OFFSET Z\_ADJUST=x MOVE=1

This only adjusts the live gcode offset for the current session. On next power cycle or Klipper restart, it’s gone. **There is no `SAVE_VARIABLE` call in this path in the stock config.**

If you’re adjusting Z offset via the Mainsail interface rather than the physical knob, that’s almost certainly why it keeps resetting.

* * *

## Second Cause: `G28 Z` After the Offset Is Applied

Klipper’s `G28` resets `printer.gcode_move.homing_origin.z` to 0, wiping any active `SET_GCODE_OFFSET Z=` value. The stock START\_PRINT macro applies the offset at the end of the sequence, _after_ the final home — which is correct. But if anything triggers another `G28 Z` after that point (e.g., a QGL retry that re-homes Z, or a manual home from Mainsail mid-sequence), the offset gets wiped for that session.

This is also why some community configs add a `G28 Z` _after_ QGL (to normalize Z following gantry leveling) and then re-apply the offset afterward.

* * *

## Third Cause: `saved_variables.cfg` Not Persisting

Check that `printer.cfg` actually has:

[save\_variables]

filename: ~/printer\_data/config/saved\_variables.cfg

If this section is missing or the path is wrong, `SAVE_VARIABLE` calls silently succeed in memory but never write to disk. Every reboot starts fresh.

Verify the file exists and has content:

cat ~/printer\_data/config/saved\_variables.cfg

It should contain something like:

[Variables]

offsetadjust = -0.15

If it’s empty or missing, the `[save_variables]` config is broken.

* * *

---

<div class="post-metadata">

**Author:** ![cardoc](https://avatars.discourse-cdn.com/v4/letter/c/ec9cab/32.png) [@cardoc](https://forum.sovol3d.com/u/cardoc)\
**Post date:** [April 3, 2026, 8:09pm UTC](https://forum.sovol3d.com/t/calibrate-z-offset-tune-does-not-save-my-setting/9842/11 "2026-04-03T20:09:09Z")

</div>

I asked Google Gemini to rewrite Sovol’s configuration to eliminate use of the hidden variable and use ONLY the Z offset in the “do not edit” part of printer.cfg.

I do not own a SV08 so these are untested.

To install, use Fluid or Mainsail to rename the 3 target files by adding .old to the end. Then upload the 3 edited files. Save and restart

[SV08Macros.zip](https://forum.sovol3d.com/uploads/short-url/yqvKoqK4bgoJZmqBu98fgRGlPjS.zip) (3.1 KB)

* * *

Optional (but highly recomended) [PLR and ‘mcu’ shutdown: Move queue overflow](https://forum.sovol3d.com/t/plr-and-mcu-shutdown-move-queue-overflow/9701)
