BL touch Z offset (similar to M851)
-
how do you establish z=0 without a probe?
you could for example use babystepping
https://duet3d.dozuki.com/Wiki/Gcode#Section_M290_Baby_stepping -
That's a very unorthodox way of using the BLTouch. You'd need to ensure your offsets are correct in all dimension. And it looks like you have two nozzles, so the BLTouch would be relative to the first nozzle, and the second nozzle would be relative to the first nozzle.
If your mount for the BLtouch allows for repeatable positioning between uses you could probably get away with doing it like this.
The trick would be to accurately find the Z0 so that it matches the results of the BLtouch. Honestly I think it would be far easier to mount the BLTouch permanently in a more traditional fashion so that you can use it for homing Z as well.
How are you homing Z currently? The offset you are seeing is likely due to a mismatch between where the BLtouch identified Z0 and where your homing method has set it. You need to accurately define your offsets and homing position to correct for this.
-
Thanks, I will have a look at babystepping!
It is indeed not a common way to use it. But this is what I would like to implement with BL touch first, should be a similar approach?
https://twitter.com/machine_elite/status/1152642281616412673
I do have a micro switch on Zmax for homing.
I can't leave a BL touch permanently attached as it will die with a 100C heated chamber.
Does it mean what my offsets set wrong G31 X10 Y0 Z60 P25, distance from the bed to retracted pin?I hope guys, you can put some light on it, it should be possible
Thanks in advance!
-
https://miscsolutions.wordpress.com/mini-height-sensor-board/
this might be able to withstand 100C -
@felt342 said in BL touch Z offset (similar to M851):
I do have a micro switch on Zmax for homing.
This is fine, but you must have an accurate height for the Z axis length based on where Z0 is, otherwise it will not get the nozzle exactly to Z0.
The reference point must be the surface of the bed as Z0 as the foundation of all other offsets, otherwise when you try to go back to Z0 you won't get there.
Here is an example of using a macro to accurately measure the Z max position:
https://duet3d.dozuki.com/Wiki/Macros#Section_Example_Measuring_the_Z_axis_for_a_Z_max_endstop_and_saving_the_resultIn this case Z0 is defined by touching the nozzle to the bed. To automate this process you could use M558 P0 probe type. This is a manual probing that presents the user with a jog dialogue to manually drop the nozzle to the bed to establish Z0. M558 P0 could be defined in that macro and then G30 would present the jog dialogue. Then the Z max could be measured accurately to set the M208 Z max.
Once you have Z0 set, and M208 Z max set, you can then mount your BLTouch and use the normal trigger height calibration to find your G31 Z offset for the BLTouch. https://duet3d.dozuki.com/Wiki/Test_and_calibrate_the_Z_probe#Section_Calibrate_the_Z_probe_trigger_height
You'll also need to know the X Y offset for the BLTouch from the first nozzle. Method for finding that is also described in that link.
-
@Veti said in BL touch Z offset (similar to M851):
https://miscsolutions.wordpress.com/mini-height-sensor-board/
this might be able to withstand 100CIf the Z axis is suitable you may even be able to use stall detection as the Z probe.
-
That's all looks interesting and at the same time a bit foggy to me. I will try to experiment with this definitely!
Do you have any idea how it might be done on elitemachie 3d Printer with Metrol probe?Thanks for your guidance.
-
They may be using probe type P4 for a simple switch.
https://duet3d.dozuki.com/Wiki/Connecting_a_Z_probe#Section_Mode_Num_4
-
@felt342 said in BL touch Z offset (similar to M851):
I can't leave a BL touch permanently attached as it will die with a 100C heated chamber.
I sure hope that all the motors, duet and power supply are outside the build chamber.
Are the belts outside the chamber or have you verified they are good to 100C ? -
Yes, everything is outside the chamber. Belts are rated to 120c.
-
Hi, I tried to get around with you solutions and I badly failed
Will keep for a different moment in my life, for now I don't have time. I made a traditional way of using BL touch for a homing, but have an issue now. Every time then I press home Z, my X and Y start to quickly smashing on to end stops. And then Z starts homing. But I need to move first X and Y by 30x30 before Z probe would be above bed.This is mine homeall.g
; homeall.g ; called to home all axes ; ; generated by RepRapFirmware Configuration Tool v2.1.4 on Thu Jan 02 2020 22:17:48 GMT+0100 (Central European Standard Time) G91 ; relative positioning G1 H2 Z0 F15000 ; lift Z relative to current position G1 H1 X-321 Y-272.5 F3000 ; move quickly to X or Y endstop and stop there (first pass) G1 H1 X-321 ; home X axis G1 H1 Y-272.5 ; home Y axis G1 X5 Y5 F15000 ; go back a few mm G1 H1 X-321 F300 ; move slowly to X axis endstop once more (second pass) G1 H1 Y-272.5 ; then move slowly to Y axis endstop G90 ; absolute positioning G1 H2 X0 Y60 F15000 ; go to first bed probe point and home Z G30 ; home Z by probing the bed ; Uncomment the following lines to lift Z after probing ;G91 ; relative positioning ;G1 S2 Z0 F250 ; lift Z relative to current position ;G90 ; absolute positioning
I found there is:
G1 H2 X0 Y60 F15000 ; go to first bed probe point and home Z
I don't understand from there is Y60 there? I am using Reprap configurator
If I manually put there Y-60 than its moves 60 by Y which is as expected. But If I put also X30 than it start to misbehave.There is config.g
; Configuration file for Duet WiFi (firmware version 2.03) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v2.1.4 on Thu Jan 02 2020 22:17:48 GMT+0100 (Central European Standard Time) ; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"own" ; set printer name M667 S1 ; select CoreXY mode ; Network M552 S1 ; enable network M586 P0 S1 ; enable HTTP M586 P1 S0 ; disable FTP M586 P2 S0 ; disable Telnet ; Drives M569 P0 S1 ; physical drive 0 goes forwards M569 P1 S1 ; physical drive 1 goes forwards M569 P2 S1 ; physical drive 2 goes forwards M569 P3 S0 ; physical drive 3 goes backwards M569 P4 S1 ; physical drive 4 goes forwards M584 X0 Y1 Z2 E3:4 ; set drive mapping M350 X16 Y16 Z16 E16:16 I1 ; configure microstepping with interpolation M92 X200.00 Y200.00 Z400.00 E436.50:436.50 ; set steps per mm M566 X900.00 Y900.00 Z30.00 E120.00:120.00 ; set maximum instantaneous speed changes (mm/min) M203 X6000.00 Y6000.00 Z180.00 E1200.00:1200.00 ; set maximum speeds (mm/min) M201 X500.00 Y500.00 Z15.00 E250.00:250.00 ; set accelerations (mm/s^2) M906 X800 Y800 Z1300 E600:600 I30 ; set motor currents (mA) and motor idle factor in per cent M84 S30 ; Set idle timeout ; Axis Limits M208 X0 Y0 Z0 S1 ; set axis minima M208 X316 Y267.5 Z334 S0 ; set axis maxima ; Endstops M574 X1 Y1 S0 ; set active low and disabled endstops M574 Z1 S2 ; set endstops controlled by probe ; Z-Probe M307 H3 A-1 C-1 D-1 ; disable heater on PWM channel for BLTouch M558 P9 H0 F120 T15000 ; set Z probe type to bltouch and the dive height + speeds G31 P500 X10 Y-50 Z0 ; set Z probe trigger value, offset and trigger height M557 X10:296 Y10:247.5 S15 ; define mesh grid ; Heaters M140 H-1 ; disable heated bed M305 P1 X200 ; configure PT100 for heater 1 M143 H1 S450 ; set temperature limit for heater 1 to 450C M305 P2 X201 ; configure PT100 for heater 2 M143 H2 S450 ; set temperature limit for heater 2 to 450C ; Fans M106 P0 S0 I0 F500 H-1 ; set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off M106 P1 S1 I0 F500 H-1 ; set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned off M106 P2 S1 I0 F500 H-1 ; set fan 2 value, PWM signal inversion and frequency. Thermostatic control is turned off ; Tools M563 P0 S"Left" D0 H1 F-1 ; define tool 0 G10 P0 X0 Y0 Z0 ; set tool 0 axis offsets G10 P0 R0 S0 ; set initial tool 0 active and standby temperatures to 0C M563 P1 S"Right" D1 H2 F-1 ; define tool 1 G10 P1 X0 Y0 Z0 ; set tool 1 axis offsets G10 P1 R0 S0 ; set initial tool 1 active and standby temperatures to 0C ; Custom settings are not defined ; Miscellaneous M501 ; load saved parameters from non-volatile memory
I don't understand that is wrong at this point, maybe you can guide me please a bit on it? Thank you in advance!
-
@felt342 said in BL touch Z offset (similar to M851):
Every time then I press home Z
You've posted your homeall, but what is in homez?
-
@felt342 said in BL touch Z offset (similar to M851):
G1 H2 X0 Y60 F15000 ; go to first bed probe point and home Z
G30 ; home Z by probing the bedYou are using coreXY so the H2 shouldn't be there. In corexy mode that will set it to move one motor or the other. It's also unnecessary since the X and Y are homed at that point so you can just use a regular G1 X Y move to position the probe.
Not sure why it's X0 Y60 either. But it can be whatever you want so just change it.
UseG1 X150 Y 150
or whatever position you want to probe at. -
Hi, there is my home files. Haven't try yet to use just G1, after work will do! Thank you!
Any idea why do I getting than H2 in ReprapConfigurator if its set for CoreXY, and how I can fix it to prevent in future?; homez.g ; called to home the Z axis ; ; generated by RepRapFirmware Configuration Tool v2.1.4 on Thu Jan 02 2020 22:17:48 GMT+0100 (Central European Standard Time) G91 ; relative positioning G1 H2 Z0 F15000 ; lift Z relative to current position G90 ; absolute positioning G1 H2 X0 Y60 F15000 ; go to first probe point G30 ; home Z by probing the bed ; Uncomment the following lines to lift Z after probing ;G91 ; relative positioning ;G1 H2 Z0 F250 ; lift Z relative to current position ;G90 ; absolute positioning
; homex.g ; called to home the X axis ; ; generated by RepRapFirmware Configuration Tool v2.1.4 on Thu Jan 02 2020 22:17:48 GMT+0100 (Central European Standard Time) G91 ; relative positioning G1 H2 Z0 F15000 ; lift Z relative to current position G1 H1 X-321 F3000 ; move quickly to X axis endstop and stop there (first pass) G1 X5 F15000 ; go back a few mm G1 H1 X-321 F300 ; move slowly to X axis endstop once more (second pass) G1 H2 Z0 F15000 ; lower Z again G90 ; absolute positioning
; homey.g ; called to home the Y axis ; ; generated by RepRapFirmware Configuration Tool v2.1.4 on Thu Jan 02 2020 22:17:48 GMT+0100 (Central European Standard Time) G91 ; relative positioning G1 H2 Z0 F15000 ; lift Z relative to current position G1 H1 Y-272.5 F3000 ; move quickly to Y axis endstop and stop there (first pass) G1 Y5 F15000 ; go back a few mm G1 H1 Y-272.5 F300 ; move slowly to Y axis endstop once more (second pass) G1 H2 Z0 F15000 ; lower Z again G90 ; absolute positioning
-
Haha it's a bit complicated. The H2 is ok for the z axis. Normally It allows you to move an axis when not homed yet. But for core xy it isolates a XY motor. The configurator was recently updated To use H instead of S because S has been repurposed for controlling laser power because that's what some of the laser software generates and this is a bug that is yet to be fixed.
You homez needs to be changed in the same way as homeall.
-
ouch
meaning I should change in homeall.gG1 H2 X0 Y60 F15000 ; go to first bed probe point and home Z
to
G1 X50 Y50 F15000 ; go to first bed probe point and home Z
and in homez.g
G1 H2 X0 Y60 F15000 ; go to first probe point
to
G1 X50 Y50 F15000 ; go to first probe point
Is that correct what I understood?
learning every day! -
Yes. But instead of x50 y50 you should try to position the probe at the center of the bed.
-
Yes, that worked perfectly!
I do have a small question still:
Then I home Z now, its goes till mine Z offset set, and then dive by H10 value. Is this how it should be? Then I will print I should just set up in slicer startup .gcode the way it doesn't dive? Thank you!; Z-Probe M307 H3 A-1 C-1 D-1 ; disable heater on PWM channel for BLTouch M558 P9 H10 F120 T15000 ; set Z probe type to bltouch and the dive height + speeds G31 P500 X10 Y-51.492 Z-0.5 ; set Z probe trigger value, offset and trigger height M557 X10:296 Y10:247.5 S15 ; define mesh grid
-
The meaning of the dive height (M558 H parameter) is that when you do either a G30 probe with a P parameter (as used in bed.g) or mesh bed probing (G29), the print head will move to that height above the bed plus the trigger height before it starts probing. That's all. So if the bed is reasonably level (or for a delta printer, the printer is well calibrated), you can use a lower value such as H5 or H3 to speed up probing.
The parameter in RRF that's similar to M851 in Marlin is the Z parameter in the G31 command. It predates M851 by several years.
In fact, recent versions of RRF do support M851 as well for the benefit of users such as you coming from Marlin. See https://duet3d.dozuki.com/Wiki/Gcode?revisionid=HEAD#Section_M851_Set_Z_Probe_Offset_Marlin_Compatibility. The M851 parameter is the negation of the G31 Z parameter.
-
I see that is super helpful!
Thank you for such a great support here on the forum, your software and hardware are really piece of great engineering. I do enjoy learning it a lot!