Check Level Hot.gcode

There is a saying: “You can’t manage what you don’t measure.”

If you don’t measure where your leveling grid points are you don’t know if they are good or not.

This is a new version of my “Check Level Hot.gcode” The name has been abbreviated so it shows on the Touch Screen better. This new version adds a little move in a square pattern that helps the z backlash settle a little which gives a more accurate read. It is meant for a 3 x 3 grid. It sets the bed temperature to 60. You may need to edit that if you want a different temperature.

Chk Lev HOT.gcode (1.3 KB)
EDIT, here’s versions for 5 x 5 and 7 x 7.
Check Level Hot 5x5.gcode (2.8 KB)
Check Level Hot 7x7.gcode (5.4 KB)

It moves to all the leveling grid points and you can use the “check card” to see if it is going to where it should be. It’s set to go to Z.1 so the card should have just a tiny bit of resistance.

EDIT: At the first point it will wait until the temperature has been reached so you have to wait.

9 Likes

I’m now suspicious that this gcode file is not doing the right thing.
I think I need to offset the measured location by the X & Y offset of the sensor.
I need to have a closer look at the Marlin/Snapmaker source.
Stay tuned for an update… IT’S BEEN UPDATED… Never mind, sorry for the confusion.

1 Like

I think no need to subtract the offset, leveling data already subtract the offset.

I’m talking about the x & y offset. I need to measure the nozzle distance to the bed at the same place that the sensor does. When the G42 command is executed it moves the head to the location that the leveling data is taken with the sensor. I need to move the head over so the nozzle is at that same spot on the bed.

Sorry I misunderstood. In Auto-Leveling, the last point measured manually is at the same position as the sensor is, the measured positions are the original mesh coordinate positions, you don’t need to offset them.

1 Like

@Tone Since you use G42 without P(Probe) parameters. You ask the nozzle to move to the leveling point. I think that’s what we expected. Therefore, you don’t need to do offset again. If you want to make the probe go to the leveling point. You can just suffix the P into G42.

Besides, You can use M2000 S1 L1 (You can find usage in M2000.cpp) to enable SNAP_DEBUG_LEVEL_VERBOSE. So that you can have extra debug information which can help you locate position.

2 Likes

Thanks for that info. I didn’t think to look at the G42 code. The Marlin docs don’t mention the P parameter. I restored the original file to download.

1 Like

INSTRUCTIONS:
I run this file when I first start up my Snapmaker. If the level seems good I will just continue on to printing. If a few points are off I will adjust them using a “Tweak Macro” which I set up in Luban and is easy and quick to update and execute. When I am adjusting the grid I use one of the following files to write down which points need to be adjusted:



If I’m doing a brand new level, I will do an Auto Level with a cold bed, record the matrix and then adjust it according to the heating curve I posted. Heating Curve link
Then I check the level again and make any adjustments to the matrix from there.

2 Likes

@Tone Sorry but i saw somewhere that I0J0 is front left. Do you mean by that when you are in front of the printer the left side closest to you? And if so what is rear left then is that I0J2 or I2J0?
I’m printing on a mirror but i don’t see it changing very much when I change something ( i do a G28 and a M500 afterwards)

Yes. Rows going away from you are J0,1,2…
I corresponds to the X direction
J corresponds to the Y direction

The printouts above are in the order that the M420V prints them out.
Which does not correspond to the physical layout.

1 Like

Thanks, strange enough when i’ve changed I0J2 a bit it is every time i try to print something different.
After a few calibration passes it looks good. But then with the next print it is again a little too close to the bed. But the next time with the same file and not removing the bed in between it is good.
Is this just a bit backlash in the steppermotors varying between the left an right Z axes, what i mean could it be that the threads on the axle are not in the same position everytime or so? Do you have any insights on that maybe?

I would think the two Z axes should stay in sync pretty good unless you try to move them too fast. It’s more likely the variation is just due to the aluminum frame warping just slightly different each time. From cold to hot the Z can change up to .15mm.

For a week now I use the Snapmaker A250. I can print with Octoprint. Excellent!
With the plugin “Bed Visualizer” it must be possible to execute the bed leveling procedure and store the data to visualize. The standard default gcode ( G28G29 T M420 ) does’nt work for the Snapmaker.
Any help?

The bed visualizer plugin just sends an M420 V and parses the returned data. It works fine for me on my A350 with Octoprint.
SM has it’s own custom homing command with multiple parameters. It uses G1029. Search this forum for all the info needed.

For remote leveling I have the following gcode in the General tab of Bed Level Visualize:

M420 V ;get data
G1029 A ;leveling
G1029 S ;save data
G1029 D0 ;end leveling
M420 V ;get recent data
G28

However the values ​​of the measured points I obtain are higher than when I manually level on the A250 output. It seems that the nozzle height has been added. Who will help me to address this?

In between the G1029A and the G1029 S you have to set the Z offset. Usually a manual process but I suppose you could just do a “G01 Zn F100” command there if you knew the z value. That’s an experiment I haven’t tried.

When the G1029 S command is executed it normally would set the Z offset value based on where the nozzle currently is. You could lower the nozzle till it is the .1mm height above the bed and then when the G1029 S command is executed it shouild work.

That Z offset will vary depending on the heat state of the bed.

EDIT: You should probably put a M400 right after the G1029 A so it waits properly before the Z move.

1 Like

thank you, I will try. Is it possible to use the old z-offset in memory? In other words, to skip the query to z-offset?

@Tone Are you still using your script? Is that up-to-date and safe to use with a standard A350? Cheers!

I haven’t updated to the lastest firmware and Luban in the last couple of months as I haven’t used my machine so I can’t really answer if it is safe or not. I can’t think of a reason it wouldn’t be. I will try to make a point of updating everything and giving it a workout this week.

1 Like

All good, and thank you for updating that, I believe your work became a reference in the forum. I’m curious, why did you stopped using your machine, gave up?