Ender 3 with BLTouch prints slanted lines I'm having a problem getting a clean first layer on an Ender 3 with BLTouch auto bed leveling. Thickness seems to fluctuate all over the bed, but in a consistent (repeatable) way. Here's my attempt to print a single layer 5 square bed calibration test:


I stopped the print midway through filling the first square, but you get the idea. Lines go from too low so no filament comes out to too high.

I printed this several (many) times with slight settings tweaks and it looks pretty much the same every time; the ups and downs aren't random. For example, the center square always is always too low on the left and too high on the right:



The printer is a SainSmart Ender 3 Pro with a BLTouch V3.1 and Creality glass bed, otherwise stock. I flashed a bootloader and Marlin 2.0 using the instructions and pre-compiled firmware from 3D Printing Canada. I'm using the glass bed upside-down on the plain glass side (no coating).

I pre-heated and leveled the four corners manually using the paper method. I auto-homed and then lowered the hot end until it would just catch a piece of paper and used that height to set the Z offset using M851 and saved it with M500. It's currently set at -2.80.

I added G29 to GCode start in Cura, and it does a 3x3 probe before the print starts. Here's the output when I run M420 V:

Bilinear Leveling Grid:
      0      1      2
 0 -0.207 +0.172 +0.162
 1 -0.100 -0.160 +0.220
 2 -0.118 +0.215 +0.295


Here's what it looks like in the Bed Visualizer plug-in in Octoprint:



If I understand this right (dubious) it's showing that the glass is lower toward the front and left, highest at back-right. But it's only 0.4mm from the lowest to highest points. And the whole point of mesh leveling is to compensate for this anyway.

At Paulster's suggestion I turned off mesh leveling using M420 S0, leveled manually, and printed again. The result is pretty similar (note that this time I let it run all the way through):



Where should I start looking to diagnose this problem?

Update

I noticed my X-axis belt was a bit loose, so I tightened it up. It seems to have helped with the odd Z slanting. My test print is still not great though, so this may not be the whole problem. Also I've never seen this effect listed as one caused by loose belts, so it's dubious as the cause. Here's the current test print after tightening the belt:




It's flatter, but I'm still getting (I think) under-extrusion and some odd wobbles at the corners.
This turned out to be a problem with the tightness of the rollers at the left and right sides of the X-axis gantry (that roll up and down the Z rails).
Z-axis motion is driven by a single stepper motor on the left side, so the rollers have to be just the right amount of tight to keep the right side in sync. If the right side is tighter or looser than the left then it lags behind, which gives the gantry a slight slant which changes as it goes up and down.
If the gantry is changing pitch throughout the print, no amount of bed leveling will help. Even auto-leveling is worthless, because the readings the BLTouch takes become immediately out of sync with the gantry as soon as it moves again.
The solution is to adjust the eccentric nuts in the rollers on the left and right. The best description I could find is that they need to be just tight enough that there's some resistance if you roll the top wheel with your finger, but loose enough that you can roll it without forcing the gantry up and down.
I ended up putting a magnetic digital level on top of the gantry rail so I could see exactly how much its incline changed. Send gcode to slide it up and down, then adjust the eccentric nuts a little bit, then repeat. Once I got it so the level didn't change, I re-leveled the bed and printed a beautiful first layer.
That was almost a year ago and it's been working ever since. I've had to re-adjust the eccentric nuts periodically when things start to get off, probably due to thermal expansion when the weather changes.