SM2 Bed Leveling

@parachvte,
Another question, what happens in manual leveling if you only select a few point and skip the rest, what does it do with the z value for those other points.

Note: I know that there is a “Next” button that you normally click, but you can click on the point circles to select that particular point and you can select as many or as few as you want in any order.

When you do manual leveling, does it reset all the z values at the beginning?

I did try to only select specific point number and click save. But after lunching the same print it doesn’t change anything. Do you think I need to generate a new g-code evry time i change bed leveling ? Maybe my start G-Code is not working correctly ?
I’m very frustrated I can’t level my bed even with glass bed

No. The gcode is most likely just fine, it’s the leveling. One user talked about using a dial indicator to check the bed level with and he would “shim” the different heating bed attachment points and try to level it that way. Then the leveling doesn’t really need to do much other than set the z offset. I’ve just made a dial indicator holder that I’m going to do some experimenting with. I plan to have it on the side of the print head and basically “check” what it is doing in the leveling routine.

When typing M503 you see the 9 point Z level
G29 W I0 J0 Z3.75
G29 W I0 J1 Z4.00
G29 W I0 J2 Z4.35
G29 W I1 J0 Z3.55
G29 W I1 J1 Z3.90
G29 W I1 J2 Z4.05
G29 W I2 J0 Z3.60
G29 W I2 J1 Z3.80
G29 W I2 J2 Z3.95

I tried to manually change this settings with other Z value but it doesn’t work :rage:

What commands did you use to try changing them?

I tried both commands

G29 S3 I0 J2 Zx.xx

G29 W I0 J2 ZX.XX

No effect

I believe you have to use a M421 command.

I checked how level the bed is (when probed with the sensor). For this I used the “Printer Bed Inspector” from Nicholas Piegdon (WARNING! There are some parts in the software you have to adapt to make it work with the Snapmaker, or you will gauge your print bed!)


The red area in the bottom left corner is due to the print surface not sticking down completely to the heat bed.

I turned the print surface to the other side and rerun the test

6 Likes

Current implement do not reset all z offset. (I don’t remember if we can skip some of the points and finish the manual calibration.)

We still use Marlin’s code to probe the bed and calculate the compensations. What I mentioned as customized is that SM2’s communication is quite different that when G29 was proposed: We have a Touchscreen to interact with, and we customized our cable entirely now the probe data is transferred in CAN bus.

We both know that there are lacks in the design of G-code. Not only limited as a plain text, G-code’s reply format is not unified, different implementations diff a lot. Another thing is that when you receive an “ok” or something from Marlin, it doesn’t means that the command is executed, it means the command is accepted to be executed. This will lead the problem of user interaction, say when TS receive an “ok” from Marlin, it doesn’t know if the command is actually executed, thus it doesn’t know if it can move to the next step.

In SM2, we are trying to workaround the problem, that’s why we don’t use G-code to communicate. If we find a way to use G-code to do the calibration or a simpler version of it, we will try to add it back to G-code.

1 Like

Ok but what is the specific command to manually change one of the 9 bed leveling point with G-code commands ?
M421 still doesn’t work for me

@parachvte told me M421 should work. What is the exact command you are sending?

This command I did sent
M421 I0 J2 Z5.00

M420 V
M421 Ix Jx Zx

Hint: Use serial cable to connect SM2.0 via Luban.

2 Likes

@parachvte,
Does the SM2 flavor of Marlin code have a place where G & M codes are enabled or disabled or parsed to determine if they should be run? Or is that something in the TS code? I’m just wondering where in the code that decision is made.

So I’ve manually leveled my bed a number of times.
I’ve recorded the values. They don’t change much at all from time to time.
I’ve got a dial indicator hooked up so I can see what’s going on.
I run my level checking program. It goes to each level point and down to Z.1 (the thickness of the test card) I consistently have it going to a Z position which is off from what it should be ranging in values from .03 to to .46mm. It consistently goes to the same off value at every point. So my only conclusion is that the Marlin leveling routine isn’t working as it should.

I could go and tweak the grid points by the off values but if the Marlin leveling routine isn’t working right it won’t fix the problem. I’m going to try it and see.

I’am maybe dumb but it doesn’t change any value at all @Tone @parachvte
Please help me !

you used M420. you have to use M421

Oh !! I’m dumb lmao
I did copy the previous command from @parachvte
Will try now thanks !!
Can anyone tell me if this calibration point IX JX are good match from my testing ?

Yes, that’s fine, although I would just order them like:
789
456
123

Corresponding to the row numbers.
Where did you get those row numbers?

NO! Wait, I think you have I & J switched. I is the X row, J is the Y column.

“M420 V” is the command used to DISPLAY the leveling data.

2 Likes