Changing Z offset with BLTouch
-
@fcwilt i just powered on my printer. when its off, the bed sags a bit so i immediately homed xyz. height map looks good. babystepping was always at 0
i did the following commands:
G1 x100y100
g29 s2
G1 z0 (stepped down till nozzle is on bed)
G92 z0
g30 s-1 put that number in config.g under the g31 line
restarted board
homed xyz
G1 x100y100
g29 s2
G1 z0 (stepped down till nozzle is on bed)
g92 z0
g1 z10
g1 z0 (nozzle is still on bed)
G30 (it stops at 3.1mm which is what i have in g31)
g1 z0 (nozzle is too high.... by -.85 which ironically, is the about what the math would say my previous number should be at -2.31)im at a lose here.... what am i doing wrong
-
@BoA should i be doing a whole bed mesh at the start of every print? is that what you are saying?
might be worth it if i can figure out this problem as a hole. check my last response. with the current issue, id be wasting so much time probing hte bed just to have to babystep or ruin a print.
-
@BoA also, there is a g28 xy so those axis get homed. G30 at x100y100 should mean my heightmap is valid to load and use?
-
i added a G30 before G29 in my bed.g to see if that would help. it did not. i assume this is good practice and should be left?
-
@cbrunnem2 I think You created a little bit of chaos in the files trying to solve the issue. Let's sort things out.
- make sure homex.g and homey.g do only X and Y and Y homing, and nothing more.
- make sure homez.g does only homing Z using probe. For example:
G91 G1 H2 Z5 F12000 ; lift Z relative to current position G90 ; absolute positioning G1 X100 Y100 F12000 M558 F1200 G30 ; home Z by probing the bed M558 F120 G30 ; home Z by probing the bed
- make sure homeall.g is homing X and Y and calls homez.g For example:
G91 ; relative positioning G1 H1 X5.0 Y5.0 F1200 G1 H1 X-260 Y-221.5 F3000 M98 P"homez.g" G90
After that calling G28 should home all axes, and going to Z=0 position like G1 X100 Y100 Z0 results in nozzle just barely touching the bed.
Next step would be to set bed/gantry leveling using bed.g
BTW - make sureM671 X200:200 Y-133:567 S15
is correct. This seems a little strange looking where Your bed.g probes for bed/gantry leveling.
G30 P0 X5 Y100 Z-99999 ; probe near a leadscrew, half way along Y axis G30 P1 X225 Y100 Z-99999 S2 ; probe near a leadscrew and calibrate 2 motors G28 Z
should be enough, use screws coordinates that are correct for Your printer.
After that calling G28 and G32 should result in homing all axes and pribing bed in 2 (or more) points and bed leveled and re-homing Z axis.
Soo... in Your startup gcode in slicer You should have
G28 G32
sequence
If Z trigger height is set correctly, that should give You correct-ish first layer without babystepping.
After that works, You can call G29 S0 to probe the bed and save heightmap and after G32 add G29 S1 to startup gcode
-
@cbrunnem2 For reference my startup code in prusa slicer
G90 ; use absolute coordinates M83 ; extruder relative mode M144 S1 M140 S[first_layer_bed_temperature] ; set bed temp G10 P0 R120 S[first_layer_temperature_0] M116 H0 G28 ; home all without mesh bed level G32 ; gantry leveling G29 S1; mesh bed compensation
-
So when you do that single G30 the nozzle is touching the bed?
What is the behavior you see?
Frederick
-
@fcwilt when I use g30, the bltouch triggers and stops the bed. if I then use g1 z0, I then have to move the bed up manually till the bed touches. it's about .7mm now.
-
@cbrunnem2 said in Changing Z offset with BLTouch:
@fcwilt when I use g30, the bltouch triggers and stops the bed. if I then use g1 z0, I then have to move the bed up manually till the bed touches. it's about .7mm now.
Keep tweaking the G31 setting until Z=0 results in the nozzle just touch the bed.
Because my printing surface is not hard like glass or metal I use Z=1 as my test position and have a 1mm thickness gauge that I use to check the gap. Otherwise the nozzle might just make an indent in the surface when I'm tweaking G31.
Frederick
-
@BoA Thank you for your response.
- my homex/homey are exactly as you mention
- i will fix my homez. i have no M558 calls in my homez. could be the issue? see below for my homez current gcode.
- will fix my homeall file as well.
- i will double check my M671 values. the printer bed is actually 400mm x 400mm but i am only currently using a small portion so i lowered my bed mesh size to get better results and speed things up. i believe the Y positions are correct. i know the x positions are correct.
- should i do the bed leveling more than once? when reseting my board or powering it on, my bed has to be releveled as it sags a bit. typically 2 bed levels gets it super close.
- on your last comment about doing a G29 S0... i should do that after fixing all of my homing issues and before a print right?
; homez.g ; called to home the Z axis ; ; generated by RepRapFirmware Configuration Tool v3.2.3 on Wed Jul 21 2021 18:08:02 GMT-0400 (Eastern Daylight Time) G91 ; relative positioning G1 H2 Z5 F3600 ; lift Z relative to current position G90 ; absolute positioning G1 X100 Y100 F3600 ; go to first probe point G30 ; home Z by probing the bed G32 ; g30 s-1; G29 s1;
-
@cbrunnem2
Ad. 2 - I have M558 just to change probing speed - first fast pass for less acurate, and second slower for better accuracy
Ad. 4 - The closer to leadscrews You probe the better the results will be (more accurate). This has nothing to do with area used for printing or mesh leveling. It is just to make sure bed.g will set left and right bed motors correctly too keep bed parallel to the gantry. G32 is not the same feature as mesh bed leveling. G32 makes sure the bed and gantry are parallel to eachother. Mesh leveling (G29) compensates for bed beeing not perfectly flat.
Ad. 5 - In general it should be fine doing it once, but nothing wrong with doing it more than once
Ad. 6. for homez.g put only homing z there.; homez.g ; called to home the Z axis ; ; generated by RepRapFirmware Configuration Tool v3.2.3 on Wed Jul 21 2021 18:08:02 GMT-0400 (Eastern Daylight Time) G91 ; relative positioning G1 H2 Z5 F3600 ; lift Z relative to current position G90 ; absolute positioning G1 X100 Y100 F3600 ; go to first probe point G30 ; home Z by probing the bed
that is enough for it.
Then in slicer You have a startup g-code, where You should have:
homing - G28
bed leveling - G32 (this will execute bed.g with probing next to leadscrews, and re-home Z)
mesh compensation enabled G29 S1Bed probing before each print depends on how stable geometry Your bed has.