How to find source(s) of 1.1mm slope to left?

I thought I better start my own thread instead of randomizing others on my issues.

I have a ~1.1mm slope to the left observable in my calibration mesh.

I would have thought this wouldn’t matter (because isn’t that what the mesh is supposed to correct).

But I have had trouble getting this single layer test to print well at the extreme left and rear edges.

(note the larger gaps in squares on the right is palleted knife damage)

I have done 11x11 calibrations, 5x5 hot calibrations, manual calibration, i have calibrated flow and linear advance. But the under extrusion on the left to back i have never found the source or solution - despite getting lots of folk (not on this forum) tell me it is everything from flow is wrong, to machine is wrong, to slicer is wrong, to my expectations are wrong.

  1. Am i hunting the right great white whale here / on a fools errand trying to reduce this slope?
  2. If i am on a fools errand what should I be trying to fix this print?
  3. Or maybe it is wrong of me to expect to be able to use 95% of the bed?

I have bought all sorts of gauges, meters, squares, straight edges, calipers, micrometers etc (and have an angle meter coming too). But I for the life of me cannot find a single source of the error - i now think the 1.1mm is compound error introduced by several things.

And before we get to warped platform, i think the first source of error might be shown in this video where if i am at all doing this right there seems to be ~0.6 to ~0.7 where the left bar ‘appears’ to be lower.

  1. am I at all going about this test in the right way?
  2. note when I place the platform on these mounts it shows the same ~0.6 to ~0.7 error - aka my assumption is my platform is not warped (at least not between the two screws on the center line).
  3. should i be doing something different in this test?

Now i want to point out when i do this test below, the gap measured with feeler gauges on the left side (the blocks are resting on the y rails) is about 0.32 mm.

I note those two values added together are pretty darn close to my 1mm slope i see in the mesh.

I have done a few other steps - the first was to rotate the platform, heated bed and build pate 180 degrees (so the front of plate was at the back) and the 1mm slope to the left persisted - my hopeful conclusion is this means I have a pretty good platform / heated bed.

To recap the questions as the start of this egregiously long post.

  1. Are my expectations out of line here, and i should stop hunting this down?
  2. What can i be doing differently to solve the printing problem of that one test (that my friends with enders print just fine) if i should stop hunting this down.

Any help you have the time to spare in directing me the right way would be very much appreciated.

(and all of this was done on firmware with the mesh fix bug, i waiting till we had that firmware to summarize)

No. At least that’s out of the way.

Your 11x11 print looks great, all things considered. If the mesh was disabled I think you would notice the print won’t even complete due to printing in the air or gouging the bed.

Clearly there’s 2 separate issues here

  1. Something in hardware is tilted
  2. The software isn’t correcting it well enough.

As an exercise I think it would be valuable for you to jog the machine around manually with the mesh disabled and see what happens. Does the slope appear to get better or worse.

Disabling the mesh will cause the machine to think it’s somewhere else. I’d recommend being at Z=20 or so to make sure you don’t crash into the bed. Jog using 1mm movements - do not issue a goto Z=0 command, it will crash hard.

M420 S0 will disable. M420 S1 will enable.

While disabled, if you jog close to the surface of the bed in Z, and then jog around the entire surface, does anything interesting and illuminating happen?

When you were using the dial indicator, was the mesh enabled? If the mesh was enabled then the software is moving the dial indicator up and down as it goes side to side. Try repeating that measurement with the mesh disabled to isolate the measurement of the hardware, and eliminating the mesh variable.

If you disable the mesh, go to a mesh coordinate with G42, and issue a G30 probe at various points on the bed, do you roughly see the same measurements found in the mesh that auto calibration generated?

While doing those measurements, does it look like the probe is triggering correctly? Not too low, not too high, generally a valid reading?

@brent113 no I hadn’t done anything specific to disable the mesh, doh never occurred to me to check that, I will repeat the tests with mesh disabled and dial indicator. Thanks for taking the time.

@brent113 did the same test as I linked in the earlier video with M420 S0 set.
The difference between left and right y linear mount plates is the left seems ~0.6 mm lower.
This is jogging around manually.

I tested the top surface of the y linear modules enclosures in the same way.
The one on the left it appears 0.23mm lower (though i am not sure if the enclosure matters). Of course i don’t know that the two y bars are actually different in height, when i use a straight edge across both y rails mount plates i can’t detect a difference.

