SM2 Bed Leveling 101

Thank you @Tone, I’ve been eagerly reading everything you’ve been posting on this topic, but your leveling 101 document has closed a gap in my understanding, and I am now confident I can consistently achieve something resembling a level platform. I was a first wave recipient but after having repeated issues with getting good first layer adhesion and other associated issues like head crashing I had all but abandoned my A350 in frustration hoping for Snapmaker to come to the party and fix this issue via firmware. But yesterday I used your increase matrix size post to run a larger grid, and now have a 50H print in progress with everything going well. The community is better for your presence and you have my appreciation.

5 Likes

@monkeygerbil222, Thankyou for the feed back, I was wondering if this was working for anybody. I think it still needs some work, it’s still far too complicated for the average user. If your a tinkerer like me it’s an interesting little adventure, but most people just want to use their SnapMaker in peace.

3 Likes

Anyone who is using the 7 x 7 matrix will need to reload. The last section of the TWEAK macro had all 0’s for the J address.
Fixed now. Thanks to @xchrisd
Fixed one more 1:56 pm MST 4/22/20

1 Like

Hi @Tone, just found out what was my problem. When I opened the spreadsheet on my computer with MS Excel, all the mesh points in the TWEAK Macro were something like this “M421 I0J0 Q.00” and I couldn’t figure out why was it giving me back always zeros.
Today i found that Excel automatically converted all the dots in Z Mesh measures into commas so that’s why i had only zeros.
I’ve already fixed the problem (go to Options, Advanced Options, Change the “Use System Separators”)
Now I’m printing a square to test the whole bed leveling and I think that’s ok now.
I still need to tweak few other things as you can see like flow rate or maybe speed and in the bottom left corner there’s the mark of the first auto calibration gone wrong :rage:

1 Like

Hi @Tone,

I’m trying to following your process in order to get a good calibration on my printer. After saving the initial mesh, I run your Check Level Hot 7x7 gcode file and take note on which points a high or low. What am I suppose to do after this and how do i tweak specific points using the necessary code

@vireshnatha, I think I answered your question in this post above:
SM2 Bed Leveling 101

What I do is make a note of which grid points need to be adjusted and enter them into a “copy” of the tweak macro but I zero out the points that don’t need changing. Then I run that macro and then check again.
Once you have it where your happy with it you can adjust the second matrix to the current M420V readings and then save the Tweak macro as it is then. Then you can use that tweak after doing any new manual leveling in the future and it will save you some time in adjusting the grid points. You may still have to adjust some points a little bit.

1 Like

Hi @Tone

Thank you for the feedback. Say in case where a point needs to be adjusted, how will i know how much it needs to be adjusted by?

@vireshnatha, I just use the calibration card and my “Check Level Hot” Gcode file. If the card is too snug then the grid point obviously has to be moved up. If it’s loose, it needs to go down. I have developed a good “feel” for it. It usually takes me 4 or 5 passes worth of tweaks to get where It feels good at all points. I will usually move .02mm at a time. It can be done more precisely by using a dial indicator but that takes time to swap out the print head. It could perhaps be done more precisely if you used a feeler gauge at each point to determine how much it needs to moved. Perhaps I should generate a Gcode macro for adjusting one grid point at a time. Of course that is just what doing Manual Leveling is but it forces you to do all grid points at the same time.

1 Like

Hi @Tone,

Thank you for the clarification. I have a dial indicator lying around so I will try to set it up so I can get accurate readings.

I would recommend using this Dial Indicator mount:

Measuring in the exact location where the print nozzle is avoids a number of complications.

2 Likes

Hi @Tone,

Thank you for the info.

Do you know about the following code: M140 S55 (55 is the temp for the bed)? So you can set the heat bed to a specified temp and carry out the automatic calibration without the temp dropping.

Yes, it sets the bed temperature and waits till it reaches it, but leveling currently turns it off. It’s been requested by many users to leave it on during leveling. There is a way to start manual leveling and then turn on bed heating. It’s requires using the console in Luban after starting manual leveling on the Touch Screen.

So after the excellent support from @Edwin my Snapmaker is working now without any issues from the linear module at the moment.

