SM2 Bed Leveling 101

I will always mount my 3D printbed this way, or are there any other methods to do the job?

This post was a early stage of SM2.0, early birds, so I thought, what could be false, what did I different.

Hi @Tone,

thanks for your leveling info and the calculation sheet. I got my A350 about 3 weeks ago. Intill now I only was printing small objects in the center of the bed. After 3 to 5 times of auto leveling I found a good config for printing in the middle of the bed.
At the weekend I tried to print a leveling test with some lines and squares in the middle and the corners. It was nearly impossible to get a working auto level setting. Some areas where not sticking at all and some where so low that the bed was even slightly scratched. So today I tried to follow your 101 guide.
I think I figured out how it works. I have done the following:

  1. I did a auto leveling run.
  2. I ready out the matrix with the M420V and put it into the upper table
  3. I run the checking script and put the calibration card under the different coords and noted a “-” if i felt no resistance a “0” for light resistance and a “+” for to strong resistance.
  4. I copied the upper tabel to the lower tabel and increment the values slightly for the “+” and decremented for a “-”
  5. I changed the values as described and did returned to step 3

I did this untill I felt nearly the same restance under every coord.
Then I tried my leveling print again and was very currious about the fact that now everything was much to low. (again some more scratches)
So now I am wondering if I was missing something. Is there an aditional offset to be considered?
After running auto leveling again I gut much higher values then at my first run. I am realy starting to hate my heating bed. The bed also is significant lower in the J0I0 point (0,47 from average) should I contact support about a replacement for this?

Which version of firmware do you have?
You may have values in the Z-offset which are moving everything down. After a certain version of firmware it would then remember the Z-offset from the previous run. You can probably tell if you go into the z-offset setting while running and if there is a value set there then it’s remembering it from previous time.

I am using version V1.10.1. It says it is the latest FW. I am not sure where to find the z-offest.
BTW Does the manual leveling option do the same? Does it also set all matrix entrys to the manual entered Z-Values? Maybe I should give it a try.

One thing to keep in mind is that the print sheet will change when its hot.

I like to pre-heat my bed to a little above temperature i print at, let it sit for a bit, then do autocalibrations.

The heater turns off for the calibration process for technical reasons but it seems to be a fair compromise.

If you don’t know where to set the z-offset then you probably haven’t change it. :slight_smile:
When a job is running you can swipe the touch screen left and get to the place to change running offsets, temperature, z-offset. That z-offset effectively moves your z origin up or down.
Your firmware is new enough that the z-offset will be remembered.

Manual leveling just walks you around all the leveling points and you have to lower the print head with the touch pad and and then it sets that point. Yes, it does set all the matrix entries to the manual SET ones (not entered).

Like @MooseJuice said, things change if the bed is not heated. It’s important to have the bed heated when you are tweaking grid points. You can’t do that with Manual or Automatic leveling.

The bed heating actually will change over about 30 minutes time. It take time for the heat to transfer and settle.

Z-offsets:

There’s so many different ones it get confusing.

  1. Auto level Z-offset, at the very last point when running Auto Level it moves just a little from that end point and that’s where you set the Z-offset for Auto leveling. All of the grid points in the leveling process are adjusted according to that particular Z-offset. The system doesn’t know the exact distance z wise between the leveling sensor and the print nozzle. This is how it adjusts for that.

  2. Running Z-offset is one set on the Touch Pad while a print job is running and is used to effectively move the Z origin up or down by that offset amount. That value is remembered from job to job (It wasn’t in Firmware versions earlier than 1.9 I believe). I believe it also remembered after powering down.

  3. Grid Z-offset, is the value saved in each grid point. The values in the leveling grid are the different Z-offsets unique for each grid point. That’s how the leveling software works. The Grid is also referred to as the “matrix”.

  4. Z probe Offset. This one saved in the settings inside the controller. It’s set with M851. The documentation says: “Set the vertical distance from the nozzle to the Z probe trigger-point.” This is probably only used when doing the Auto Leveling process.

  5. Active Z Offset. This is what is calculated by the controller depending on what the location in the X & Y directions currently is. I believe this is calculated by the nearest grid point values.

  6. The Misnomer Z Offset. The label in the jog screen describing the movement in the Z direction. (As mentioned by @MooseJuice in the next post!)

And then there’s the jogging screen outside of a print job which labels it as Z-offset but actually isn’t z-offset at all but just jogging the z axis, they should change that nomenclature because i see it confuses some people

Since I’ve seen varying information on this I looked it up, and yes it’s saved between power cycles.

Saves are triggered by a stop trigger (power loss, screen disconnected, job finished, etc) and M500 save commands.

Interesting, to me at least, the live Z offset can only be set via the touchscreen, there is no gcode command to modify it.

But cura has a way to adjust the z offset?

two actually, one of the methods i think rearranged the entire gcode based on your offset and the ohter i think is just a simpler command

i guess you mean while job is running

image

image
bonus typo in the help text

That is not the live Z offset function from the touchscreen (#2 from @tone’s list above), that would be yet another type of Z offset.
7. Slicer Z Offset. A temporary coordinate system using G92 to trick the machine into moving up or down given the same gcode command
8. Cura Extensive Z Offset. A post-processed gcode where the Z values of all G0 and G1 commands are modified by an offset value.

Ha good to know that I can set an additional Z-Offset before starting a print from the touch screen. Dind’t noticed this option yet.

I only was afraid that there could be kind of a hidden Z-offset that is maybe set by auto leveling and not considered in the grid/matrix. So if there is none I would expect that, once I have good values for the grid, I could backup the values. Then maybe do some leveling tests/optimizations and if I am not satisfied the only thing to do is restoring my backup grid values with a macro and I will get the same results as before. So same grid is always resulting in the same level, right? (Of course without changing anything “physical” at the bed or the tool head).
I am just asking because sometimes I wished that I had saved my last leveling information and could return to them because the new level is much worse.

And just another question… Is it possible to start manual leveling from console, maybe with a bigger grid?

So what I want to try this evening: Save my current grid values. Try manual leveling. If this is not improving the leveling I will restore my old values from yesterday.

In the future, if you copy and save the output from M503, in the future you can paste that into a macro and run it to restore the machine’s memory to a previous config. That includes all settings, e steps, leveling, linear advance, etc.

That’s what I have done is create a Luban macro that sets the matrix to the values I want. I also have a version that increments the values up or down rather than do one at a time. My google sheets has a section that you can copy and paste into a macro to do both.

At the time you wrote that spreadsheet it was not possible to copy out of the Luban terminal. Since it is possible now it may be worth adding a place to paste the M503 export and have the spreadsheet automatically parse the relevant info instead of having to manually type in the numbers.

I did that on my version of the spreadsheet here

Simply paste your M503 export into the M503 Paste tab. The data goes IN the cell, so all rows are contained in the first cell. If you paste ON the cell it won’t work

All reference matrices after that are automatically updated from the pasted data.

Yeah I know and already used it. I just wanted to make sure that this is everything I need and that there is no other magic behind the leveling. Thanks.

The luban terminal lol

You can copy out of it but it sucks at it

I have to both use the edit menu pulldown and copy, then control c

if i do one or the other it doesnt work

Has to be both

Hmm. I know the copy & paste in Luban use to NOT work but I believe they did fix it. I don’t know that you can paste INTO it but you should be able to copy from it and paste elsewhere.
AND are you talking about a USB connection and not WiFi?

It works, but it doesnt work well (for me). I have to do it multiple times and use both the pull down and control c.

yes via usb.

I guess i could try the pre-release version from the forum on my laptop i have connected to it. i am using the version before that there.

not that it particularly matters much to me