Next up will be putting the platform back on the two y linear mount plates unless there is something else I should do at this point to eliminate that difference?

So just to see if I have this straight

  1. the actual platform has a .6mm tilt, low on left
  2. the calibration generated a mesh with a 1.1mm tilt, low on left
  3. the resulting “corrected” movement has a ~.6mm tilt, low on right

I think that checks out, the mesh is overcompensating.

We just need to figure out why it’s measuring wrong so it will correct itself, or worst case manually apply a correction using M421.

It would be trivial to use Excel to generate a script that proportionally scales the slope down by a factor of two to correct that in the short term, if you want to post your M420 output here I can do that tomorrow. It would at least serve as a proof of concept for verifying flatness.

I’m not saying you should (I think mesh compensation should be able to handle the tilt), but you could try checking that the x rail is square to the 2 y mounting points, and if each z rail is square to the base.

I expect that the x rail should not be square to the y rail mount points (since that’s what causes the dial gauge video evidence)

If the x rail<>y rails is not square (I would expect this), and the z rails are square to the base, then you could try shimming up the right y rail by .6 mm.

If the z rails are not square to the base, maybe check their attachment. The z rails not being square would also explain your .6 slope left at the mount points and 1.1 slope left at the bed, followed by weirdness looking right in print, since a skew would show as different slopes at different heights in the skew (especially if the skew is enough to be causing actual movement because the two z rails are mounted to each other)

1 Like

@scyto ok, with the z brackets travel now being measured and near identical, the fixed mesh leveling should compensate for the shift if it were as simple as an uneven bed. I hope that it is the bed but my thoughts are it’s not. I just hope I’m wrong and one indent isn’t shallower/deeper than it’s parallel. I assume you’re going to continue the investigation tomorrow, so when you check the base plate, make sure the cap screws on the z rails that touch the plate are all the way screwed in (I highly doubt this is the problem, but anything is possible), my biggest fear is bad casting of the base and something is making either a y or z rail not perfectly parallel with its opposite. I pray I’m wrong.

sorry only just realized you said to do this.
I can post but the machine is in pieces, so i guess i should post the M420 V once it is back together as i suspect i just invalidated the current mesh :slight_smile: do you have preference on grid size?

Kinda late to the discussion. I was about to tear my A350 apart out of a similar sense of frustration, but after some careful measuring with the dial indicator I was able to make a grid of linear-module-induced differences (travel differing in the two Z axis modules) and, when that was addressed, a grid of local differences (the actual headed bed and/or print sheet).

When I was reasoning through this, the following possible sources of error occured to me:

  • Z axes not parallel
  • Z axes backlash not synchronized (the reason for the run-to-the-top step in setup)
  • Z axes differing in travel (there was some thread talking about one module not reaching the end stop)
  • Z axes not square to the X axis (slope is in the X-travel)
  • Z axes not square to the bed (slope is in the bed)

I may have missed something in the above discussion, but if I haven’t, it sounds like it hasn’t been verified that Z axes are parallel and are square to the X axis. If the X axis has been removed, a straight edge (or even a length of 3/8" or greater drill rod, if you are cautious with the measurement) can be set on the carriages and a square or the digital angle meter (zeroed on each Z axis in turn) used to determine squareness at the low, middle, and high extremes of travel on the Z axis. The same can be performed with the bed removed, with the Y axis carriages advanced to the base of the Z axis modules, to determine whether the Z axes are square to the Y axes independent of anything involving the bed.

Those are some simple tests that you have the equipment for and that I would perform if I had the A350 all taken apart. You shouldn’t uncover and significant error, but if you do, hoo boy it’s boat-anchor time for the A350 :wink:

1 Like

There were issues with linear modules have different lead screw pitches. Maybe worth investigating this:

1 Like

Thanks, that is worth checking out.

I actually got past the travel and levelling problems (I think - those seem to keep coming back like zombies) and am debugging the print head. The extrusion failures that at first seemed to be an e-steps issue and then seemed to be a z-offset issue and then seemed to be a humidity issue and then seemed like a nozzle/hot-end issue and then had to be a filament issue … now seem to be a temperature issue (as in, print head happily extrudes PLA at 240 but not at 230 or lower). We’ll see. I’m not going to derail this topic discussing it; when I eventually figure it out I’ll post a thread somewhere.

1 Like

Thanks everyone for all the help and insight, it really helped me think about the system as a whole and question almost all my assumptions.

Supports thesis was 1) warped plate and 2) linear motor differences on the z rails.

  1. we ‘proved’ this was unlikely by rotating the platform, heated bed, build plate 180 degrees - if it had been one of those then the slope would have shifted from slope to left to a slope to right.

  2. z linear motor differences - i was asked to measure heights. I did this and it can be seen in the early tests in this doc - but finding a speed difference that results in 1.1 mm diff is hard with a rule. so i came up with my own test using a straight edge and digital level (also in the doc). This ruled out any difference between z linear motors.

