How to do a larger than 3 x 3 matrix level

Bravo, thank you very much for the ton of work!@Tone
Still waiting for my A350

Great work @Tone. I can confirm that the 7x7 and 9x9 grid are both functional and the mesh is saved across a reboot as long as auto and quick leveling are disabled. Note: If you run straight from Luban or Octoprint like I do, you will need to put an M420 S command just after the G28 command in your slicer start gcode. This will turn leveling back on after the G28 disables it.

1 Like

You need leveling off when it is doing the auto level as you want the dimensions measured in raw coordinates. I believe SM’s version of G28 doesn’t leave leveling off.

I believe the version run from the TS turns leveling back on after a G28 but since I am using Octoprint I need to turn leveling back on after homing in my start gcade.

I’m using G28 in my gcode files and you can see it turn it off during G28 and then turn it back on at the end. Octoprint should be the same.

Dear Tony
Thank you very much for your elaborate explanation. I have started the same process on my A350. I will post my findings here as well. However, I have a couple of questions;

  1. Running G1029A, I got the following responses - see the full response at the end of the post;
    It starts off by homing and measuring the X, Y, Z positions (and steps I believe)
    For mine, it has X as -17.00 and Y as 352.00. With this, the locations of the Probe and Move are different. I noticed this when using the normal Touch Screen Calibration as well.
    This results in the matrix positions not being in the middle of the bed, but with an offset. At the end of the process when it wants to save the Z-offset, it moves to the actual center.
    READ: X:-17.00 Y:352.00 Z:328.46 E:0.00 Count X:0 Y:144000 Z:133600
    You will notice the differences in ProbeX and Move to X is always 13 and the differences in ProbeY and Move To Y is 19.15
    How can I fix this or resolve this to ensure I don’t have an offset in the matrix? Is this offset calculated in the leveling corrections?
    Edit: Found the answer to this. Sensor (Probe) is X=13 and Y=19.15 from the nozzle. Thus, although it seems that it is not centered, the sensor/probe is centered

  2. You mention backlash. Are you referring to the bed backlash? On the A350, there is a very large pitch/roll around the middle of the X-axis. It seems that the sliders in the two Y modules allow for a lot of of rotational movement or play. With the large bed, the downward pressure of the printhead pushes the bed down about 2.0 to 2.5mm. Thus, I am very concerned that correct readings cannot be obtained.
    Edit: I followed the link below and lowered my proximity sensor. Now the nozzle doesn’t push the bed down during calibration. It seems that the sensor couldn’t detect my bed without pushing the bed down.
    Snapmaker official response to print head gouging?

  3. Matrix Positions. Is I0J0 the same as Probing No 0? In the normal 3 x 3, is the matrix calculated from X0Y0 or X0Y350? Printing/displaying the matrix values with M420V gives the Z values/offsets, but where can the X and Y values/positions of the corresponding positions be obtained.

Thank you very much for this post. And the new “tools” you opened for some of us.

Regards
Waldo

SENT: G0Z320F6000
READ: ok
SENT: G0X0Y350F6000
READ: ok
SENT: G1029A
READ: new E target temp: 0
READ: new B target temp: 0
READ: new E target temp: 0
READ: leveling OFF
READ: echo:busy: processing
busy: processing
READ: echo:busy: processing
busy: processing
READ: echo:busy: processing
busy: processing
READ: echo:busy: processing
busy: processing
READ: echo:busy: processing
busy: processing
READ: leveling ON
READ: X:-17.00 Y:352.00 Z:328.46 E:0.00 Count X:0 Y:144000 Z:133600
READ: leveling OFF
READ: X:23 - 137
READ: Y:23 - 152
READ: Probing No. 0
READ: ProbeX:40.00 ProbeY:31.00Avtive:1
READ: Move to X: 27.00, Y: 11.85, Z: 15.00
READ: probed z: 5.61
READ: probed z: 5.59
READ: probed z: 5.56
*READ: *
READ: Probing No. 1
READ: ProbeX:177.00 ProbeY:31.00Avtive:1
READ: Move to X: 164.00, Y: 11.85, Z: 10.56
READ: probed z: 5.75
READ: probed z: 5.74
READ: probed z: 5.71
*READ: *
READ: Probing No. 2
READ: ProbeX:314.00 ProbeY:31.00Avtive:1
READ: Move to X: 301.00, Y: 11.85, Z: 10.72
READ: probed z: 6.04
READ: probed z: 6.03
READ: probed z: 5.99
*READ: *
READ: Probing No. 3
READ: ProbeX:314.00 ProbeY:183.00Avtive:1
READ: Move to X: 301.00, Y: 163.85, Z: 10.99
READ: probed z: 5.97
READ: probed z: 6.02
READ: probed z: 5.99
*READ: *
READ: Probing No. 4
READ: ProbeX:314.00 ProbeY:335.00Avtive:1
READ: Move to X: 301.00, Y: 315.85, Z: 10.99
READ: probed z: 3.65
READ: probed z: 5.15
READ: larger clearance between 2 probe!
READ: probed z: 4.33
READ: larger clearance between 2 probe!
*READ: *
READ: Probing No. 5
READ: ProbeX:177.00 ProbeY:335.00Avtive:1
READ: Move to X: 164.00, Y: 315.85, Z: 9.33
READ: probed z: 4.38
READ: probed z: 5.88
READ: larger clearance between 2 probe!
READ: probed z: 4.36
READ: larger clearance between 2 probe!
*READ: *
READ: Probing No. 6
READ: ProbeX:40.00 ProbeY:335.00Avtive:1
READ: Move to X: 27.00, Y: 315.85, Z: 9.35
READ: probed z: 4.49
READ: probed z: 4.55
READ: probed z: 5.55
READ: larger clearance between 2 probe!
*READ: *
READ: Probing No. 7
READ: ProbeX:40.00 ProbeY:183.00Avtive:1
READ: Move to X: 27.00, Y: 163.85, Z: 10.55
READ: probed z: 5.88
READ: probed z: 5.89
READ: probed z: 5.88
*READ: *
READ: Probing No. 8
READ: ProbeX:177.00 ProbeY:183.00Avtive:1
READ: Move to X: 164.00, Y: 163.85, Z: 10.88
READ: probed z: 5.80
READ: probed z: 5.84
READ: probed z: 5.84
*READ: *
READ: ok

