The left side is too close, the right side is too high (or the contrary)

I very often get this kind of question and some variation. So I will try to help you solve this issue.

First, this is not an issue of the firmware. It is related to the fact that the BLTouch sensor is not as the same position than the nozzle. Any asymmetry of the printer tends to be amplified.

The first thing to do is to ensure that your top Z-frame is square:


Then ensure that the top Z-frame is perpendicular to the bottom XY-frame:


Use the four screws (see the circle) to adjust the position of the top Z-frame. It is important for the top Z-frame to be perpendicular to the bottom XY- frame , not the table or desk. It helps a lot if you are using Z braces (such as a remix of it).

Then with a ruler, measure from the top left corner of the Z-frame, to the front left corner of the bed XY-frame with a ruler. Then repeat this measurement on the right side, the two measurements should be the same:


If the two measurement are not the same, it means there is a small twist in the Z-frame, that will result in a very small rotation of the X-carriage about the X-rails. This will result in the BL-Touch moving at a different rate from or towards the bed compared to that of the nozzle which is closer (thank you Ray Edgley for pointing this out).

Then, and this step is very often overlooked, you have to ensure the X-axis is parallel to the bottom frame:


There are several possibilities to ensure that:

It is important to align with the frame (or rodes), not with the bed nor the table or desk.

In this example, the x axis is not properly aligned:


The left post touch the X-axis rode, but the right post does not. Move (gently) the z-axis rode on the right (see the arrow).


Since you deleted your post, I assume that you have solved your problem. Right? Can you explain how? It could help other people.

1 Like

No, I haven’t solved it but I decided to tear everything down again this weekend and realign it all one more time before asking for more help.

ok now I officially give up - I went through the pictures above and realigned everything, so it’s all perfectly square to itself (not the table). Then I set the Z-Height, auto leveled and tweaked until it’s within 0.0x on all corners as I always do. Same issue as before, left side is higher so very thin almost invisible first layer, while the right side is correct. Then I turned off auto-leveling in my gcode and ran again, same issue. Then I manually leveled using just a piece of paper, no auto leveling at all and it prints perfectly but obviously that defeats the entire purpose of having a BLTouch and it won’t stay like that forever. What could possibly be causing this?

When I manually level with paper, then run auto-level just to see the numbers they’re slightly off but less than I’d expect and that could easily be due to the difficulty of judging the friction between the nozzle and paper. I’ve tried a couple of different build surfaces, usually I have a PEI sheet but tried an Overture textured sheet because they send a 200x200 with every roll of filament.

Due to an increased workload I recently picked up and built a new Prusa MK3S, and seeing how auto-level works on that makes me really want to get the MMSP working. Everything else about the MP works fine, I have an upgraded Y carriage, Micro Swiss hot end, Noctua fan, Z-brace etc all to make this printer as good as it can be but auto-leveling is eluding me!

I had this problem too, until I realized it was an issue with my start-up gcode that effectively negated the auto-leveling mesh before printing. My recommendation to you would be to share what slicing software you use, and what is the start code you have.

@Grahame_Wright Which version of ADVi3++ are you using?

ADVi3++ v4.0.0. I’m using Cura 3.6.0 and and my start gcode is :

G21 ; metric values
G90 ; absolute positioning
M82 ; set extruder to absolute mode
M107 ; start with the fan off
M140 S{material_bed_temperature_layer_0} ; Set bed temperature (no wait)
G28 X Y F6000 ; move X/Y to min endstops
G28 Z F1200 ; move Z to min endstops ; raise the nozzle
G28 X Y F6000 ; move X/Y to min endstops
M190 S{material_bed_temperature_layer_0} ; wait for bed temperature to reach target
M104 S{material_print_temperature_layer_0} T0 ; set extruder temperature (no wait)
G29 ; auto-leveling
G28 X Y F6000 ; move X/Y to min endstops, may disable bed leveling
M420 S1 ; enable bed leveling compensation
M109 S{material_print_temperature_layer_0} T0 ; set extruder temperature and wait
M300 P200 ; beep to indicate that the temp is reached
G0 X20 Y0 F9000 ; Go to front
G0 Z0.15 ; Drop to bed
G1 X60 E25 F500 ; Extrude 25mm of filament in a 4cm line
G92 E0 ; zero the extruded length
G1 E-1 F500 ; Retract a little
G1 X100 F4000 ; Quickly wipe away from the filament line
G4 S2 ; Wait for 2 seconds
G92 E0 ; zero the extruded length
M117 Printing from Cura…; message

This looks OK. There was a problem in Alpha and Beta of 4.0.0 but if you are using the stable 4.0.0 or later, you are not concerned. Sorry, no idea.