Mesh bed compensation and first layer issues
-
Hi all,
I've been getting poor first layer prints with filament over the left-hand-side of the bed squeezed too much and the right-hand-side not squeezed enough.
I'm using a Cartesian printer with a BL Touch and am using mesh bed levelling and was not expecting to get these first layer issues so I must be doing something wrong.
I ran through the Using Mesh Bed Compensation procedures here: https://duet3d.dozuki.com/Wiki/Using_mesh_bed_compensation
And found what I think is fairly large trigger height fluctuations which I guess accounts for the first layer height problem. The problem is the document doesn't say what to do when there are reasonable fluctuations in the trigger height..
Here are my readings:
And here's my mesh bed analysis:
(I think I've angled the analysis in the same dimension as the probe height readings - 0,0 = bottom left and front left)
Can anyone offer any ideas around what I've done wrong?
Do the probe height readings suggest my frame isn't square?
Why doesn't mesh bed compensation compensate?
What should I do to fix this?Thanks in advance
-
The main problem with the height map is that you have a large Z offset.
- How are you homing Z: with the bltouch, or with an endstop switch? If with bltouch, are you probing to home Z at the centre of the bed, or somewhere else?
- After homing Z, does Z=-0 correspond to the nozzle just touching the bed/just gripping a sheet of paper?
- Have you calibrated the bltouch trigger height and out the result in your G31 command in config.g?
-
To be honest, the large z offset is a result of me messing around yesterday. When I've been having the print troubles the mesh normally lies about +0.06 above Z0 so I think that image is a bit misleading.
I posted it because it shows my current situation (I've been playing with the z offset in config.g).
I thought I'd start from scratch and run through the Using Mesh Bed Compensation procedures. So I think I'm mid way through sorting this and I just want to know what to do next.
Having finished testing the fluctuations of trigger height over the bed I'm not sure what I should do next.
I guess I should mechanically level the bed till those fluctuations are minimalised?
Does it suggest a frame squaring issue or is it just a case of altering the corner bed screws?To answer your questions:
How are you homing Z: with the bltouch, or with an endstop switch? If with bltouch, are you probing to home Z at the centre of the bed, or somewhere else?
I was homing with the bltouch at X0 Y49 (to allow for the X Y offset) - I have just changed this to the absolute centre of the bed,
After homing Z, does Z=-0 correspond to the nozzle just touching the bed/just gripping a sheet of paper?
Yes, just gripping a sheet of paper 0.09mm thick
Have you calibrated the bltouch trigger height and out the result in your G31 command in config.g?
Yes, gcode below:
G31 X41 Y-47 Z1.736 P25 ; Set Z probe trigger value, offset and trigger height -
Are the fluctuations of trigger height consistent (i.e. is the trigger height always the same at a particular point), or random?
Are you probing with the bed and extruder heaters on or off? There are reports that the bltouch is sensitive to magnetic fields generated by heater currents. So if you are probing with the heaters on, adding parameter B1 to your M558 command in config.g may help.
-
@dc42 said in Mesh bed compensation and first layer issues:
Are the fluctuations of trigger height consistent (i.e. is the trigger height always the same at a particular point), or random?
The fluctuations are consistent and I performed 10 readings at each point with a decent-ish degree of accuracy (max deviation from average 1.6%, avg deviation 0.76%)
Are you probing with the bed and extruder heaters on or off? There are reports that the bltouch is sensitive to magnetic fields generated by heater currents. So if you are probing with the heaters on, adding parameter B1 to your M558 command in config.g may help.
I always probe with the bed heater on and the extruder heater off
-
OK, try using the B1 parameter on M558 then and see if that makes a difference.
-
@dc42 said in Mesh bed compensation and first layer issues:
OK, try using the B1 parameter on M558 then and see if that makes a difference.
I've not changed M558 to add B1 yet as I don't know what it does and want to do things methodically. Will read up on that when I get a minute but from what you've said it sounds like it compensates for heated components during the mesh analysis?
So far, I've updated the Z offset on G31 with my readings got by running through the procedure defined in the Using Bed Mesh Compensation page and changed the home z and all probe point to the centre of the bed.
I've just run a new bed analysis and got a decent result (I think)..
.
But I still don't understand if I need to do anything about the fluctuations in trigger height?
If I understand correctly the mesh shows the height, relative to Z0 at the centre of the bed, where the bltouch triggered at each point on the bed.
But my issue is that I know that there are fluctuations where for example at 50,50 the nozzle will be 0.077mm closer to the bed and at 150,150 the nozzle will be 0.161mm further from the bed.This explains the first layer issues perfectly and its this that I'm unsure how to correct..
Does this suggest my frame isn't square or that I simply need to mechanically alter the bed height?
-
Could it be due to misalignment of the 2 Z axes?
-
If you haven't tried adding B1 to your M558 command yet then I suggest you do so, or else try probing with the bed heater off, in case the location of the bed heater wires/traces is affecting the trigger height.
-
OK, thanks, will give that a try next
-
I've read up on M558 B1 and tried it with the settings active (which I'll leave in place) but have also tested with the bed off.
I got the same results - a gentle increase in the trigger offset up the X axis from left to right across the bed.
So I've mechanically set the bed so that if I go to Z0 on any point on the bed I get the same amount of paper grip - i.e. no grip at all and then resistance after a drop in X of 0.01.
This way I know the Z heigh is the same across the bed so hopefully the mesh levelling should now be able to cater for the difference in trigger heights across the bed..
or not?
-
If the Z probe trigger height (the difference in the height between the Z probe triggering and the nozzle touching the bed at that XY position) varies with the XY position, that suggests that the tilt of the print head varies with the XY position. The tilt affects the relative heights of the nozzle and the Z probe.
If the Z probe is offset a long way sideways from the nozzle, then a bed that is curved severely could also cause the difference in trigger height.
-
@dc42 Makes sense, thanks.
The bed is a high quality borosilicate glass and looks completely flat using a set square and other tools I have available.
So I guess it is likely the tilt problem causing this - what can I do about it? Can I manually edit the heightmap file taking into account the fluctuations in the trigger to nozzle heights?
-
@drammy said in Mesh bed compensation and first layer issues:
@dc42 Makes sense, thanks.
The bed is a high quality borosilicate glass and looks completely flat using a set square and other tools I have available.
So I guess it is likely the tilt problem causing this - what can I do about it? Can I manually edit the heightmap file taking into account the fluctuations in the trigger to nozzle heights?
Yes in theory, but it would be rather tedious to do.
-
@dc42 I'm a db developer so tedious data work is my thing
I tried one last thing - I think the bed is very flat so I've set it up so that the nozzle is at 0 at 5 key places and disabled mesh compensation and its printing the first layer much better now.
-
That's great. Bed compensation increases wear on the Z axis, so it's better to avoid needing it by having a flat and level bed if you can.
-
@dc42 Yeah, I guess I was fixated on using all the technology but forgot to stand back and question whether it was actually necessary...
Currently I'm removing any G29 commands from my gcode files and manually clicking the disable compensation buttons on DWC before each print.
Is all that necessary or is there a better way to permanently disable bed compensation?
-
Mesh bed compensation won't be used unless you invoke G29 or G29 S1 to enable it. So it doesn't need to be disabled, just don't enable it.