Well Sovol Said the will send me a new bed and the new bed comes with spring for to help adjust the bed . Not sure if that is a good thing or bad thing . There still trying to figure out why my z offset changes after power cycle
If you download your klippy.log, zip it and post here I’ll see if I can untangle your Z offset issue.
I will post it on here tomorrow
Hereis my Klippy log
klippy sv08.log (441.6 KB)
Unfortunately your log “rolled over” not long before you grabbed it. The diagnostic data I’m looking for wasn’t included.
You can grab an older one (has the date tacked onto the end of the filename) or calibrate and start a print. You can cancel the print as soon as it finishes the purge line.
So you want me to do a z calibration from the screen then get the klipper log correct
Here you go
klippy 2.log (9.7 MB)
Weird.
Have you made ANY configuration changes since receiving your printer?
Your machine is apparently filtering the data going into klippy.log. ChatGPT says there is a setting for that but won’t tell me where to look to fact check.
I’m headed to the Sovol wiki to dig through the firmware updates because Sovol doesn’t update their Github.
the onlyI have dont is I had to update my firmware to get it to boot when I first got it .I have tried to do the zoffset by screen and by klipper thats it .
Where did you get the firmware update file?
I’m active on General Discussion - Klipper and I’ve looked at at least 100 klippy.log files and every one copies the “real” configuration to the log. Klipper “flattens” the configuration by inserting all the [include] files into a single runtime configuration file.
Sovol sent me a link to download
Can you give me the link or upload the file here?
https://www.sovol3d.com/pages/download . This what they sent me
That update is quite old… and doesn’t appear to have the klippy.log filter in it.
I’m stumped.
If you want use fluid/mainsail to download every .cfg file from your printer and zip them into a single archive and upload here. I’ll manually flatten them into a single configuration and try to debug them.
I will do that can you tell me how . Sorry I am new to klipper . I am still trying to get use to it .
Make a new empty folder named “forum help”, then:
- Open the printer web UI
- In a browser, go to http:// {IP address} (example: [http://192.168.1.50]).
- Identify which UI you’re using
- Fluidd typically shows a left sidebar with “Macros”, “Files”, “Console”.
- Mainsail has a sidebar with “Files”, “Console”, and a top navigation similar to a dashboard.
- Both have a “Files” (or File Manager) area; proceed to that.
- Navigate to the configuration directory
- Look for folders named “/printer.cfg”, “/config”, or “/config/klipper” and for files with .cfg extension. Some setups keep the top-level printer.cfg in the root of the web UI file list.
- If you don’t see .cfg files, check an “/home/sovol” view via the UI file browser (some UIs show mounted storage).
- Download single files from the UI
- Click a .cfg file name to open it; use the download button or browser “Save As” to save the file into “forum help”.
Once you have them all zip the folder and upload the .zip file here.
i think this is what you are asking for
config-20260328-152517.zip (52.7 KB)
Yes that is what I was looking for.
I can find nothing wrong in your setup. A deep dive into AI assisted web research finds a couple things that may help.
The stock macro sets Z=0 to the height of the load cell button. At the speed the gantry is moving this can be off by as much as 0.4mm. Also your build surface is likely not exactly level with the button. It seems many users NEVER run [gcode_macro _CALIBRATION_ZOFFSET]. Instead they do a QGL, home Z, paper test, save config. That will last until you run [gcode_macro _CALIBRATION_ZOFFSET] which wipes out the saved offset and makes a new one.
If you want a more elegant solution:
Replace your [gcode_macro _CALIBRATION_ZOFFSET] with the one below.
[gcode_macro _CALIBRATION_ZOFFSET]
# User-defined fudge factor: nozzle-to-bed distance minus nozzle-to-force-plate distance.
# SIGN CONVENTION:
# A POSITIVE value (e.g., 0.1) means the nozzle is too HIGH from the bed;
# it will shift the offset DOWN (nozzle closer to bed).
# A NEGATIVE value (e.g., -0.1) means the nozzle is too LOW (squishing);
# it will shift the offset UP (nozzle further from bed).
variable_fudge_factor: 0.0
gcode:
{% set svv = printer.save_variables.variables %}
M117 Prep Calibration
QUAD_GANTRY_LEVEL
M140 S65
CLEAN_NOZZLE
M117 Fast Probe (5mm/s)
# 1st Measurement: Establish a rough baseline
# We use a faster speed to find the plate quickly.
Z_OFFSET_CALIBRATION PROBE_SPEED=5
# Temporarily set this trigger point as Z=0 so our next moves are relative to the plate
G92 Z0
M117 Relocating...
G0 Z5 F300 # Raise to Z=5 at 5mm/s (300mm/min)
G0 Z4 F60 # Lower to Z=4 at 1mm/s (60mm/min)
M117 Precision Probe (0.1mm/s)
# 2nd Measurement: The 10Hz sensor update occurs every 100ms.
# At 0.1mm/s, the travel per sample is only 0.01mm, drastically reducing scatter.
# We start the slow crawl from Z=0.4mm to minimize wait time.
G0 Z0.4 F6 # Slow to 0.1mm/s (6mm/min)
# Execute the final precision calibration
# This overwrites the first "fast" measurement in Klipper's memory
Z_OFFSET_CALIBRATION PROBE_SPEED=0.1
# Apply the user-defined fudge factor and the persistent offsetadjust
# Z_ADJUST adds these values to the freshly calculated hardware offset
SET_GCODE_OFFSET Z_ADJUST={fudge_factor + svv.offsetadjust|float}
{action_respond_info("Calibration Complete. Precision touch at 0.1mm/s.")}
{action_respond_info("Applied Fudge: %s | Saved Adj: %s" % (fudge_factor, svv.offsetadjust))}
Analysis of the Logic
- Overcoming the 10Hz Limit:
- The Problem: At your original speeds, the nozzle travels significantly between the load cell’s 100ms updates.
- The Fix: By dropping to $0.1\text{ mm/s}$ for the final trigger, the “gap” between samples is reduced to $0.01\text{ mm}$. This eliminates the $0.4\text{mm}$+ scatter you were seeing in the logs.
- The “Fudge Factor” and Sign Convention:
- The variable
variable_fudge_factoris added at the top. - If your prints are consistently too high (air printing): Set this to a positive number (e.g.,
0.1). This tells Klipper the “zero” point is actually further down, resulting in the nozzle moving lower toward the bed. - If your prints are too low (digging into the bed): Set this to a negative number (e.g.,
-0.1).
- Why
G92 Z0is used:
- Since the touch plate is at an arbitrary height, we use the first (fast) touch to “zero” the toolhead relative to the plate. This allows the subsequent moves (
G0 Z0.4) to be precise relative to the physical sensor, ensuring we don’t crash or spend minutes “air probing” at $0.1\text{ mm/s}$.
- Integration:
- This macro preserves your
svv.offsetadjustfromsaved_variables.cfg, so your “on-the-fly” BabyStepping during prints will still be added on top of this precision calibration next time you restart.
Note: Ensure the PROBE_SPEED parameter is supported by your specific Sovol Klipper fork’s Z_OFFSET_CALIBRATION command. If it throws an error, you may need to define the speed in the [z_offset_calibration] section of printer.cfg instead.
The macro was generated by Google Gemini. I’ve been testing Copilot, Gemini, and Claude on Klipper issues. If the macro doesn’t work ask any one of them for help. Claude is defiantly the best except they are stingy with their free access. I get locked out a lot.
Cardiac
First I want to say thank you secondly not to sound stupid but does this go in my slicer g-code or do I change this in the macro section on mainsail . And do I just copy the whole this a past it to where the old one was .
