### BiLinear bed leveling

• 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` ?

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 it reports Marlin bugfix-2.0.x and no extra arguments are sent

Could 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.

Would a perfectly aligned bed give the identity matrix?

No, but a far better one than that. Sensor accuracy prevents the matrix to be unity.

@0scar can you please check the update?

@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 Correct! That verbose option of the G29 command is very useful for additional information.

4 years ago

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.003585Recv: +0.000003 +1.000000 +0.000823Recv: +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 LevelingRecv: Bed X: 25.000 Y: 22.000 Z: 0.138Recv: Bed X: 109.000 Y: 22.000 Z: 0.071Recv: Bed X: 193.000 Y: 22.000 Z: -0.842Recv: Bed X: 193.000 Y: 97.000 Z: -0.427Recv: Bed X: 109.000 Y: 97.000 Z: 0.083Recv: Bed X: 25.000 Y: 97.000 Z: 0.086Recv: Bed X: 25.000 Y: 172.000 Z: 0.004Recv: Bed X: 109.000 Y: 172.000 Z: 0.019Recv: Bed X: 193.000 Y: 172.000 Z: -0.297Recv: Eqn coefficients: a: -0.00356075 b: 0.00080090 d: 2.38097906Recv: Mean of sampled points: 2.07054519Recv: Recv: Bed Height Topography:Recv:    +--- BACK --+Recv:    |           |Recv:  L |    (+)    | RRecv:  E |           | IRecv:  F | (-) N (+) | GRecv:  T |           | HRecv:    |    (-)    | TRecv:    |           |Recv:    O-- FRONT --+Recv:  (0,0)Recv:   0.13385  0.14866 -0.16731Recv:   0.21531  0.21284 -0.29814Recv:   0.26715  0.20050 -0.71286Recv: Recv: Corrected Bed Height vs. Bed Topology:Recv:   0.12837  0.44228  0.42541Recv:   0.26990  0.56653  0.35465Recv:   0.38180  0.61425  0.00000Recv: Recv: Bed Level Correction Matrix:Recv: +0.999994 +0.000000 -0.003561Recv: +0.000003 +1.000000 +0.000801Recv: +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 LevelingRecv: Bed X: 25.000 Y: 22.000 Z: -0.003Recv: Bed X: 109.000 Y: 22.000 Z: -0.050Recv: 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.007Recv: Bed X: 25.000 Y: 97.000 Z: 0.039Recv: Bed X: 25.000 Y: 172.000 Z: -0.023Recv: Bed X: 109.000 Y: 172.000 Z: 0.017Recv: Bed X: 193.000 Y: 172.000 Z: -0.329Recv: Eqn coefficients: a: 0.02233918 b: -0.01331358 d: 2.30744504Recv: Mean of sampled points: 3.45099973Recv: Recv: Bed Height Topography:Recv:    +--- BACK --+Recv:    |           |Recv:  L |    (+)    | RRecv:  E |           | IRecv:  F | (-) N (+) | GRecv:  T |           | HRecv:    |    (-)    | TRecv:    |           |Recv:    O-- FRONT --+Recv:  (0,0)Recv:  -1.27376 -1.23426 -1.57986Recv:  -1.21205 -1.24414  4.64083Recv:  -1.25401 -1.30091  4.45816Recv: Recv: Corrected Bed Height vs. Bed Topology:Recv:   4.05814  2.22162  0.00000Recv:   3.12192  1.21381  5.22275Recv:   2.08203  0.15910  4.04215Recv: Recv: Bed Level Correction Matrix:Recv: +0.999750 +0.000000 +0.022334Recv: +0.000297 +0.999911 -0.013306Recv: -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.

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!

@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).