Weird issues with auto-leveling?


So, I’ve been doing some printing lately and realized as I was iterating through my design that there seems to be something off with my bed-leveling calibration. I’m currently using @robbforce’s Wilson II-RCBugfix fork which was cooperating just fine until now. When I run an auto-level and print an object, it seems as though it is not properly compensating for the left side of my print-bed and this results in the upper-left of the print to be over compressed into the build surface. It’s bad enough that you can tell that it’s happening on the first layer when printing at 150um. Now, I’m trying to make sense of the matrices created via G29 V4, but I can’t quite get a grasp on what I’m looking at.

for reference, here’s the output:

Eqn coefficients: a: -0.00340480 b: 0.00376051 d: 0.00120598
Mean of sampled points: 0.29416635
Bed Height Topography:
±-- BACK --+
| |
L | (+) | R
E | | I
F | (-) N (+) | G
T | | H
| (-) | T
| |
O-- FRONT --+
+0.95083 +0.40333 +0.31083
-0.00000 -0.16417 -0.16167
-0.00000 -0.70417 -0.57417
Corrected Bed Height vs. Bed Topology:
+0.00000 +0.00000 +0.00000
+0.00000 +0.00000 +0.00000
+0.00000 +0.00000 +0.00000
Bed Level Correction Matrix:
+0.999994 +0.000000 -0.003405
+0.000013 +0.999993 +0.003760
+0.003405 -0.003760 +0.999987

I understand how rotations matrices work in this application, but what seems like a huge red flag here to me is the “Corrected Bed Height vs Bed Topology” matrix. Doesn’t it seem a little off here that every element is 0.00000? I take it that the first matrix is the bed probe activation heights, but I’m honestly not sure and I’m trying to track down the issue at hand and it’s hard to do when I don’t 100% understand what each matrix is actually representing.

Thanks to anyone who can help


I wouldn’t use the RCBugFix branches. Despite the name, they became increasingly buggy. The one I’ve been using, which has been stable, is the wilson branch based on 1.1.x

Even that appears to be outdated as there have been many commits made in the last month to the main Marlin repo. I’ll need to do a rebase at some point.


I ended up switching to 1.1.x and I still have the same problem. Basically, my bed leveling seems to be reversed. While using verbose G29 commands, I decided to check the bed level correction matrices manually against unit vectors in the Z-direction. What I ended up seeing was that while I can VISUALLY assess that my bed is tilted so that Y=0 is lower than Y=300, the rotation matrices appear to be turning the unit vectors back towards Y=300, effectively causing my bed leveling to be reversed. It seems as though there’s not exactly the clearest documentation on the exact expected behaviors (movement, etc.) of the G29 command for the various leveling strategies, so I’m having a hard time even attempting to diagnose the issue when I’m not actually 100% sure what the printer is supposed to do in the first place. For instance, once a G29 is completed using linear bed leveling - where is the probe / hot end supposed to rest? X = 0 , Y = 0?

Basically, my bed is obviously tiled one way and for what I can tell, ABL is correcting in the opposite direction.


I am having similar issues even if I use the old defunct firmware. I get great results if the print sits in roughly 4 inches in the center, but it’s nearly impossible to get a good print that uses the whole bed. I have a feeling I must have some sort of z wobble going on, but I can’t seem to solve it.

I even tried manually leveling to try to get things as level as possible, but the auto leveling just doesn’t seem to work. I’m going to rebuild the rack and replace the z end switch to see if that helps, but I’m really at a loss at this point.


I found my servo activated switch was very poor in a repeatability test, and I’d always have at least a few major outliers when doing ABL, which in turn stuffed the levelling…

I’d try something along the lines of:
M48 P25 X100 Y100 V2

I switched to an inductive sensor and never looked back!


Can you tell me anything about your inductive setup? I’ve purchased a probe, but I’m not sure what the best route for the bed will be. I have one of Martin’s heated beds and since I just bought it about 6 weeks ago I’d hate to replace it already with an MK2/MK3 bed. I’ve heard some people say some copper or aluminum tape will work, some say it won’t. What did you do for your bed?


Sorry, yeah that might be an issue, my bed is an aluminium plate - at 400*400 I had no other option. I have heard that alfoil under the glass might be enough, but I’m not speaking from any experience/real knowledge.


I’ve seen the same. While probing the Z-axis is moving twice. Only then at the first position it’s only moving once.