BiLinear bed leveling

4

My G29 command reports

+0.178 +0.281 +0.830
-0.614 -0.012 +0.371
-1.208 -0.849 -0.351

So should I tighten up the screw of the bed, close to 0,0 position or loosen it?

I have a feeling that when I loosen it, it gets away from zero and I expect the opposite to happen.

For bed leveling i use a capacitive probe and after playing around with the screws here is the result

+0.406 +0.127 +0.411
-0.161 -0.007 -0.041
-0.572 -0.652 -0.668

Finally the leveling process was found here But the question remains. The value -0.572 corresponds close to 0,0 ?

OrElse

Posted 2018-07-03T19:32:30.193

Reputation: 285

What firmware are you using? There are several variations on the G29 command for different firmware. You have the marlin tag set, but it would help to put that information in the question. Are there arguments to the G29 command? – cmm – 2018-07-03T20:05:09.293

@cmm it reports Marlin bugfix-2.0.x and no extra arguments are sent – OrElse – 2018-07-03T20:43:34.163

1Could you please add by edit (in your question) how you level your bed? If done correctly by heating bed and nozzle, using a plain A4 paper, and regularly homing Z, should not lead to such a matrix. Note that auto leveling is not magic, you need to provide a bed as level as possible. – 0scar – 2018-07-03T21:17:31.173

Would a perfectly aligned bed give the identity matrix? – cmm – 2018-07-04T00:07:31.097

No, but a far better one than that. Sensor accuracy prevents the matrix to be unity. – 0scar – 2018-07-04T07:16:21.580

@0scar can you please check the update? – OrElse – 2018-07-04T19:14:03.643

@Oscar , I see from an answer below that two matrices are printed. One is a sampling of the height at nine points, and the other is the transform matrix that multiplies an [x y z] vector to make a corrected [x y z] vector. A perfectly aligned bed would be a 3x3 array of samples of zeros. The transformation matrix would be the identity matrix. I now understand that the OP is providing the sample array, ot the the transform matrix. – cmm – 2018-07-05T13:19:50.007

@cmm Correct! That verbose option of the G29 command is very useful for additional information. – 0scar – 2018-07-05T19:59:39.857

Answers

3

Proper leveling using plain "A4" or "Letter" paper is recommended. Level the bed by first homing all axes, then level each corner and at mid-span. In between leveling (by dragging the nozzle head from one to another position, beware of the hot nozzle!) redirect the nozzle to "Z=0" or home Z and instruct the printer to go to "Z=0".

Note that capacitive probe sensors are inaccurate, they tend to be influenced by the humidity of air.

Running Marlin Firmware and instructing a G29 trough a terminal gives me something in the region of the unity matrix:

Recv: Bed Level Correction Matrix:
Recv: +0.999994 +0.000000 -0.003585
Recv: +0.000003 +1.000000 +0.000823
Recv: +0.003585 -0.000823 +0.999993

Running the command G29 P3 V4 gives:

NOTE:

  • P Set the size of the grid that will be probed (P x P points)
  • V Set the verbose level (0-4)
Recv: G29 Auto Bed Leveling
Recv: Bed X: 25.000 Y: 22.000 Z: 0.138
Recv: Bed X: 109.000 Y: 22.000 Z: 0.071
Recv: Bed X: 193.000 Y: 22.000 Z: -0.842
Recv: Bed X: 193.000 Y: 97.000 Z: -0.427
Recv: Bed X: 109.000 Y: 97.000 Z: 0.083
Recv: Bed X: 25.000 Y: 97.000 Z: 0.086
Recv: Bed X: 25.000 Y: 172.000 Z: 0.004
Recv: Bed X: 109.000 Y: 172.000 Z: 0.019
Recv: Bed X: 193.000 Y: 172.000 Z: -0.297
Recv: Eqn coefficients: a: -0.00356075 b: 0.00080090 d: 2.38097906
Recv: Mean of sampled points: 2.07054519
Recv: 
Recv: Bed Height Topography:
Recv:    +--- BACK --+
Recv:    |           |
Recv:  L |    (+)    | R
Recv:  E |           | I
Recv:  F | (-) N (+) | G
Recv:  T |           | H
Recv:    |    (-)    | T
Recv:    |           |
Recv:    O-- FRONT --+
Recv:  (0,0)
Recv:   0.13385  0.14866 -0.16731
Recv:   0.21531  0.21284 -0.29814
Recv:   0.26715  0.20050 -0.71286
Recv: 
Recv: Corrected Bed Height vs. Bed Topology:
Recv:   0.12837  0.44228  0.42541
Recv:   0.26990  0.56653  0.35465
Recv:   0.38180  0.61425  0.00000
Recv: 
Recv: Bed Level Correction Matrix:
Recv: +0.999994 +0.000000 -0.003561
Recv: +0.000003 +1.000000 +0.000801
Recv: +0.003561 -0.000801 +0.999993

