Problem setting the Z-Offset, BLTOUCH, RRF 3.1.1
I am having a weird problem with setting the z-offset for BLTOUCH (DUET 2 ethernet, RR 3.1.1).
My default z-offset for bltouch in this setup was 1.2mm (y offset is 0, x offset is -20) and I started with that.
But no matter what value I set for the Z-offset, the Height map is shown below the the X,Y,Z grid (see the picture below) and I when I do the G29 mesh calibration it shows the warning that there is a substantial Z-offset.
I've tried calibrating the trigger height using the instructions here, but I am still having the same problem.
When I try the G0Z0 at the homing position - z goes to the proper height I set for printing.
But when I start the print it usually starts way too high.
I tried both lowering and raising the Z-offset but nothing seems to solve it.
I also have dual-z leadscrews with dual motors - set to do true bed leveling for the x-axis.
Does anyone have any ideas?
Here are the config.g, home.g and bed.g attached
I am guessing:
The Z probe input pin will be zprobe.in on a Duet 2, or one of io4.in, io5.in or io7.in on a Duet 3. If using zprobe.in, you need to enable the pullup resistor using the ^ character in front of the pin name.
In your M558 command, specify probe type 9 and the input pin, for example:
M558 P9 C"^zprobe.in" H5 F100 T2000
If using pin zprobe.in then must include the ^ character in front of the pin name to enable the pullup resistor.
Because you use zprobe.in. But I am not sure, there are different BLTouch versions, so this may be wrong. A missing pullup resistor would mean missing voltage reference, it would make sense of wrong measurements.
arhi last edited by arhi
relevant piece of config for the probe
; DUAL Z M671 X20:460 Y250:250 S5.0 ; leadscrews at left (connected to Z) and right (connected to E1) of X axis ; Axis Limits M208 X0:470 Y0:470 Z0:400 ; Z-Probe M950 S0 C"exp.heater3" ; create servo pin 0 for BLTouch M558 P9 C"zprobe.in" H5 F300 T6000 ; set Z probe type to bltouch and the dive height + speeds G31 P500 X-20 Y0 Z1.2 ; set Z probe trigger value, offset and trigger height M557 X20:460 Y20:460 S80 ; define mesh grid
probbly should be
; DUAL Z M671 X20:460 Y250:250 S5.0 ; leadscrews at left (connected to Z) and right (connected to E1) of X axis ; Axis Limits M208 X0:470 Y0:470 Z-5:400 ; Z-Probe M950 S0 C"exp.heater3" ; create servo pin 0 for BLTouch M558 P9 C"^zprobe.in" H5 F300 T6000 ; set Z probe type to bltouch and the dive height + speeds G31 P500 X-20 Y0 Z1.2 ; set Z probe trigger value, offset and trigger height M557 X20:460 Y20:460 S80 ; define mesh grid
@JoergS5 I'v actually bin to that printer, that probe triggers without pullup on 3.1.1 (I should of remember to add pull up as mine bltouch v3 don't trigger without pullup) and it triggers...
What's weird, you home (@omni wants to have 0,0 bottom left and want to home to 0,0 - or rather 20,0 due to bltouch offset), it triggers ok, you move it up/down, change the offset in G31, reboot printer, home, it positions the head repeatably at the same height ... so G0Z0 put the head every time where it's expected. You then run G29, it start the mesh ... you look at the mesh file and the 0,0 (25,0) is probed .25mm below zero ?!?!?!?? That's not happening on any of my printers so as I had zero ideas how to move forward asked him to post here where smarter ppl lurk
This is the first printer I configured with dual Z motors, from what I seen G32 properly levels the X gantry, but maybe that's somehow influencing the mesh leveling?
this is his bed.g (copy/paste from the wiki)
M561 ; clear any bed transform if !move.axes.homed || !move.axes.homed || !move.axes.homed G28 M401 ; deploy Z probe (omit if using bltouch) G30 P0 X20 Y250 Z-99999 ; probe near a leadscrew, half way along Y axis G30 P1 X400 Y250 Z-99999 S2 ; probe near a leadscrew and calibrate 2 motors M402 ; retract probe (omit if using bltouch)
I think best procedure would be to test without the special codes in the config and home files. There are Z movements into Z5 without moving back in homex and homey e.g., or conditional code. I would remove as much as possible to reduce error possibilities.
The pullup may differ between BLTouch versions, according to https://forum.duet3d.com/topic/16093/upgrading-from-rrf2-to-rrf3-issues/4 it is specific to new versions of the BLTouch.
Another possibility is a mechanical problem of course, so some description of the printer would be next to be able to help. Possible reasons are stepper, screw, stuck axis etc. problems. You could make M122 to check whether there are errors or hiccups also. Another possibility is that parameters about the position of the BLTouch in relation to the nozzle is wrong.
The M401 and M402 would run deployprobe.g and retractprobe.g if they exist. Do they exist and what do they contain?
yes, maybe smarter for start to remove the conditional from bed.g so @omni change bed.g to
M561 ; clear any bed transform G28 M401 ; deploy Z probe (omit if using bltouch) G30 P0 X20 Y250 Z-99999 ; probe near a leadscrew, half way along Y axis G30 P1 X400 Y250 Z-99999 S2 ; probe near a leadscrew and calibrate 2 motors M402 ; retract probe (omit if using bltouch)
Simply save all and try a minimal version, whether this works.
There are Z movements into Z5
what's wrong with that, lift Z relative 5 to clear any possible crap on the bed?
I wondered why Z5 but Z-5 back is commented out in homex and homey. I wondered whether is has a side effect somehow.
The same with M913 changing motor current. Maybe this changes stepper position? I would throw out all those special code for testing whether BLTouch works in the simplest configuration possible.
@JoergS5 ah, I did that (commented out -5) .. I do it 'cause I hate when homeall.g is copy of all three so I changed homeall.g to call homex, homey, homez and my experience when you only home one you always need to drop the bed (or in his situation he's lifting the gantry) so I never return the Z back as there still might be something underneath it... homez will handle that extra offset anyhow and max 15mm travel is not a big deal compared to broken carriages
Talking of M913:
Important! When M913 is executed, it does not wait for all motion to stop first (unlike M906). This is so that it can be used in the M911 power fail script. When using M913 elsewhere, you will typically want to use M400 immediately before M913.
anyhow waiting for @omni to test the pullup, I think that will solve all issues
Yes, let's wait, but M913 is also a candidate...
I need to recheck those 913, those were copy/paste from my config and I do M400 everywhere
M913 is used in homex and homey after X and Y movements, but not Z movements. Probably not a problem for the Z positions. But M400 before would be better to be sure.
One big thanks to you sir! Problem solved, it was the pullup resistor setting, everything working normally now....
It was strange because it was deploying the probe and measuring, only the measurements were a bit random...
Now my bed does not look like a black hole anymore....
That's good news! Have fun with printing.
@JoergS5 My happiness was not long... It was ok for a while but after I was trying to get the right z-offset it started doing it again... When I do G29 it just draws the height map under the X Y Z grid with a big offset. At this point I am running out of ideas. The printer is mechanically solid, everything seems to be working ok except the mesh compensation / z-offset which is behaving a bit random. Also the G32 true bed leveling (bed.g) seems to be doing some compensation each time I run it.... Maybe it has something to do with...
@omni is it the same height map (below 0, not even) which you had 3 days before?
@omni If it is working for 3 days and then start making trouble again, one important possible reason would be an electrical contact which was corrected 3 days before (due to the testing/searching error) and after some printing and vibrations, the connection was lost again. You should check for cable breaks and defect crimping/cold soldering connections.
Is there anything you changes while making G29, like bed heating?
When you made the G29, please make a M122 also and show it.
To discuss what could be wrong, I need to see some images from the printer: the print bed, the nozzle and BLTouch, and maybe the Z axis setup (stepper, coupling, spindle).
@JoergS5 Thanks for your time man, I really appreciate it.
Here is the image of the mesh :
Not much was changed, I added a laser filament monitor (but that shouldn't be a problem) and also added an additional 40mm fan to cool the extruder since the stepper motor is encapsulated in the carriage so I was afraid it may be overheating.
As for the config.g the only I was mainly changing is the z-offset since I cannot seem to get the first layer at the correct height. One thing that is really bothering me is that G32 (true bed leveling) is doing adjustments each time I run it... even when the printer was not turned off.
Another thing I have tried is the z-probe repeatability macro and the deviation from the mean last time was 0.005, so it is working. I also set the following line for thr Bltouch :
M558 P9 C"^zprobe.in" H5 F300 T6000 A4 S.0.03
Images of the printer:
It seems that something in my homing routine is screwing up the leveling mesh.
When I do G32 and then G29 without homing - it very different :
But when I do homing (G28) and then (G29) it goes all the way below the grind no matter what my z-offset for the probe is.
Now on the new graph you can see that my Z0 is way too high since I was trying to compensate with the z-offset to see what will happen, but it seems that the G28 is screwing it up for some reason.....
Do you maybe have the stock versions of homex.g homey.g homez.g and homeall.g so I can try to replace mine with the default ones?
This post is deleted!
This post is deleted!