Marlin Bed levelling help

I’m having a hard time understanding what’s going on here.

I run the G29 and it shows the following:

Recv: Bilinear Leveling Grid:
Recv:       0      1      2      3      4
Recv:  0 +0.030 -0.050 -0.050 -0.060 -0.010
Recv:  1 +0.250 +0.050 -0.050 -0.110 -0.100
Recv:  2 +0.430 +0.170 -0.040 -0.190 -0.200
Recv:  3 +0.640 +0.250 -0.010 -0.210 -0.270
Recv:  4 +0.840 +0.160 +0.010 -0.240 -0.430
Recv: 

When I run a print that is large and flat, the left side of the print doesn’t squish as much as the right side. Watching the print, I can’t see the Z move up/down as the print is started. What also confuses me is that this map says the left side of the bed is ‘high’, so I’d expect it to squish more not less.

Am I reading this wrong?

Part of me thinks this is going to be the straw that breaks the camel’s back in me switching to Klipper.

It’s going to be below freezing for 3 days this weekend. Maybe it’s a good weekend to wheel the printer into the house and do the swap by the fireplace. I’m sure the wife won’t mind.

3 Likes

Why use mesh leveling? In my opinion, it’s just to compensate for an inaccurate printer. Build your printer properly, use a 3mm thick aluminum heatbed with a sheet of glass on top, adjust it perfectly once, and you won’t need mesh leveling again. Even 310mm x 220mm with layerhight 0.2mm is no problem

Sure. Looking at my mesh. Which screw do I turn? That’s the crux of my problem. To me 0,0 would be the first datapoint, which would be the front left. But then I’m reading that front left is the 0,4 data point. But that doesn’t make sense as the first layer print I’m doing seems to have the nozzle farther from the print bed on the left side of the print than it does the right.

My bed is already a 3mm aluminum sandwich with a magnetic lift-off plate at the top.

Are the values inverted on the MP3DPv4 because the bed moves ‘down’ for positive Z ?

I’m more familiar with Unified Bed Levelling (UBL) but I’ll offer some thoughts.

Marlin Bed Levelling has many subsets, including Bilinear (ABL) and Unified (UBL). Personally I prefer UBL, as it allows for easier editing, viewing and filling in of un-probeable (is that a word?) areas. But there are common themes with both variations.

When using any Marlin Bed Levelling, running a Home command (G28) disables the automatic bed levelling function. Are you enabling it with an M420 S before printing?

Marlin Bed Levelling is best used to compensate for minor high and low points within the bed (in other words, a bed that is not flat). It isn’t designed to compensate for a bed that is tilted or has a high corner (in other words, a bed that is not adjusted correctly).

It seems from the matrix results that the whole 4,x row is too high by at least 0.40 (compared to the 0,x row) , and one corner (4,4) is even higher at about 0.80 higher than the 0,x row.

I would start by correcting this through adjustment of the bed levelling screws (lower 4,4 by around 0.80. and lower 4,4 by around 0.40)

You can use ABL to check your results:

  • Home using G28
  • Use the G29 command to map the matrix
  • View the results
  • Re-adjust the bed level screws as needed
  • Repeat until you are reasonably level (within 0.05) across the whole matrix
  • Use ABL to compensate for minor hills or valleys in the bed (that final 0.05)

Hope that helps somewhat

I do the following at the beginning of each print:

G28
G34
G29

I did notice I was doing a M420 S after the G29, which would be negating the G29 :confused: I’ve removed that and it may be part of the issue.

You shouldn’t need to run a G29 each and every print (IMO). Once you have a reasonably adjusted bed, running G29 once, saving it, and then enabling mesh levelling is all that is required..

Do make sure that your bed is at temperature when doing the ABL. Aluminum and glass beds can expand and contract a fair bit.

An S0 will always turn it off, and an S1 will always turn it on. I think that a simple S may toggle it

You can also set the parameter ENABLE_LEVELING_AFTER_G28 to always enable it after homing

Sorry. I left the ‘1’ off. I was doing M420 S1

it only takes a minute. and I was under the assumption that the aluminum bed would expand more/less depending on the temperature it was set to. Since I change filament types from PLA->petg->asa often, I figured running it before each print wouldn’t hurt.

