QGL with BED_MESH, still cant get gantry level to bed

Basic Information:

Printer Model: Voron 2.4 style (JennyPrinter CoreXY)
MCU / Printerboard: MKS Monster8 V2
klippy (5).log (799.7 KB)

So I have a laundry list of things I have tried to get this to work, but I’ll try to summarize directly to the issue.

Setup:

  • JennyPrinter CoreXY (Voron 2 style kinematics)
  • Z-max endstops for each Z motor (to fix gantry sag on startup, unavoidable)
  • Elucid (klickly) Probe
  • HermitCrab CAN toolhead (Baud rate @ 460800, timeout set to 0.050)

Slicer:

  • Start GCode: G28, QUAD_GANTRY_LEVEL, BED_Mesh_ Profile Load=Full (Also tried bed BED_MESH_CALIBRATE, but does not work, see below)

Issue:
So from power on, the printer does a homing override:

  • Y
  • X
  • level the gantry at max endstops
  • Probe Z0, then sets z-offset with a G92 command.

Then I do a QGL to level the gantry accurately to the bed (Best I can get is a 0.020 set range) and ends up usually around 0.017mm. Then I did a BED_MESH_CALIBRATE, and then modified the offset of the med mesh with the offset of Z-max to bed position (necessary for zmax endstops and not having a perfect height from heatbed).

Upon print start (with the previous leveling steps done), a large perimeter skirt is CONSISTENTLY off from the left side of the bed to the right side of the bed. I manually measured multiple prints, and left side first layer height is 0.25-0.27mm, but right side is 0.45-0.47mm. First layer height is to be 0.30mm (0.6mm nozzle).

Left side of print bed first layer:

Right side of print bed first layer:

I am at a loss, it seems like the QGL and BED_MESH first layer results are identical, but I can feel the Z-motors adjusting to the Bed Mesh, so I do know it is “following” the bed mesh.

Any ideas as to why there is a constant skew to the gantry even after all the leveling is completed?

printer.cfg (13.3 KB)
HermitCrab_Canbus_pins.cfg (1.5 KB)
Elucid.cfg (8.6 KB)

I uploaded my configs incase someone sees an issue. I do not have a log currently but I can get one if requested.

Note, in the printer.cfg the “Full” Bed Mesh had to be modified manually to account for the probe offset when probing for Z0. I did a BED_MESH_CALIBRATE and subtracted(added) the z-offset to the values to get true bed height. This was necessary as it was crashing the nozzle into the bed going to Z-5.952mm instead of Z0.

Example:
Z=20mm after G28 command: Z=20mm

Z=20 after BED_MESH_CALIBRATE: Z=25.592mm

Even if you delete the query for the klippy.log: Please attach it.

Sorry, I was at work and hoping for a head start in diagnosing any issues since I didn’t have access to the printer. But here is the log:

klippy (5).log (799.7 KB)

if you try to print without bedmesh? is the quality worse or better?

It honestly is pretty much the same quality. I do feel the z motors rotating while its printing the first layer so it is using the bed mesh, but again, nothing noticeable.

Usually this is an indicator of probe location bias. If the printer is similar to a Voron 2 then a twisted x-axis is the most common issue that leads to this condition.

Interesting, never thought of this before. I will definitely look at this today as it does make sense as to what is going on.

And to note, the probe is located right under the extrusion, but the hotend extends out 67mm from the probe location.

So far I did find a slight issue with on the right side part of the x-axis. It did seem to fix a majority of the issue! Still looks like it may need removed completely and straightened on a vice, or just buy a new extrusion all together.

Thank you so much for this. Even my QGL can now get below 0.005mm deviation which is awesome. It could rarely achieve 0.008mm.

I’ve implemented a custom klipper module that should be able to correct for a twisted X-axis. More info in this reply in another thread if you are interested. @Fickert