g29 probe punching through bed
-
Hi all,
I've spent ages trying to figure this out and I only have a little hair left so hopefully someone here can point me in the right direction!First, what I'm using:
Board: Duet 2 Ethernet (2Ethernet)
Firmware: RepRapFirmware for Duet 2 WiFi/Ethernet 3.3 (2021-06-15)
WorkBee Control 3.3.0 - V1.0
Web Interface developed by Christian Hammacher for Duet3D.
Modified By Ooznest for WorkBee Control.I'm setting up the meshbed comp like this:
M558 P5 C"!e0stop" H5 F120 T120
M557 x850:1030 y990:1120 S8:8but every time I run G29 S0 it just punches through the bed even though it's triggering the Zprobe (I can see it on the web interface as changing from Not Triggered to Triggered). I have tried both C"!e0stop" and C"e0stop" but that makes no difference.
I can run this macro
G30 P0 X855 Y995 Z-99999
G30 P1 X1030 Y995 Z-99999
G30 P2 X1030 Y1120 Z-99999
G30 P3 X855 Y1120 Z-99999 s-1and that works fine, stopping at contact, but obviously does'nt give me the mesh ... I just can't figure out how to make G29 read the e0 endstop correctly!?
Edit: I also tried M558 K0 P5 C"!e0stop" H5 F500 T500 but to no avail, I'm unsure if the 'K' is necessary
-
@n00dle
Hello, I guess you have a G31 somewhere there after the M558.From the documentation: "A G31 command to set Z probe parameters must come after the M558 command that defines the Z probe."
https://duet3d.dozuki.com/Wiki/G31
Maybe you can share your config.g ?
Here's my probe config as an example only:
M558 K0 P8 C"121.io2.in" T18000 F180 H10 A10 S0.0025 G31 K0 P500 X0 Y20 Z9 ;Z7.438
If the K parameter is not used it implicitly sets it to zero (probe #0)
-
gixxerfast
Hello mate,
I haven’t set anything with G31 which may be my issue.
I’ll dig out my config file but everything I’m doing is through the command line input so it will just be however it shipped, is that not a good way to do it?I’ll go add the G31 line now and report back.
Thanks for the help! -
Heres the config file
; Configuration file for Duet
; executed by the firmware on start-up
; WorkBee Firmware Version 1.1; Configuration files
M98 P"config-network.g"
M98 P"config-drives.g"
M98 P"config-axes.g"
M98 P"config-axes-limits.g"
M98 P"config-axes-calibration.g"
M98 P"config-axes-endstops.g"
M98 P"config-probe.g"
M98 P"config-spindle.g"
M98 P"config-laser.g"; Other Settings
M453 ; Put the machine into CNC Modes
G90 ; Set absolute coordinates
M140 H-1 ; Disable heated bed
M564 S1 H1 ; Disable jog commands when not homed
M911 S21.0 R23 P"G91 G1 Z3 F1000" ; Configure power loss resumem950 P1 C"fan2"
m42 P1 S0; User Configuration files
M98 P"config-user-settings.g"M501 ; Load Stored Parameters
-
@gixxerfast
Also just a note, the z probe is a touch probe (completes a circuit from the endmill to the surface) so i guess i don't need to set P? -
@n00dle I don't know if you can omit the trigger value as I can't find any information about a default value/behaviour. I think we'll leave that to the official experts to answer. On the other hand, I don't think it can hurt to set it. I use ordinary micro switches as probes.
Then, the configuration files I think we need to see are:
config-axes-endstops.g config-probe.g config-user-settings.g
And when you add them, use the </> in the menu above the editor window so it's easier to read and takes less space.
Since this seems to be some sort of CNC with metal bits and possible real damage I think we should ask help from others with more experience of this sort of application.
-
; Endstop configuration executed by config.g M574 X2 P"xstop" S1 ; Set active low X endstop M574 Y2 P"ystop" S1 ; Set active low Y endstop M574 Z2 P"zstop" S1 ; Set active low Z endstop
; Probe configuration executed by config.g M558 K0 P5 C"!e0stop" H5 F500 T500
; Additional user settings executed by config.g
I have tried the following and it still wants to push passed the triggered Z0 point
M558 K0 P5 C"!e0stop" H5 F120 T300 G31 K0 X0 Y0 Z0 M557 x850:1030 y990:1120 S8:8
Again this is all just run one at a time in the console and not stored in any files, if that makes any difference!
I'll try putting in the P value and give that a go -
@n00dle
Sadly the P500 did not help -
@n00dle said in g29 probe punching through bed:
@gixxerfast
Also just a note, the z probe is a touch probe (completes a circuit from the endmill to the surface) so i guess i don't need to set P?The default G31 P value is 500 which is satisfactory as your probe type is P8 so readings are 0 and 1000.
You certainly need to set the G31 Z parameter because the default is 0.7mm. So with no G31 command, RRF will think the tool is 0.7mm above the bed when the probe triggers. For a touch probe you probably need a slightly negative Z value.
You should test a G30 command with no parameters before you test G29. See https://duet3d.dozuki.com/Wiki/Test_and_calibrate_the_Z_probe.
-
@dc42
Hello mate, thanks for the response.
I just triedM558 K0 P5 C"!e0stop" H5 F120 T300 G31 K0 P500 X0 Y0 Z0.7 M557 x850:1030 y990:1120 S8:8
but again it refuses to stop on contact,
G30 P0 X855 Y995 Z-99999 G30 P1 X1030 Y995 Z-99999 G30 P2 X1030 Y1120 Z-99999 G30 P3 X855 Y1120 Z-99999 s-1
All the above work fine
-
@n00dle see my previous post, which I was editing at the same time as you replied.
-
@dc42
rgr, i'll change the Z0.7 to Z-0.7 and see?
Sorry, I'm completely lost so if I'm missing something just throw something at me. -
@n00dle Your telling the machine the Z0 is 0.7mm below the probe point, so it will keep going into the bed at Z0..
You need to set it to G31 K0 P500 X0 Y0 Z0. Using an endmill as a probe, means there is no Z offset. -
@stephen6309
That's what i thought but apparently not! Setting Z to 0 just kept driving the mill into the board even though G30 works find, and the normal Z probe to set 0 worked fine.@dc42
Setting Z to -0.7 seems to have done it!G31 K0 P500 X0 Y0 Z-0.7
For my sanity how is this helping? and what does it mean for the heightmap? will it be 0.7mm out in relation to the probed Z0?Edited, above hasnt worked
-
@n00dle Verify that you have the correct steps per millimeter set for your Z axis.
-
@stephen6309
Sorry not really sure how to check that other than when i touch probe the Z axis to 0 it, then raise it 10mm, if i measure the gap it is exactly 10mm so i assume its ok? -
@n00dle Should be. I usually do a longer travel in both directions to make sure.
-
@dc42
Sorry mate,
The -0.7 did work but I had put the board up on some springy bits so it didnt keep bottoming out, but now putting the board back on solid ground it's trying to push through again even though it's triggering the probe. Does the -0.7 need refining?Bizzare, going back to how it was working, it is now not working. Where are the matches...
-
@n00dle Just a comment. I think it would be better to insert your configuration in the correct files or at least in config-user-settings.g so that you don't lose them between restarts. Also, the order of these commands are sometimes important.
There you can also comment out and keep track of history as you do your changes.
Only need to remember to either execute the changed files with the M98 command or restart the board (M999) to make the changed take effect.
You can do that, edit the configuration files, in your version of the DWC?
-
Ok, figured it out!
When I probe Z with the web interface, it zeros Z for the tool position, not the machine position. This results in the tool position being X0 Y0 Z0 but machine pos is X855 Y995 Z30.
Running G29 works off of machine position hence it pushing all the way through, it thinks it has to go another 30mm.
Running G30 sets the machine Z to 0 and all works as desired. I feel rather stupid but who'd have thought doing a Z touch wasn't enough!
I guess i didn't process that Gcode is run off of tool position so the web interface Z touch isn't the correct way to work with G29.Thanks to all who have responded. And for reference G31 K0 P500 X0Y0Z0 works fine, didnt need the -0.7 on the Z like we suspected.