On achieving a perfect level

Are you doing this cold?
What kind of feedback are you getting from the spider web prints?

I installed the o-rings while the bed was cold and after the initial manual calibration. I then ran consecutive manual calibrations while tweaking the screws in the areas of low or high spots in between each calibration. Bed was heated to 70C before each manual calibration and usually ended up being around 53C by the time calibration was complete. Rinse and repeat 7 or 8 times until done. Those prints only verify if the bed is flat/leveling is accurate. Oh and that is a layer of 0.5mm thermal pad under the glass.

So you’re effectively trying to negate the need to do leveling by making the plate level physically?

That would be good if the heat didn’t change things. It would also be good if there wasn’t any backlash. It would be good if the linear actuators didn’t torque just a little as they change directions. I’m finding that all those things affect the distance the nozzle is from the bed. I have found that when it is commanded to go down to Z.3 that it goes down to Z.35 and then as it starts to move in the X & Y it will drift down to Z.3.

With the 1.7 firmware I find that leveling does store the values correctly but that those values end up being off by these values on the matrix. They are off in a positive direction, High Z, which would result in the first layer not sticking.

I:___0___1___2
0 |0.10|0.02|0.14|
1 |0.13|0.06|0.14|
2 |0.16|0.02|0.19|
J

EDIT: Oh, and also, you can have a perfect level at those 9 points and there can still be a bunch of points on the bed that are off. That may not be the case for a glass bed. That’s why for real bumpy beds (relatively speaking) you probably really need a larger matrix. I’m going to experiment with a 5 x 5.

1 Like

I tried something different in my “Check Level Hot.gcode” file. Instead of going down at each grid point, I go down and then move in a 10mm square, X+, Y-, X-, & Y+. As it moves you can feel the nozzle getting closer on the test card or further away as it changes direction. Part of that is the Z backlash being taken up and part is the torque on the X axis as it move right or left. It might also be the leveling acting to move the Z a little up or down. I’ll have to take a look at the stepper count at each corner to see if that is the case.

How is it possible to get 5x5 grid bed leveling without acces to the firmware ?

@Tone yes I am basically trying to get as level as possible to negative the need for the inadequate bed leveling routine. The 3x3 mesh and the backlash both are hard to overcome. The backlash is easily seen when doing a manual level. I tried to only go down and never up when performing the manual leveling.

On the backlash issue, if you look at the Luban defaults, the layer heights are all multiples of 0.04mm which IS the magic number for this printer’s movement. Why would all the other settings be set to move 0.05, 0.10 and 1.0mm? With 1/16 microstepping it is nearly impossible for the machine to hit the above values. This can be heard when stepping up or down by 0.05mm and listening to the steppers changing their tone. Oh and while we are talking about Z stepping, I ran the same print directly from Luban on the PC and tried to adjust the Z offset live. The 0.05 button got no response, the 0.10 button requested a 0.05 move so there may be a bug there as well.

I am thinking I’ll get a piece of 1/4" mirror to get a flatter surface next.

1 Like

The SM2 controller does have some support for higher quantity leveling matrix. I’ve only played with it a tiny bit, it may be that we need more Gcode support before we can do it that way. It may require changes to the Touch Screen too.

1 Like

You guys are doing the lord’s work. Keep at it! @DroneOn @Tone

100% agree you sould work on research and fixing bug departement from Snapmaker :rofl:

The coefficient of expansion of the print sheet is 10-5mm / ° C, which is a negligible small value.
Our mechanic engineer are dedicated to find new material for the print sheet and proofing now.

1 Like

@Edwin I don’t think it is the print sheet so much as the over constrained FR4 heating plate. With countersunk screws (22 of them I think) the heated plate has no choice but to yield to the cast mounting plate underneath it which causes the peaks and valleys I believe.

2 Likes

I agree with @DroneOn, it’s the Aluminum frame that’s expanding and perhaps the heat bed itself. I’m going to try out an epoxy-glass sheet that is .375" thick as a replacement for the aluminum frame. I think it should have good thermal properties and it’s a LOT stiffer. I’ve got the sheet, I just need to machine the mounting holes and I am going to try and do the machining with the SM2.

2 Likes

You are brilliant @Tone! I didn’t even think about using the CNC function on the SM2. I thought I would have to knock the dust off of my big CNC machine.

Maybe the glass is the better solution for this period.

A glass bed doesn’t solve the aluminum bed warping, maybe it reflects the heat downward some. Its stiffness may resist some of the frame warp but its still likely to expand upward which is the main problem now.

The countersunk screws (22 of them) the heated plate will not affect the heat distribution, and the vital factor is the arrangement of resistance wire. We are optimizing this solution to get a better heating solution.

Keep us posted please.

1 Like

Definitely want to jump in here with a big thanks to all you guys that have been battling this leveling issue (especially DroneOn and Tone) as well as SnapMaker support. I’ve been following this thread anxiously waiting to see what you guys come up with next. I’ve had a few “successful” prints, but only when I print small things individually in one spot on the bed.

Definitely looking forward to a solution on this one. Thanks for all the effort on this guys. It’s very much appreciated!

2 Likes

This is a good synopsis of the stacked problems we’re having with bed leveling.

1 Like

@Tone you should have been part of the design and internal QA process for the SM2.

The bed heater is turned off during calibration, is this something that can be changed via firmware source? Wondering what is the value in explicitly turning it off? or is this a standard Marlin behaviour.