Running the command G29 P3 V4 again, but now with my vernier on the bed (opposite to the side of the origin, on the right side of the bed; vernier under probing points 3 and 4), gives:

Recv: G29 Auto Bed Leveling
Recv: Bed X: 25.000 Y: 22.000 Z: -0.003
Recv: Bed X: 109.000 Y: 22.000 Z: -0.050
Recv: Bed X: 193.000 Y: 22.000 Z: **5.709**
Recv: Bed X: 193.000 Y: 97.000 Z: **5.892**
Recv: Bed X: 109.000 Y: 97.000 Z: 0.007
Recv: Bed X: 25.000 Y: 97.000 Z: 0.039
Recv: Bed X: 25.000 Y: 172.000 Z: -0.023
Recv: Bed X: 109.000 Y: 172.000 Z: 0.017
Recv: Bed X: 193.000 Y: 172.000 Z: -0.329
Recv: Eqn coefficients: a: 0.02233918 b: -0.01331358 d: 2.30744504
Recv: Mean of sampled points: 3.45099973
Recv: 
Recv: Bed Height Topography:
Recv:    +--- BACK --+
Recv:    |           |
Recv:  L |    (+)    | R
Recv:  E |           | I
Recv:  F | (-) N (+) | G
Recv:  T |           | H
Recv:    |    (-)    | T
Recv:    |           |
Recv:    O-- FRONT --+
Recv:  (0,0)
Recv:  -1.27376 -1.23426 -1.57986
Recv:  -1.21205 -1.24414  4.64083
Recv:  -1.25401 -1.30091  4.45816
Recv: 
Recv: Corrected Bed Height vs. Bed Topology:
Recv:   4.05814  2.22162  0.00000
Recv:   3.12192  1.21381  5.22275
Recv:   2.08203  0.15910  4.04215
Recv: 
Recv: Bed Level Correction Matrix:
Recv: +0.999750 +0.000000 +0.022334
Recv: +0.000297 +0.999911 -0.013306
Recv: -0.022332 +0.013309 +0.999662

From the snippets you can see that the topology is printed in the output. You also see the vernier of about 4.5 mm comming back in the matrices. But the 4.5 mm thickness of the vernier is not easily found in the correction matrix!

The answer to your question is that the origin is in the lower left of the matrix, so you need to loosen the origin screw in the first example (this matrix shows you that the bed is highest at the right-back and lowest at the origin at the left-front). Your second example shows that the whole bed is tilted downwards to the front.

0scar

Posted 2018-07-03T19:32:30.193

Reputation: 25 570

This works only if the bed is truly flat. I've seen cases where someone tightens the four corner-screws too much and the bed becomes a convex surface (highest in the middle, even though all 4 corners are at the same level). So be careful! – Carl Witthoft – 2018-07-05T13:34:34.957

1@CarlWitthoft Yes, over tightening is not good as it can deform the bed, especially the thin aluminium heat beds. Personally I use 3 mm thick beds. Level must therefore be also checked at intermediate points (I referred to mid-span in the answer to indicate that, but I'm not native in English, sorry for the misunderstanding). – 0scar – 2018-07-05T13:45:30.637

3

An additional suggestion: after levelling with sensors or mechanically as in Oscar's great answer, verify both the level and the Z-zero by printing a single-layer pattern such as a few concentric squares or circles. Inspect to verify that no location is too high (material fails to extrude) or too low (material doesn't adhere, or appears much thicker than elsewhere).

By doing this you can avoid setting up a multi-hour print only to discover a 'bad corner' or some such.

Carl Witthoft

Posted 2018-07-03T19:32:30.193

Reputation: 2 918

That is a good suggestion, and actually something I also do, in fact I have written a tutorial once about bed centering (which I do not link for SE policy reasons), the print also checks the level to discover what you call a 'bad corner'. Good addition! – 0scar – 2018-07-05T13:48:02.617