I just would like to give my feedback and experience about leveling here may it will help someone else to get a good result.

I had much time to read here until the part arrived and I was able to print again my first successful objects. Before the linear module which holds the bed (A150) stopped middle of printing or drove to the end and and… so no chance to print a long job to do something cool. At the end it scratched my bed and I stopped and had a look with the support before more goes wrong.

Today I installed everything and have done a manual calibration 3x3, more is not available on the A150, or I can’t find it…:wink:

After that I started a benchy with no success. Was not sticking on the bed or the layer to high or too „squishy“. -> same as others reported here and I had before until I stopped printing.

Recalibrated again manual, near same results. Everything done with a „hot“ bed. Then I remembered inside this thread about flow calibration. Checked it and I was around 1cm+ deferred from the expected 10cm. Calculated e steps entered, saved. Rebooted the printer to check if it was stored correctly which it was.

Then next benchy and boom as would some magic happen! Perfect first layer and also above. Z offset = 0 wonderful, before I had to adjust the offset all the times.

So for me the magic thing was the flow calibration. Just as an idea to check for the others which have issues in calibration for a good first layer.

Below my first benchy in PETG from Snapmaker without any hard tuning. From my point of view it looks quite good I think. What do you think about the quality? Any suggestions what can be improved?

So then back on track with my printer. :wink: now is time for some reading to get it more perfect if possible.

4 Likes

Hi @Tone,
So when I run the M140 S60 my heat bed temp is set to 60. When I activate the auto calibration via the screen or Luban, it maintains the bed temp at 60 deg.

Have you tried this recently on your side? Not sure if the firmware or latest version of luban fixes the issue whereby it turned off when doing the auto calibration

Hi @Tone,

I just finish print the dial indicator holder that you provided. How will I know how to set the appropriate height when its in the holder? I attached the specs of my dial indicator.


Because you don’t have a fixed reference to where the print head is you should just pick one of the grid points and move to it at Z0 and set your indicator to zero at that point. Then set all the other points from there.
You will always have the problem when you switch back to the print head that your whole leveling grid may be high or low because you removed and replaced the print module. You will have to adjust all your grid points by some fixed amount after a swap. Using a Macro in Luban is the best way to do that.

I’d like to thank you @Tone, for a great post, sheet and set of instructions.

I’m still going through trying to get the bed calibrated, and thought I’d successfully completed the 5x5 steps… Since the latest A250 firmware seems to support 5x5 out of the box. Sadly, I’m still struggling with the Check Level Hot [size] macros…

I’m actually going to try the 7x7 steps before my next attempt at printing.

Thanks for all the help in your cool spreadsheet.

First of all I’d like to thank @Tone and all the other experts for sharing their knowledge here!
I’ve got a (maybe stupid?!) question concerning this procedure. As I understand that the main benefit is, that after all you get a “tweak macro” that corrects the difference between a hot bed and a cold, correct?

So you run an automatic leveling and afterwards you tweak with the macro?! What is the difference to just set the desired temperature over the luban console and then start an autoleveling on the control panel?

Again, sorry if I missed the important point, it’s so much to learn here that I get more and more lost…

@FlyByWire, if you run autoleveling it turns off the bed heat. You could just do a manual leveling with the heat on and get pretty close results. Ideally you need to let the heat soak in and stabilize for a half hour or so, it takes about that long before it stops moving. My technique is to just do an auto level and then apply the tweak macro which I believe takes less time. It does take a bit of time to get the tweak macro tuned up the first time but later uses of it will take much less time. I usually just run the CheckLevel macro when I first start up and make a couple tweaks to those points that are off. I will only run the full AutoLevel & Tweak if I’ve changed or removed heads or if the CheckLevel macro shows things are far off. (Maybe something got bumped)

Hope that helps.

3 Likes

When I see that the head is too high (gap is measuring .205mm, not 0.1mm) do I add or subtract values? I didn’t see this in the instructions, maybe I missed it?

So my M420V says 6.45 for the 0,0 position, after running the check it has a gap of 0.205mm do I change this to 6.55 or 6.35?

thanks