On achieving a perfect level

Frame it! Hang it on the wall right next to your Snapmaker and sign it. It might be worth something someday!! :grin:


Hi Edwin do you have news about 5*5 leveling method ? you said before end of April

Sorry for the late reply. The new version firmware will be release soon.

1 Like

Can you please share your settings for using the A350 with CURA? I am getting desperate trying to get anywhere with LUBAN. Thanks.

Hi I only have A250 but here is the link for cura profile

Thanks Isaac! Much appreciated.

I checked the temperature at different points on my bed using one of those handheld devices and also found variations between different areas of the bed. Not sure if it is supposed to be like that or if other heated beds on other printers have this issue…

Hey @Tone, i wanted to share my dial-indicator results with you (A350, 5x5 grid):

The heatbed itself is uneven itself, it compenates a bit while heating.

Heating for 30min vs start printing right away after heating, difference of the points about 0.01mm to 0.2mm.
Heating for longer than 30min (60min) brings no more essential expansion to my heatbed, ~0.02mm.

heated bed without print sheet:
cold difference MIN/MAX: 0.86mm
hot difference instant printing MIN/MAX: 0.64mm
hot difference 30min heat MIN/MAX: 0.68mm
hot difference 60min heat MIN/MAX: 0.70mm

heated bed with print sheet:
cold difference MIN/MAX: 0.82mm
hot difference MIN/MAX: 0.65mm

Everytime the lowest point of my bed is I1J2.
My highest point is I4J4.

All in all the heat bed is massively warped.
From point to point in a tri or rectangle it seems not so much (except the front left edge), here the values vary about 0.04mm - 0.2mm.

I would love to hear more about the problems from the snapmaker team, like prusa did it in this blog:

It seems this is a problem of every 3d printer company.
1 Like

Nice that Prusa give clear visibility to this issue


I believe they have turned on backlash compensation in the 1.8 firmware and may even be using it during calibration. But I haven’t verified that yet with experiments. M425 command.

1 Like

Here is what i get, backslash is inactive:
Send: M425
Recv: Backlash correction is inactive:
Recv: Correction Amount/Fade-out: F0.00 (F1.0 = full, F0.0 = none)
Recv: Backlash Distance (mm): X0.00
Recv: Y0.00
Recv: Z0.00
Recv: ok

1 Like

Super! That indicates that it is enabled. Try something like M425 F.2 Z.02
The F turns it on to 20%. An F0 will turn it off. The Z.02 means it will only adjust for the Z direction to the amount of .02mm. I don’t exactly understand how the F works.

Edit: There is also a “S” that is referred to as smoothing. It spreads the compensation out over multiple commands to create less of a jerk, probably more useful for X & Y compensation. You can probably use a F1 to start with.

1 Like

Hello all,

I am still waiting for my SM2 to arrive, but I did have a digital dial indicator with serial out. Reading all this I have been playing around with it and managed to avoid buying the expensive cable and reading the data out using an ESP microcontroller connected to it.

My idea was to have the microcontroller also talk to the SM either over wifi or direct serial connection to automate the manual calibration process you are doing. Does anyone know if that would be possible. This would definitely simplify and speed up the process a lot.

If it would be possible to direct the SM to move to the right position from the ESP device, do the measurement and set the correct calibration value.

Another separate idea I had with it was to use it to “scan” surfaces of objects to digitize them using the SM :slight_smile: Could also be used to take into account uneven surfaces when using the cnc module.

I quickly glanced over the github repository but couldn’t really find an API yet (but I didn’t look very thoroughly to be honest). If there is some info available I’d be happy to have a go at it.
(Unfortunately, my SM isn’t arriving until September/November)

Guys, what’s the GCode command to trigger the auto-levelling of all points, without stopping in the last one to use the card? I have a Prusa that has a routine to auto-level before every print, and after the hot bed achieve the right temp.

You don’t need a Gcode, just turn on Auto Leveling and it does it automatically at the beginning before running your program. It won’t do it with the bed heated up, that’s the point of doing it manually.

And doing manually, what’s the GCode command that would trigger that? Tkx!


I read the whole tread and due to my humble knowledge about all that stuff it’s really hard to find out the best way to level the print bed.

Maybe one of you experts could provide a walkthrough step-by-step so even noobs like me can achieve a better leveling. It’s not laziness to manage it by myself, I’m just overwhelmed with all that stuff. I doubt there will be a firmware update that just does a perfect (or even close by) leveling with just one click?!

I ordered a dial indicator (the digital one, that was talked about in February). Now I find myself thinking this was a quick shot because I really don’t know what’s next.

BTW: @tone. Could you provide the link to the holder for the digital dial indicator you spoke about on April, 5th?


What is described as bed leveling in machining is actually called tramming. It’s the process of making the machine “trammed”, “trammed-in” or “in-tram”, depending on who’s describing this.

In an ideal world every axis is square to every other axis, but in reality it’s not. If for example your x-axis has a lean in it the aim is to make the work surface parallel to that.

So when you’re levelling the bed, you’re affecting the work table, but that’s only part of the process.

In addition to this you can have bumps in the system. An axis, or the bed or both might not be perfectly straight.

Because we’re using a software driven machine, in addition to the physical aspect of the squareness and straightness of the machine you can do some cool tricks with keeping track of where things aren’t perfect using software.

What you’re describing as automatic leveling is just the software compensation aspect of this process.

This means that if you were to attempt to print a straight line on your software only compensated bed, which is just crudely tracking bumps and angles, you’d have a perfect print, but it wouldn’t actually be flat or straight in the real world.

What @tone has come up with is a method to bridge the gap between the two in order to achieve a better combined result.

By mounting a dial indicator to the head, you can check the relative errors between various axis and fix the squareness and straightness before you do the minor compensations in software.

Hope this helps.

Disclaimer,. I’m not a machinist, I’m still waiting for my SM2 to ship, I’ve been reading and watching YouTube machining channels for years.


Edit: Updated the other ways people describe a machine being “trammed”.

@FlyByWire, Have you read this thread?:

The introduction page on the google docs page has a step by step along with other pertinent links.

Check the: SnapLinks -- Wiki

I am in the midst of a new mount that will locate the indicator at the exact location of the nozzle.
That in combination with a new google docs sheet should allow me to do my own custom leveling routine that should be about as perfect as is possible with the SM2.
I have also acquired a Digital dial indicator that has a digital interface to read it with the computer.

1 Like