Changing Z offset with BLTouch
-
@cbrunnem2
As @fcwilt has alluded to, it sounds a bit like you're procedure may be a little off.If you are running RRF 3.5 try putting the two attached macros in you macros folder.
Ideally create a folder >0:/macros/bl_touch/
Then runstart_calibration.g
It will step you through the calibration and carry out 10 cycles to determine the correct Z offset.
The result is saved in config-override.g (or you can edit config.g if you wish) -
@OwenD im trying to run this. my firmware is messed up or something. i am installing.... hopefully 3.5rc1 right now using that blue button at the bottom of this picture.... that i didnt see before....
hopefully this gets rid of the error when trying to run that macro saying i need to be on 3.5 or newer...
-
@BoA i dont run a heated bed as i havent needed to for PLA.
im in the middle of a firmware update BUT if i remember correctly, after getting the bed to grab a piece of paper, i would set that as z=0. if would grab a piece of paper if i moved and came back.
-
@fcwilt i am not sure what you mean exactly but i would only ever run G30 s-1 after homing x/y and after setting z=0 when the nozzle grabs a piece of paper.
-
@cbrunnem2 said in Changing Z offset with BLTouch:
my firmware is messed up or something
Try these files
https://github.com/Duet3D/RepRapFirmware/releases/download/3.5.0-rc.2/Duet2CombinedFirmware.bin
https://github.com/Duet3D/RepRapFirmware/releases/download/3.5.0-rc.2/DuetWebControl-SD.zip
-
@cbrunnem2 said in Changing Z offset with BLTouch:
@fcwilt i am not sure what you mean exactly but i would only ever run G30 s-1 after homing x/y and after setting z=0 when the nozzle grabs a piece of paper.
Setting Z=0, using the method you mentioned, should insure that the Z position at the start of the G30 S-1 is reasonably correct and thus the value reported should be reasonably correct.
Frederick
-
@Phaedrux Thank you. that did it. for whatever reason, whenever i uploaded the zip files, it would fail half way through
-
@fcwilt thank you. i tried the macro above and it reported 2.5mm which is different than the 2.31 i got BUT what is interesting is that it said it would save it in my config.g but didnt... its properly in the config-override.g though.
even further, i still had to jog down the same amount basically as before. the issue is becoming more consistent. its basically me having to jog down to -1.25 to -1.3mm every time including this time. that is still a larger difference than between 2.31 and 2.5mm.
should i just add the 1.3mm to my 2.31mm and call it a day????
as i am writing this, i realized, some of my error is in not zeroing the bed at the correct nozzle temp but that is not 1.3mm of error. my math says its about .1mm of thermal expansion. i can fix that in the future calibrations.
-
@cbrunnem2 Can You upload gcode that You are trying to print? Are You sure, there is no offset set in slicer or something?
When You set Z trigger height, home XYZ, and the jog to Z=0. Nozzle should be just touching printbed.
(Home XY, Home Z with probe, then jog to position where Z=0) -
You must always set the Z=0 Datum, using a single G30 as a fixed XY location, before creating the height map and before loading the height map to print.
And when determining the G31 Z Trigger Height, by whatever means, you need to use the same fixed XY location.
Some folks like to use a point of the height map grid. I use the center of the bed.
And you need to be sure baby-stepping and mesh compensation are disabled when doing either of the above.
Frederick
-
@cbrunnem2 to add to what @fcwilt had said, you should also reset your z=0 datum after performing bed levelling (and before loading/creating your heightmap).
When it does the bed levelling, it can shift the datum depending on how level your bed is. Hence the need to rehome z with your z probe at the same xy position -
@BoA i appreciate your help and everyone elses. Thanks. Gcode below. Just the start.
;FLAVOR:RepRap ;TIME:2435 ;Filament used: 3.38708m ;Layer height: 0.25 ;MINX:48.526 ;MINY:92.173 ;MINZ:0.25 ;MAXX:84.309 ;MAXY:127.954 ;MAXZ:25.5 ;POSTPROCESSED ;Generated with Cura_SteamEngine 5.2.2 T0 M104 S230 M109 S230 M82 ;absolute extrusion mode G91 ; Relative Positioning G1 Z-1 ; Move Z down 1mm G90 ; Absolute Positioning G28 XY ; Home XY M561 ; Clear any bed transform G1 X100 Y100 ; Move Probe to middle of bed G1 Z10 F6000 ; Move Z to 2 G30 ; Do a single probe G29 S1 ; Load heightmap (you can use G29 S1 instead) G1 Z2 F6000 ; Move Z to 2 M572 D0 S0.05 ; M83 ;relative extrusion mode G1 F300 E-0.25 ;LAYER_COUNT:102 ;LAYER:0 M107 G1 F600 Z0.5 G0 F2400 X57.32 Y94.657 Z0.5 ;TYPE:SKIRT G1 F600 Z0.25 G1 F300 E0.25 G1 F600 X57.994 Y94.278 E0.03215 G1 X58.844 Y93.849 E0.03958 G1 X59.493 Y93.562 E0.0295 G1 X60.145 Y93.305 E0.02914 G1 X60.828 Y93.068 E0.03006 G1 X61.356 Y92.904 E0.02299 G1 X62.223 Y92.669 E0.03735 G1 X63.006 Y92.501 E0.03329 G1 X63.992 Y92.333 E0.04158 G1 X64.7 Y92.253 E0.02962 G1 X65.726 Y92.18 E0.04276 G1 X66.568 Y92.173 E0.03501 G1 X67.271 Y92.193 E0.02924 G1 X68.306 Y92.269 E0.04315 G1 X69.6 Y92.461 E0.05439 G1 X70.377 Y92.617 E0.03295 G1 X70.876 Y92.74 E0.02137 G1 X71.429 Y92.892 E0.02384 G1 X72.064 Y93.088 E0.02763 G1 X73.012 Y93.422 E0.04179 G1 X73.988 Y93.855 E0.04439 G1 X74.453 Y94.08 E0.02148 G1 X74.977 Y94.351 E0.02453 G1 X75.581 Y94.691 E0.02882 G1 X76.156 Y95.051 E0.0282 G1 X76.711 Y95.421 E0.02773 G1 X77.247 Y95.823 E0.02786 G1 X77.829 Y96.286 E0.03092 G1 X78.222 Y96.622 E0.0215 G1 X78.697 Y97.052 E0.02664 G1 X79.254 Y97.6 E0.03249 G1 X79.889 Y98.284 E0.0388 G1 X80.53 Y99.068 E0.0421 G1 X81.062 Y99.787 E0.03719 G1 X81.498 Y100.438 E0.03257 G1 X81.921 Y101.123 E0.03347 G1 X82.344 Y101.914 E0.03729 G1 X82.678 Y102.583 E0.03109 G1 X83.008 Y103.365 E0.03529 G1 X83.252 Y103.986 E0.02774 G1 X83.494 Y104.725 E0.03233 G1 X83.782 Y105.711 E0.04271 G1 X84.013 Y106.835 E0.04771 G1 X84.126 Y107.54 E0.02968 G1 X84.242 Y108.468 E0.03888 G1 X84.278 Y109.009 E0.02254 G1 X84.309 Y110.026 E0.0423 G1 X84.271 Y111.167 E0.04746 G1 X84.177 Y112.21 E0.04354 G1 X84.063 Y112.991 E0.03281 G1 X83.874 Y113.976 E0.0417 G1 X83.737 Y114.561 E0.02498 G1 X83.519 Y115.326 E0.03307 G1 X83.289 Y116.035 E0.03099 G1 X82.922 Y116.966 E0.04161 G1 X82.662 Y117.575 E0.02753 G1 X82.272 Y118.356 E0.03629 G1 X81.898 Y119.041 E0.03245 G1 X81.601 Y119.526 E0.02364 G1 X81.097 Y120.296 E0.03826 G1 X80.737 Y120.792 E0.02548 G1 X80.397 Y121.235 E0.02322 G1 X79.939 Y121.78 E0.0296 G1 X79.365 Y122.408 E0.03537 G1 X78.606 Y123.166 E0.0446 G1 X77.815 Y123.865 E0.04389 G1 X77.058 Y124.445 E0.03965 G1 X76.489 Y124.848 E0.02899 G1 X75.787 Y125.304 E0.0348 G1 X75.08 Y125.725 E0.03421 G1 X74.047 Y126.246 E0.0481 G1 X73.482 Y126.5 E0.02575 G1 X72.436 Y126.921 E0.04688 G1 X71.69 Y127.163 E0.03261 G1 X71.161 Y127.319 E0.02293 G1 X70.397 Y127.509 E0.03273 G1 X69.546 Y127.687 E0.03615 G1 X68.866 Y127.787 E0.02858 G1 X68.293 Y127.856 E0.02399 G1 X67.395 Y127.924 E0.03744 G1 X66.816 Y127.947 E0.02409 G1 X66.241 Y127.954 E0.02391 G1 X65.241 Y127.924 E0.04159 G1 X64.219 Y127.816 E0.04273 G1 X63.479 Y127.718 E0.03103 G1 X62.391 Y127.498 E0.04615 G1 X61.783 Y127.349 E0.02603 G1 X61.169 Y127.17 E0.02659 G1 X60.521 Y126.963 E0.02828 G1 X59.504 Y126.561 E0.04547 G1 X58.655 Y126.182 E0.03865 G1 X58.151 Y125.928 E0.02346 G1 X57.601 Y125.628 E0.02605 G1 X56.612 Y125.032 E0.04801 G1 X55.916 Y124.547 E0.03527 G1 X55.384 Y124.148 E0.02765 G1 X54.672 Y123.572 E0.03808 G1 X54.209 Y123.146 E0.02616 G1 X53.707 Y122.658 E0.02911 G1 X52.997 Y121.902 E0.04312 G1 X52.6 Y121.435 E0.02548 G1 X52.223 Y120.965 E0.02505 G1 X51.776 Y120.354 E0.03147 G1 X51.311 Y119.666 E0.03452 G1 X50.816 Y118.827 E0.0405 G1 X50.447 Y118.14 E0.03242 G1 X50.161 Y117.54 E0.02763 G1 X49.951 Y117.065 E0.02159 G1 X49.663 Y116.345 E0.03224 G1 X49.34 Y115.404 E0.04136 G1 X49.174 Y114.842 E0.02436 G1 X48.927 Y113.857 E0.04222 G1 X48.799 Y113.17 E0.02905 G1 X48.681 Y112.405 E0.03218 G1 X48.585 Y111.462 E0.03941 G1 X48.532 Y110.6 E0.03591 G1 X48.526 Y109.965 E0.0264 G1 X48.553 Y108.919 E0.0435 G1 X48.649 Y107.956 E0.04024 G1 X48.766 Y107.128 E0.03477 G1 X48.906 Y106.373 E0.03192 G1 X49.096 Y105.59 E0.0335 G1 X49.237 Y105.076 E0.02216 G1 X49.572 Y104.033 E0.04554 G1 X49.834 Y103.335 E0.031 G1 X50.209 Y102.468 E0.03927 G1 X50.78 Y101.366 E0.0516 G1 X51.272 Y100.544 E0.03983 G1 X51.727 Y99.844 E0.03471 G1 X52.303 Y99.07 E0.04011 G1 X52.96 Y98.274 E0.04291 G1 X53.402 Y97.785 E0.0274 G1 X53.835 Y97.343 E0.02572 G1 X54.388 Y96.818 E0.0317 G1 X54.951 Y96.325 E0.03111 G1 X55.542 Y95.855 E0.03139 G1 X56.075 Y95.457 E0.02766 G1 X56.545 Y95.137 E0.02364 G1 X57.32 Y94.657 E0.0379 G0 F2400 X57.516 Y95.006 G1 F600 X58.305 Y94.562 E0.03764 G1 X59.383 Y94.035 E0.04989 G1 X60.292 Y93.677 E0.04062 G1 X61.076 Y93.409 E0.03445 G1 X61.605 Y93.248 E0.02299 G1 X62.31 Y93.059 E0.03035 G1 X62.827 Y92.943 E0.02203 G1 X64.036 Y92.731 E0.05103 G1 X64.978 Y92.63 E0.03939 G1 X65.764 Y92.579 E0.03275 G1 X66.787 Y92.576 E0.04253 G1 X67.456 Y92.604 E0.02784 G1 X68.258 Y92.666 E0.03344 G1 X69.542 Y92.857 E0.05397 G1 X70.359 Y93.016 E0.0346 G1 X71.452 Y93.315 E0.04711 G1 X71.931 Y93.466 E0.02088 G1 X72.863 Y93.794 E0.04108 G1 X73.674 Y94.151 E0.03684 G1 X74.487 Y94.54 E0.03747 G1 X75.37 Y95.03 E0.04198 G1 X75.935 Y95.384 E0.02772 G1 X76.37 Y95.674 E0.02174 G1 X77.007 Y96.143 E0.03289 G1 X77.722 Y96.712 E0.03799 G1 X78.601 Y97.513 E0.04944 G1 X79.113 Y98.031 E0.03028 G1 X79.667 Y98.644 E0.03435 G1 X80.21 Y99.308 E0.03566 G1 X80.729 Y100.01 E0.0363 G1 X81.279 Y100.839 E0.04136 G1 X81.644 Y101.454 E0.02973 G1 X81.991 Y102.103 E0.0306 G1 X82.315 Y102.752 E0.03016 G1 X82.636 Y103.512 E0.0343 G1 X82.877 Y104.125 E0.02738 G1 X83.155 Y104.98 E0.03738 G1 X83.396 Y105.816 E0.03617 G1 X83.618 Y106.901 E0.04604 G1 X83.729 Y107.59 E0.02901 G1 X83.845 Y108.515 E0.03876 G1 X83.878 Y109.021 E0.02108 G1 X83.908 Y110.024 E0.04172 G1 X83.872 Y111.135 E0.04621 G1 X83.777 Y112.184 E0.04379 G1 X83.625 Y113.179 E0.04185 G1 X83.482 Y113.898 E0.03048 G1 X83.298 Y114.658 E0.03251 G1 X83.139 Y115.203 E0.0236 G1 X82.914 Y115.896 E0.03029 G1 X82.611 Y116.671 E0.0346
-
@cbrunnem2 Seems Your start g-code is a little messed up. Why not homing Z, but probing?
Seems this one will not execute home.z or home_all nor bed.g at all (might be wrong, but looks that way for me).Probing and all other stuff is on purpose in printer files, so You can just execute G28 and G32.
-
@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