BLTouch Duet 2 Makergear M2 End stop switch??
-
@airscapes said in BLTouch Duet 2 Makergear M2 End stop switch??:
I do not understand how this would work exactly.
Yes it's quite easy actually.
To home to the endstop, you use a
G1 H1 Z300 F600
move and to use the probe, you position the probe with aG1 X150 Y150 F6000
(bed center-ish) and then use G30 to home z with the probe.Post your config.g and homing files if you would like use to show exactly what needs changing.
-
@Phaedrux Hi and Thanks for the help! If this thread should be moved to firmware that is understandable if I have it wired correctly (which I think I do as it works as described in the doc).
At this point I have followed the instructions to the best of my ability to calibrate the probes trigger height. It still does not make sense, as I am not sure what I am achieving since the probe triggers .36mm before the nozzle touches which is way too much space for a Z offset. But alas my question was setting up homering and maybe I am not really ready for that yet? Here are the files as they are now. Firmware is at 3.4.4 and BLT is current 3.1
Image attached of the bed a the trigger height of .36mm after jog to zero, send G92 Z0, jog to 10mm, send G30 S-1
UPDATE: After posting this and more searching I think I am starting to get how this works. Looks like the trigger point is a bit too close to Z0 so i will change the shim under the BLT and add 1mm. Next rerun the Height cal of the probe and that should add 1mm which it did with a offset of 1.32 now. Updating the config.g file to reflect the change. Thanks
Config.g; Configuration file for Duet WiFi (firmware version 3.3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.3.10 on Sun Nov 28 2021 16:12:33 GMT-0500 (Eastern Standard Time) ; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"M2 Rev-E V1" ; set printer name M950 S0 C"exp.heater3" ; Create output pin for BLT as per the doc.. cut and pasted. ; Network M552 S1 P192.168.1.245 ; enable network M586 P0 S1 ; enable HTTP M586 P1 S1 ; enable 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 forwards M584 X0 Y1 Z2 E3 ; set drive mapping M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation ;M92 X88.89 Y88.89 Z1011.90 E430.00 ; set steps per mm Jeremy's numbers His E setting seemed to under extrude but I think he has a different extuder M92 X88.88 Y88.88 Z1007.8 E471.50 ; set steps per mm ;M92 X88.88 Y88.88 Z1011.90 E471.50 ; set steps per mm Jeremy's number for Z only ;10-25-22 M566 X240.0 Y240.0 Z24.0 E1200.0 ;Rambo not sure set maximum instantaneous speed changes (mm/min) Jerk ;M566 X240.0 Y240.0 Z24.0 E60.0 ;Rambo not sure set maximum instantaneous speed changes (mm/min) Jerk M566 X900.00 Y900.00 Z24.00 E60.00 ;NORMAL Settings been using set maximum instantaneous speed changes (mm/min) ;M566 X800.00 Y800.00 Z24.00 E60.00 ; DRP 12-24-21 set back to 900 trying to fix cornners set maximum instantaneous speed changes (mm/min) ;M566 X800.00 Y800.00 Z20.00 E60.00 ; DRP 4/28/22 testing with shit abs set maximum instantaneous speed changes (mm/min) M203 X12000.00 Y12000.00 Z1500.00 E1500.00 ; Rambo set maximum speeds (mm/min) M201 X900.00 Y1000.00 Z30.00 E1000.00 ;Rambo settings ;M201 X800.00 Y800.00 Z200.00 E10000.00 ; set accelerations (mm/s^2) M906 X800 Y800 Z800 E800 I30 ; set motor currents (mA) and motor idle factor in per cent ;M906 X900 Y900 Z900 E800 I30 ;1-16-22 bumped up to test 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 ; set axis maxima ;********************************************************************* ;M208 X210 Y255 Z210.00 S0 ;HERE Staring point for feeler M208 X210 Y255 Z210.00 S0 ;HERE set Z offset Smaller = farther; Z offset ;PEI M208 X230 Y255 Z210.00 S0 ;HERE set Z offset Smaller = farther; Z offset ; Endstops M574 X1 S1 P"!xstop" ; configure switch-type (e.g. microswitch) endstop for low end on X via pin !xstop M574 Y1 S1 P"!ystop" ; configure switch-type (e.g. microswitch) endstop for Low end on Y via pin !ystop M574 Z2 S1 P"!zstop" ; configure switch-type (e.g. microswitch) endstop for hight end on Z via pin !zstop ; Z-Probe M558 P9 C"^zprobe.in" H5 F120 T6000 ; Duet 2 WiFi/Ethernet BLT connected to the zprob not endstop G31 X0 Y24 Z1.36 P25 ;M558 P0 H5 F120 T6000 ; disable Z probe but set dive height, probe speed and travel speed ;M557 X15:199 Y15:195 S20 ; define mesh grid ; Heaters M308 S0 P"bedtemp" Y"thermistor" T100000 B4072 ; configure sensor 0 as thermistor on pin bedtemp M950 H0 C"bedheat" T0 ; create bed heater output on bedheat and map it to sensor 0 M307 H0 B1 S1.00 ; enable bang-bang mode for the bed heater and set PWM limit M140 H0 ; map heated bed to heater 0 M143 H0 S125 ; set temperature limit for heater 0 to 125C M308 S1 P"e0temp" Y"thermistor" T100000 B4072 ; configure sensor 1 as thermistor on pin e0temp M950 H1 C"e0heat" T1 ; create nozzle heater output on e0heat and map it to sensor 1 M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit M143 H1 S300 ; set temperature limit for heater 1 to 300C ; Fans M950 F0 C"fan0" Q500 ; create fan 0 on pin fan0 and set its frequency M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off M950 F1 C"fan1" Q500 ; create fan 1 on pin fan1 and set its frequency M106 P1 S1 H1 T60 ; set fan 1 value. Thermostatic control is turned on M950 F2 C"fan2" Q500 ; create fan 1 on pin fan1 and set its frequency M106 P2 S1 H1 T40 ; set fan 2 value. Thermostatic control is turned on ; Tools M563 P0 S"hotend" D0 H1 F0 ; define tool 0 G10 P0 X0 Y-2 Z0 ; set tool 0 axis offsets G10 P0 R0 S0 ; set initial tool 0 active and standby temperatures to 0C M555 P2 ;Marlin compat ; Custom settings are not defined ; Miscellaneous M501 ; load saved parameters from non-volatile memory T0 ; select first tool Jeremy's entry
Homeall
; homeall.g ; called to home all axes ;Z ; generated by RepRapFirmware Configuration Tool v3.3.10 on Sun Nov 28 2021 16:12:33 GMT-0500 (Eastern Standard Time) G91 ; relative positioning G1 H1 Z215 F3600 ; move quickly to z axis endstop and stop there (first pass) G1 H2 Z-5 F3600 ;go back a few mm G1 H1 Z215 F360 ; move slowly to X axis endstop once more (second pass) G90 ; absolute positioning ;Y G91 ; relative positioning G1 H1 Y-250 F3600 ;move quickly to Y axis endstop and stop there (first pass) G1 H2 Y5 F3600 ; go back a few mm G1 H1 Y-250 F360 ; move slowly to Y axis endstop once more (second pass) G90 ; absolute positioning ;X G91 ; relative positioning G1 H1 X-215 F3600 ;move quickly to X axis endstop and stop there (first pass) G1 H2 X5 F3600 ; go back a few mm G1 H1 X-215 F360 ; move slowly to X axis endstop once more (second pass) G90 ; absolute positioning
Homez.g
; homez.g ; called to home the Z axis ; ; generated by RepRapFirmware Configuration Tool v3.3.10 on Sun Nov 28 2021 16:12:33 GMT-0500 (Eastern Standard Time) ;G91 ; relative positioning ;G1 H2 Z5 F6000 ; lift Z relative to current position ;G1 H1 Z-215 F1800 ; move Z down until the endstop is triggered ;G92 Z0 ; set Z position to axis minimum (you may want to adjust this) G91 ; relative positioning ;G1 H2 Z0 F6000 ; lift Z relative to current position G1 H1 Z200 F3600 ; move quickly to z axis endstop and stop there (first pass) G1 H2 Z-5 F6000 ; go back a few mm G1 H1 Z200 F360 ; move slowly to X axis endstop once more (second pass) G90 ; absolute positioning
-
Your homing files are still using the endstop, which is fine if you want to home to Zmax.
To use the probe, you need to use a G30 command.
It's up to you how you arrange using both. You could create a new macro to use just the probe, or you could use home Z for homing to Zmax and add a G30 to the end of Homeall to use the probe there.
The probe would be used for mesh compensation, but if you do that, you must remember to use the probe and G30 to set the Z0 position first.
You can also measure the exact length of the Z axis from Z0 to the endstop trigger so that you have accurate Z0 point.
The easiest way to do this is to get the nozzle touching the bed, send G92 Z0 to set Z0, and then send G1 H3 Z300 F600 to travel to the zmax endstop and record/report the axis position at the end.
-
@Phaedrux Thank you very much! Since my hot end can be adjusted by several mm up or down in the mount the Z0 has always been very exact. I would set zmaz to 210.00 with the hot end up then when at 210 drop it on a feeler gage at a know height, print a test and adjust offset with Zmax. So I did just that, sent sent the bed to zero, did the G92 Z0, dropped bed 10mm and G30 S-1 and entered the value.. The a lot of fumbling but eventually homed, sent the bed to center Z10, then G30 and G29 S1 and am doing some test prints... Sounds like adding one or more macros would be helpful.. How do I do that do that (NM Figured that out with little trouble) we are way off topic for this area of the forum Where should I be posting config question on the configuration of the Zprobe and height maps etc? Still not sure how to set since it does not seem to be managed by the probe/height map and it changes greatly with bed temp from cold to110C
Update: The more I think about this, if have a macro that uses the probe as the z endstop would that make the z offset less of an issue when the bed gets hot and moves closer to the nozzle? What would that look like.. homing to the zprobe, set map grid, run the probe grid and print.. and where/how does that offset get set? I think it is time for an adult beverage to forget about this for a while.. -
You should measure the probe Z offset when the nozzle and bed are at temp to account for thermal expansion.
-
@Phaedrux Ok, so redo the G92 Z0, jog to 10mm, send G30 S-1, edit the config, reboot and start all over again every time?
-
Not every time. You just need to know the offset when it's at temp, so that it's accurate for print time.
-
@Phaedrux So how to I home to the BLT prob, you said add thing to the end of the home all.. what gets added?
-
@Phaedrux said in BLTouch Duet 2 Makergear M2 End stop switch??:
To use the probe, you need to use a G30 command.
So after homing X and Y you'd need to position the probe, and then ask it to find Z0.
Something like this at the end
G90 ; absolute position G1 X150 Y150 F6000 ; move probe to center G30 ; probe the bed G1 X10 Y10 ; return to a park position
-
@Phaedrux Ok that is making sense to me. Let me run though this to verify I am understanding this fully and point out the parts still unclear.
Initially I have jogged the nozzle to touch the bed, then told the system I am at zero with the G92 Z0, moved the bed down 10mm, then probed with the G30 S-1 which only "Reports" the trigger point of the probe? This trigger point is added to the config.g file like this G31 X0 Y-24 Z1.36 P25 (unclear on P25). which is read at startup. The 1.36 in this case is added or subtracted from something to get to zero for this one spot??
When a mesh is run, this number changes with the be irregularities found while probing the bed. So when I put the code in the home file, it is just setting z0 at that one point which is then used against the mesh number if reloading an existing mesh or is used if a G29 is issued to redo a mesh.So if my nozzle was touching the bed and there is no config for the amount of gap needed for the first layer, how does that gap set set and or adjusted beside using the babbysteps? I need to understand how this all works and there does not seem to be a compressive written explanation of the entire process..
-
When you use G30 S-1, you are 'finding' the difference between the nozzle and the trigger point of the BL Touch. The machine knows this distance, as previously you used G92 Z0 to set the zero to the nozzle, moved the bed down 10mm, and then the machine moved until it found the BL Touch Trigger.
With that trigger value found, you add it to your G31 line in config.g so that it is a stored value. The next time you run a homing procedure, the machine will use the BL touch to find the print bed. Now that the machine knows where it is relative to the BL Touch trigger point, by using the offset in G31, it also knows where the nozzle is - and therefore Z0!
@airscapes said in BLTouch Duet 2 Makergear M2 End stop switch??:
So if my nozzle was touching the bed and there is no config for the amount of gap needed for the first layer, how does that gap set set and or adjusted beside using the babbysteps? I need to understand how this all works and there does not seem to be a compressive written explanation of the entire process..
Right, so you found zero with the nozzle first, stored the value in G31, and now the BL Touch can find zero. Typically a print does NOT start the first layer at Z=0, but instead at the first layer height. For example:
G1 F360 Z0.2 ; start printing the first layer at Z=.2mm
Therefore you don't need to put an additional gap into the config.
If your G31 measurement is very accurate, you shouldn't need to babystep any extra to get the right first layer (although babystepping is a useful tool to use if it is off a tiny amount).
@airscapes said in BLTouch Duet 2 Makergear M2 End stop switch??:
When a mesh is run, this number changes with the be irregularities found while probing the bed. So when I put the code in the home file, it is just setting z0 at that one point which is then used against the mesh number if reloading an existing mesh or is used if a G29 is issued to redo a mesh.
This sounds just about right!
@airscapes said in BLTouch Duet 2 Makergear M2 End stop switch??:
G31 X0 Y-24 Z1.36 P25 (unclear on P25)
P25 is the trigger value, and 25 is fairly common for BL Touch probes.
-
@sebkritikel P25 was taken from an example in the instructions.. how is it come by and what does it mean.. trigger value ?? what is that?
As far as offset, I will see how it goes but fist testing seems to require more space. With the home at the other end of the screw prior to BLT, I would use the Max Z to control the offset. Adjust until the 3mm tall 2 wall square is actually 3mm..Does the M30 that is done before the the print over ride the stored value? I mean i would assume so since the number is very different between 40C and 110C
-
@airscapes said in BLTouch Duet 2 Makergear M2 End stop switch??:
P25 was taken from an example in the instructions.. how is it come by and what does it mean.. trigger value ?? what is that?
For a digital signal it doesn't matter much. For an analog signal, it's a value between 1 and 1000. For the BLTouch use 25.
When using a probe, you should have an accurate Z0 position, so no offset needed. With an endstop at the high end of travel you're always at the mercy of needing an offset.
You can still adjust your first layer with babystepping if needed, and if it's consistent you can adjust your G31 trigger value by that amount to make it permanent.
-
@airscapes said in BLTouch Duet 2 Makergear M2 End stop switch??:
Does the M30 that is done before the the print over ride the stored value? I mean i would assume so since the number is very different between 40C and 110C
G30 will use the value saved in G31. That's why it's important to measure it when at print temperature.
-
Have you seen this page? https://docs.duet3d.com/en/User_manual/Connecting_hardware/Z_probe_testing
-
@Phaedrux said in BLTouch Duet 2 Makergear M2 End stop switch??:
Have you seen this page? https://docs.duet3d.com/en/User_manual/Connecting_hardware/Z_probe_testing
Yup that page and associated pages got me where I am. It tries to cover a lot of things and some details are not there that would be helpful.
As far as the G31 at temp.. how to deal with a bed temp of 20C for TPU and 110 for ABS?? Or if I remove the Build-tak flex plate and put on just a metal plate with polymide tape. I would have to believe that when homed with the G30 command and the contact is in a different location it use that number not what is stored in G31
I mean I read this from the Gcode dictionary to say that G30 ; Probe the bed at the current XY position. When the probe is triggered, set the Z coordinate to the probe trigger height.
I would think this would override what is in the config.g would it not??. And if G31 as set at 20C and the bed is now 110C, the single probe with G30 would set it to where it needs to be at the higher temp, would it not? -
@airscapes said in BLTouch Duet 2 Makergear M2 End stop switch??:
I mean I read this from the Gcode dictionary to say that G30 ; Probe the bed at the current XY position. When the probe is triggered, set the Z coordinate to the probe trigger height.
I would think this would override what is in the config.g would it not?I think you misunderstand what the G31 value is and how it applies when using G30.
The G31 Z value is the distance between the nozzle tip and and the trigger point of the probe. With a contact probe like the BLTouch it doesn't change. When you do the measurement procedure with G30 S-1, you're manually setting Z0, and then measuring the distance between the nozzle tip and bed surface when the probe triggers. So if you change the bed surface, the probe doesn't care, it just touches the bed surface and calls that Z0 and it knows how far the nozzle tip is away because you gave it the offset.
The only thing that may chance G31 is thermal expansion of the nozzle. But if you measure it at temp it should be pretty consistant between print temps.
The way the bed surface behaves will vary between bed surfaces. How the shape changes at temp etc. But that just means you should create a new heightmap (G29) for each bed surface change.
-
@Phaedrux Excellent explanations and exactly what I was not grasping, that make perfect sense now!! As you could tell I was fixated on the bed changing height since I had to deal with that compensation manually without the probe. probe to nozzle offset does not change other than the heat of the nozzle vs cold.
It is little details like that that those main instructions are missing. They are more quick reference to get you going but not detailed on "how it works" which I do understand since there are lots of different probes and printers.
Thanks again, I have to find some time to get back to the printer and spend a few hours to get it finished.