I have had exactly the same experiences as you did with a inductive sensor on a Prusa i3 clone. It looks as though the bed leveling is not executed, or the level/mesh tilted. Please do note that automatic bed leveling is not magic, you still need to provide a build platform as level (and flat) as possible. A slate of glass is a good build platform surface as the glass production process ensures that the glass is very flat and easy to level.
What I did to solve the problem is that I re-leveled the bed and send the M420 S1
command over USB to the printer to enable bed leveling as I was under the impression that it did not use the grid obtained with G29
.
On my CoreXY I also use a touch sensor (3DTouch, which is a BLTouch clone) like you do, even with that sensor I sometimes see that the automatic level is uneven (one side of the skirt has very thin/see through deposition, while the other side appears normal), this is most probably caused by the sensor accuracy (or an obstruction under the probe needle). There is a way to increase the probing accuracy by using double probing where the second probe is advancing slower to the build platform as can be seen in the Marlin Configuration.h file:
// Feedrate (mm/m) for the first approach when double-probing (MULTIPLE_PROBING == 2)
#define Z_PROBE_SPEED_FAST HOMING_FEEDRATE_Z
// Feedrate (mm/m) for the "accurate" probe of each point
#define Z_PROBE_SPEED_SLOW (Z_PROBE_SPEED_FAST / 2)
For double probing you require to set:
// The number of probes to perform at each point.
// Set to 2 for a fast/slow probe, using the second probe result.
// Set to 3 or more for slow probes, averaging the results.
#define MULTIPLE_PROBING 2
Side note:
From an earlier posting it appears that you are using the #define Z_PROBE_OFFSET_FROM_EXTRUDER
in the configuration file to set the offset. It is much more convenient to set that through the LCD menu (Bed Leveling
-> Z Probe Offset: -–-
) or send the M851 Zx.xx
directly over USB or load through a .gcode file from SD card to prevent numerous flashing the firmware with alternative parameters. Make sure that you enable:
#define EEPROM_SETTINGS // Enable for M500 and M501 commands
in the Configuration.h file and execute M500
to store the new setting set by M851
.