1 Like

Hello Tone!

Thanks for the great work on this guide. However I seem to get stuck at step 5 "Adjust values using “Check Lev Hot.gcode”. I’ve ran the code and then it finishes, but my measuring paper is moving freely underneath several points it passes.

When I just do the 7x7 probe/auto levelling, I seem to get very good results. (placed a small print on the corners and the center of the board and have it print it, showing good adhesion now). So I think I’m very much helped with just a 7x7 levelling instead of 3x3.

But I’m intrigued by the tweaking bit. I just don’t seem to understand what you mean by step 5. Because at step 6, you mention “Enter values in 2nd matrix to left”. What values? I don’t seem to be getting any?

Or am I missing a step?
Thanks in advance, like I said; this has helped me greatly allready !

When you run that file you should be recording on a piece of paper if the test card is loose, tight, or just right. Then you have to either do a “M421 InJn Qz” for each of the points needing adjustment or enter the adjustments into a macro and do them all at once.Then you’ll repeat the Check Level again and repeat the process until you’re happy with the Check Level results. Then you can do an M420V to print out your matrix and then enter those values into the second matrix on the Google Sheet. That will then let you produce the Tweak macro which you’ll use when ever you do an Auto Level in the future.

What I do when I turn on my machine is run the Check Level Hot.gcode file and if it’s pretty close I’ll just go with it. If it’s off a little on a couple of points I’ll adjust those points and continue on from there. You really only need to use the TWEAK macro after doing a new Auto Level from the Google Sheets and then you only need to run the TWEAK after that.
If you run the BUILT IN AUTO LEVEL it will revert back to the 3x3 and you will then have to redo the 5 x 5 or 7 x 7 leveling.

One question for you, are you running a copy of the Google sheet or downloading it to an Excel sheet?

Thanks alot! I’m back on it again. I’ve noticed you made a new version, i’d be sure to use the latest version.

I’m using google sheets copy.

1 Like

enough for tonight… been trying and trying… but nothing gives.

I can’t load the macro, it just doesn’t do anything. When i copy past line per line it gives me an “OK” back, and verifying with M420V tells me the line per line method does work… somehow the macro won’t,

Then, what value I give in to alter a point, the nozzle keeps pressing the bed down on 0-0.

For a higher nozzle vs bed, I need an higher value in the cell right? For say, my 0-0 noded at 4.819 but it pressed the bed down.

Are you talking thru WiFI?
WiFi is known to not echo back correctly.

Yes, larger z values moves the nozzle up.

only connected through USB for console. Only used wifi to send files.

Somehow i MUST have missed something. Just have no idea what…

Are you pasting it into a Luban Macro or just trying to paste it into the console?
The console won’t let you paste in multiple lines.

Made a macro.
The finish macro works and the autolevel macro too.

Maybe the macro gets too big?

Yep, there is no return value when sending G-code command via Wi-Fi

The 5*5 levelling method is coming soon.

3 Likes

Good news Edwin ! Did you fix backlash compensation and did you fix M900 ignored command during printing ?
Oh and I forgot did you manage to have the ability to fix the bed temp durring calibration without doing tweaking
Thanks in advance

1 Like

To be honest, i was laughed at today at work :slight_smile:

My colleagues mentioned the 2 lineair y-axis is most likely not a good idea. The bracket which holds the bed will expand and shrink and needs to be firmly mounted to 1 axis only, the other just needs to push and pull on the y-movement but needs play in the X movement. Due to the lach of it, the bracket thats holds the bed, probably twists.

I still have my hopes up on proper bed levelling techniques like the one from @Tone but this theory made alot of sense to me too…

:frowning:

guess there is one way to eliminate or establish the theory; cold bed levelling and printing vs heated bed levelling and printing

There are various techniques to eliminate the moment from the bed. An example would be to use a guide bar down the middle, kind of the opposite of the prusa that has the two guide rails on the sides and a central drive.

I realize that is something that is beyond the current hardware of the SM2… but it might end up being what’s required.

1 Like