Grumble Grumble. I need to modify my bed in order to adjust the heights physically. I forgot I had used some hard rubber hose as spacers because the insulation pad thickness was causing issues. The rubber hose lengths aren’t 100% identical across the board.

I need to try printing some spacers that are all the same height. PLA will work for testing, but I’ll want to re-print in ASA at some point.

what I said in my first post, make sure it is not an inaccurate printer.

Sure. But that never explained WHY my bed levelling wasn’t doing the ‘bed levelling’ thing.

However. Clicking a few things this morning on a whim and I discovered this little oppsie.

I wonder what clicking that checkbox does :confused:

That’s not it. That’s just turning it on ‘right now’.

I still can’t figure out why the Z doesn’t move up/down during my print to adjust for the bed mesh.

I think I missed something in my Marlin config. I’m going to take a look at that again and see. I landed on a Bug report in marlin talking about a few other lines in the config I may have not known about.

Don’t get me wrong. I still plan on fixing the hardware issues. But I want to figure out why the software isn’t working like I expect it to. :slight_smile:

1 Like

This just gets weirder and weirder. I replaced the hard rubber spacers with some springs I had.

I did a G28, then a G34, then a G29 H250. I got the following mesh.

Recv: Bilinear Leveling Grid: H250
Recv:       0      1      2      3      4
Recv:  0 +0.040 -0.030 -0.050 -0.070 -0.050
Recv:  1 +0.180 +0.040 -0.040 -0.110 -0.120
Recv:  2 +0.360 +0.130 +0.000 -0.140 -0.160
Recv:  3 +0.520 +0.220 +0.040 -0.110 -0.210
Recv:  4 +0.690 +0.280 +0.060 -0.150 -0.250

I manually adjust the bolts on the corners based on these results. I re-ran the G29 H250 and got the new mesh.

Recv: Bilinear Leveling Grid: H250
Recv:       0      1      2      3      4
Recv:  0 -0.010 -0.050 -0.050 -0.040 +0.010
Recv:  1 -0.030 -0.140 -0.190 -0.240 -0.230
Recv:  2 -0.030 -0.220 -0.340 -0.430 -0.450
Recv:  3 -0.060 -0.300 -0.460 -0.580 -0.630
Recv:  4 -0.040 -0.390 -0.570 -0.770 -0.860

Ok. That’s finally looking better. Opposite corner is a bit low, but ok.

I rerun the G34. I figured I adjusted the screws, the Z level is probably off.
Then I reran the G29 H250 again… WTF???

Recv: Bilinear Leveling Grid:
Recv:       0      1      2      3      4
Recv:  0 +0.050 -0.010 -0.020 -0.030 +0.020
Recv:  1 +0.170 +0.060 +0.000 -0.090 -0.090
Recv:  2 +0.330 +0.120 -0.010 -0.120 -0.140
Recv:  3 +0.450 +0.200 +0.020 -0.110 -0.190
Recv:  4 +0.610 +0.240 +0.060 -0.170 -0.260

Is this trying to tell me my aluminum plate is warped? I’m printing a G26 to see if the auto leveling does anything, but I’m betting something weird is still going on.

Results of my most recent G34

Recv: Z2-Z1=0.0100 Z3-Z2=0.0100 Z3-Z1=0.0000
Recv: Target accuracy achieved.
Recv: Did 4 of 8
Recv: Accuracy: 0.01

And one more G29 H250. If it’s not anything, it’s at least consistent

Recv: Bilinear Leveling Grid:
Recv:       0      1      2      3      4
Recv:  0 +0.070 -0.020 -0.030 -0.020 +0.020
Recv:  1 +0.200 +0.060 -0.010 -0.070 -0.070
Recv:  2 +0.350 +0.140 +0.000 -0.110 -0.120
Recv:  3 +0.510 +0.230 +0.030 -0.090 -0.170
Recv:  4 +0.650 +0.270 +0.040 -0.150 -0.210

Good news is, I can see the Z going up and down when testing with the G26. I need to make sure my slicer isn’t doing anything dumb. I’ll try saving this mesh in EEPROM and just recalling it from memory instead of running another G29.