SOLVED Problems with BLTouch bed leveling - part 2
-
See last message in this thread.
I am back with another machine unable to get a working bed level mesh with BLTouch. It is just too high off the bed, I can adjust my G31 Z height to anything I want apparently, but it won't change where the tip goes.
Here is the Z probe bit of my config.g file:; Z-Probe M950 S0 C"zprobe.mod" ; Duet 2 Maestro BLTouch MOD M558 P9 C"^zprobe.in" H5 F120 T6000 ; Duet 2 Maestro BLTouch sense G31 X-40.5 Y0 Z1.70 ; 0 mm Y, 43.5 MM X, 3.5 mm above nozzle, G30 command will tune this M557 X9:289 Y30:310 S40 ; define mesh grid Xmin:Xmax Ymin:Ymax Spacing
I have my BLTouch -40.5mm X and 0mm Y and retracted the tip is 3.5mm above the print nozzle.
I use a Z end stop and it is set to put the nozzle 0.05mm above the bed. I set this with a stainless steel feeler gauge. The is the point that I set G92 Z0 at.I move to dead center of my 330mm bed and the G30 S-1 consistently reports this.
My mesh procedure is exactly what is given on the duet site.
Assumes M558 mesh set up in config.g already.Make sure there is no filament stuck to the nozzle (do this test with the nozzle and bed hot)
Cancel any existing bed compensation by sending M561Send M564 S0 to allow movement lower than where the firmware thinks Z=0 is. This is to ensure that you can lower the nozzle all the way to the bed in step 5.
Move the head to the middle of the bed (my preference)
Command the print head down in small steps, using the jog buttons in DWC or by sending individual G1 Z[value] commands, until the nozzle just touches the bed or just grips a sheet of paper.
Create a macro to lower the head by e.g. 0.02mm for greater accuracy (G91 followed by G1 Z-0.02).Send G92 Z0 to define that height as Z=0
Command the nozzle up 5mm (G1 Z5)
Send G30 S-1 to probe the bed without resetting the Z=0 position
Read off the Z height from the web interface. That is the trigger height.
Repeat the previous two steps a couple of times to make sure you are getting a consistent result
In config.g set the G31 command for height in the Z parameter (ex. G31 X-40.5 Y0 Z1.70).Run G29 S0 to probe the points, this saves to sys/heightmap.csv
Put G29 S1 at the end of config.g so this map is loaded at startup.
Put M376 H5 at end of config.g to set max height mm where mesh leveling calcs stop being done.Since my G31 probe location is already set up, I don't need to edit this into the config.g every time.
I have done this procedure at least 20 times and done some minor variations countless times. The nozzle never gets closer than about 0.3mm above the bed. I measured it with a feeler gauge.
I get a very reasonable height map for this crappy TronXY bed with a glass plate on it.I clearly am missing something. Can anyone tell me what is going on?
be well,
DLC -
@dlc60
I assume you are using M501 at the end of your config.
At least that's what I saw in another post.
This means that the config.g is always overwritten with the values from the config-override.g.
Please check whether a different value is stored here for G31.
If you change values, the current status must be written with M500.
In your case M500 G31. -
@DIY-O-Sphere said in Problems with BLTouch bed leveling - part 2:
@dlc60
I assume you are using M501 at the end of your config.
At least that's what I saw in another post.
This means that the config.g is always overwritten with the values from the config-override.g.
Please check whether a different value is stored here for G31.
If you change values, the current status must be written with M500.
In your case M500 G31.I am not. I do not fully understand what that does. Could it be that simple?
be well,
DLC -
@DIY-O-Sphere said in Problems with BLTouch bed leveling - part 2:
This means that the config.g is always overwritten with the values from the config-override.g.
Not everything though. Only values that have been saved with M500. If M500 P31 has never been used before to save a G31 Z value, it won't be present in config-override.g. Definitely worth checking though.
@dlc60 Please post your full config.g, config-override.g, and homing files. Even you slicer start gcode. Chances are your Z position is being changed somewhere.
-
RESOLVED
@Phaedrux said in Problems with BLTouch bed leveling - part 2:
@DIY-O-Sphere said in Problems with BLTouch bed leveling - part 2:
This means that the config.g is always overwritten with the values from the config-override.g.
Not everything though. Only values that have been saved with M500. If M500 P31 has never been used before to save a G31 Z value, it won't be present in config-override.g. Definitely worth checking though.
@dlc60 Please post your full config.g, config-override.g, and homing files. Even you slicer start gcode. Chances are your Z position is being changed somewhere.
I do not have a config-override.g file. Your comment about the home files made me look, and I found this:
G91 ; relative positioning G1 H2 Z5 F6000 ; lift Z relative to current position G1 H1 Z-300 F1800 ; move Z down until the endstop is triggered G92 Z0 ; set Z position to axis minimum (you may want to adjust this)
That is where my G92 setting gets overridden.
So, after doing my mesh leveling run, should I do a M500 to save these settings? I am still learning Reprap on Duet, all my experience up until now has been Marlin and EEPROM stores and recoveries.I pulled the G92 entries from homez.g and homeall.g. Things work correctly now.
Thank you for providing the hint I needed to understand what was going on!be well,
DLC -
Your homing files are not correct for using a probe to home Z. They are set as if you have an endstop for Z.
G1 H1 moves are for endstops. To use the probe, you must use G30.
See here for examples: https://docs.duet3d.com/en/User_manual/Machine_configuration/Configuration_cartesian#homing-z
You don't need to use M500 at all. You've set the trigger height directly in config.g. But for that trigger height to be used correctly, you need to use G30 to home the Z axis.
-
@Phaedrux said in Problems with BLTouch bed leveling - part 2:
Your homing files are not correct for using a probe to home Z. They are set as if you have an endstop for Z.
G1 H1 moves are for endstops. To use the probe, you must use G30.
See here for examples: https://docs.duet3d.com/en/User_manual/Machine_configuration/Configuration_cartesian#homing-z
You don't need to use M500 at all. You've set the trigger height directly in config.g. But for that trigger height to be used correctly, you need to use G30 to home the Z axis.
Oh, I did not know that using the Z-min end stop was not compatible with using the BLTouch mapping. I will correct that and use the proper G30 Z-min home.
Thanks! This bed mesh process has a lot more nuance than I thought it did.
be well,
DLC -
SOLVED
@Phaedrux said in Problems with BLTouch bed leveling - part 2:
Your homing files are not correct for using a probe to home Z. They are set as if you have an endstop for Z.
G1 H1 moves are for endstops. To use the probe, you must use G30.
See here for examples: https://docs.duet3d.com/en/User_manual/Machine_configuration/Configuration_cartesian#homing-z
You don't need to use M500 at all. You've set the trigger height directly in config.g. But for that trigger height to be used correctly, you need to use G30 to home the Z axis.
This did the trick. I had to craft a special homeall.g To put the nozzle in the middle of the bed, that was where my "base" Z = 0 was done. Also because the would be off the bed when X and Y homed, I could not leave it there. But it all came together and my map provides a "flat" bed.
It is kind of amazing since I have been fighting "potato chip" bed syndrome on my TronXY that has SIX tramming screws! I am not talking about throwing this printer out the window any more.G91 ; relative mode G1 H2 Z5 F200 ; raise head 5mm G1 H1 X-350 Y-350 F1800 ; move quickly to X or Y endstop and stop there (first pass) G1 H1 X-350 ; home X axis G1 H1 Y-350 ; home Y axis G1 X5 Y5 F6000 ; go back a few mm G1 H1 X-350 F360 ; move slowly to X axis endstop once more (second pass) G1 H1 Y-350 ; then move slowly to Y axis endstop G90 ; back to absolute mode G1 X175 Y175 F2000 ; put head over the centre of the bed, or wherever you want to probe G30 ; lower head, stop when probe triggered and set Z to trigger height
Thanks for all the pointers!
Be well,
DLC