In addition to the previous dial meter tests that showed height tests i proved that the y bars themselves are level with respect to each other and the x bar - the top of the y units platform mount plates are not level with respect to each other. This can be seen in the doc.

Math validations:
I measured a 0.2 deg slope to the left with my straight edge place over both y rail platform mounts (see doc).

Over the entire slope (320mm) of the bed this 0.2 slope would cause a 1.1mm drop
(note the drop between the top of each mount place would be much less)

Calculation of the right scalene triangle from general data - side c, angle α, and angle β: triangle α=90 β=0.2 c=320 (

if alpha is 90 degrees (it can only be 90 as we are measuring a vertical drop)
and beta is 0.2 (the slope)
and c is 320 mm (the size of the bed)

then b - the size of the drop is 1.117 mm

tl;dr - support is sending me new y linear units; we will see then if i did my measuring and calculations correctly or I am an idiot and its something else like warped bed :slight_smile: i do think simple tests with a cheap stiff metal bar (doesn’t need to be a $60 straight edge like i used, just must have no flex) and digital level - both placed across the y units and the z rail mount points is a very simple way to show if the system is square/level with respect to itself. Once i get and fit the units i will let y’all know if it made a difference.

1 Like

lol, yup i ‘invented’ the use of the angle meter from first principles at the weekend, lol - where were you a week ago :slight_smile: (i am not a mechanical or handy person, this is all new to me and i am shooting blind!)

but seriously, glad to have someone validate the approach, and yes my $60 straight edge has been a boon - something that doesn’t flex. (and thanks to @Artezio for his significant offline help).

I still have one outstanding question on why the mesh levelling didn’t seem to account for this 1.1 mm drop and have some thesis that will need testing once i get machine back. They are:

  1. the billinear / catmull mesh don’t account for variances outside the slope of the mesh (i note that where i have issues are on the very edge of, or outside the probed area)

hmm now i write that, that’s the only thesis i have to test… question is is this a math problem in the mesh calculation, is it a measurement issue - i note the probe is done quite far from the edges (why?!) etc

1 Like

A week ago I was cursing at the A350 and vowing to make an example of it to keep all of my other electronics in line :wink:

This past weekend I wasn’t able to put in any real shop time for various reasons so I started to poke at it again.


@scyto i wonder if there’s a limit to what it will compensate for to prevent anything from hitting the project, or to possibly protect the probe on the head as it is only 1mm higher than the nozzle. A 1.1mm slope may not sound like much on paper but in reality it is a significant difference, I could also be entirely wrong about why it didn’t compensate though. Besides, with that big of a variation, if it were me I wouldn’t want it to be compensated for, I would want it to be addressed the right way just as you have done, as it could cause other issues later on like uneven wear, especially if the cause is mechanical maladjustment inside the rails.

1 Like

The bed levelling code continues the slope outside the outer probe points at a continuous rate to the edge of the bed.
This is a Marlin option, the other is to stay level with the outer probe points.
If your bed is flat (say a piece of glass) and the levelling is adjusting for slope, the chosen option is the best one, if it’s not then you could well have slope outside the outer probe points that is counter to what the bed actually does though your nice new straight edge may show whether it’s material.


Thanks for the clarification. Has snapmaker ever said if they will support UBL. Once the new X rails arrive I was hoping to dial in any further needed changes using the UBL UI in octoprint…

What specific features from UBL are you looking for that ABL can’t replicate?

The ability to use the UBL editor plugin in octoprint (and i guess the G29 Q test pattern, but that’s of only casual interest).

I have no idea how to edit the mesh otherwise? is there another easy way?

When used with the Q argument you can add or subtract a constant to a mesh value.

The bottom example is the most relevant:

Adjust the mesh point by -0.01

M421 I2 J2 Q-0.01

If you need to adjust large numbers of points I’d suggest using Excel and generating a gcode script that you can copy/paste and run from a macro.