[3.6.0-rc.2] Z-probe hits bed and U not moving running Mesh
-
@tcamguil said in [3.6.0-rc.2] Z-probe hits bed and U not moving running Mesh:
;Kliky L M558 P8 C"10.io0.in" H2:0.25 F1200:120 T18000 K1 R0.0 A15 S0.005 ; set Z probe type to bltouch and the dive height + speeds G31 P500 X42.00 Y0.00 Z-25.000 K1 ; set Z probe trigger value, offset and trigger height ... ;Kliky R M558 P8 C"11.io0,in" H2:0.25 F1200:120 T18000 K1 R0.0 A15 S0.005 ; set Z probe type to bltouch and the dive height + speeds
Do you have one Klicky probe, or two? You seem to be defining two, on different IO inputs. Or is it the same Klicky, but it depends which tool head picks it up?
You have K1 set as the probe number for both probes, so most likely only one of them is actually being configured; the second effectively overwrites the first, so when the 1st toolhead (using the CAN '10' board) picks it up, it's looking on the wrong input for the probe response. Same for G31. Send M558 K# to check what probes are defined. Use a different K number for each probe. I don't know which probe number you are using in your 'pickupprobe.g' etc macros, but you could pass a parameter to the macro based on the tool number.
As far as I'm aware, the mesh should be applied to both tools. Please post your full config.g, maybe it's a config issue.
There is an issue running mesh probing on the U axis, it has been reported before, and your third issue sounds similar to this: https://forum.duet3d.com/topic/37165/issue-with-szp-on-secondary-idex-toolhead
Ian
-
@droftarts said in [3.6.0-rc.2] Z-probe hits bed and U not moving running Mesh:
Do you have one Klicky probe, or two? You seem to be defining two, on different IO inputs. Or is it the same Klicky, but it depends which tool head picks it up?
You have K1 set as the probe number for both probes, [...]
I have one Klicky probe that can be loaded by both heads.
I was playing with the macros before posting here and forgot to change back the first probe to K0 but yes both probes are declared. So as far as the Duet is concerned it has two probes, K0 is on T0 (CAN '10' board on the X motor) and K1 is on T1 (CAN '11' board on the U motor).As far as I'm aware, the mesh should be applied to both tools. Please post your full config.g, maybe it's a config issue.
After experimenting with the mesh and both toolheads I realized that the mesh is being applied to both tools as expected. The mesh XY simply does not affect raw U moves which is the expected result. So I think this solves my second issue and may render my third issue moot.
There is an issue running mesh probing on the U axis, it has been reported before, and your third issue sounds similar to this: https://forum.duet3d.com/topic/37165/issue-with-szp-on-secondary-idex-toolhead
I also noticed that the mesh is probed along Y first then U (in every version of RRF 3.6) only in RRF 3.6.0-rc2 does the U axis not move at the end of each row.
For example, if I run the 3 commands below U moves to the center of the buildplate (U150, Y125), to the front (U150, Y0), then to the back (U150, Y250) where it probes twice (performing one probing move from Z5 and 2-3 probes from Z0.5 each time) and finally to the front again (U150, Y0) instead of probing each corner once.
M557 U0:300 Y0:250 P2 ; define mesh grid G1 U150 Y125 F15000 ; Move to the center G29 S0 K1 ; Proceed mesh compensation
But the resulting heightmap is "correct" here is the heightmap.csv file generated
RepRapFirmware height map file v2 generated at 2025-04-08 11:22, min error -0.041, max error 0.001, mean -0.020, deviation 0.020 axis0,axis1,min0,max0,min1,max1,radius,spacing0,spacing1,num0,num1 Y,U,0.00,250.00,0.00,300.00,-1.00,249.97,299.97,2,2 -0.038, 0.001 -0.041, -0.000
-
@tcamguil Thanks for your response. I've raised a github issue, and @dc42 is looking into it.
https://github.com/Duet3D/RepRapFirmware/issues/1105Ian
-
@droftarts, I have quickly tested a few things with the following handmade heightmap.
heightmap_X.csv
RepRapFirmware height map file v2 generated at 2025-04-08 11:22, min error -0.041, max error 0.001, mean -0.020, deviation 0.020 axis0,axis1,min0,max0,min1,max1,radius,spacing0,spacing1,num0,num1 X,Y,0.00,250.00,0.00,300.00,-1.00,249.97,299.97,2,2 -4.000, 4.000 -4.000, 4.000
heightmap_U.csv (the points are rotated to match the probing order)
RepRapFirmware height map file v2 generated at 2025-04-08 11:22, min error -0.041, max error 0.001, mean -0.020, deviation 0.020 axis0,axis1,min0,max0,min1,max1,radius,spacing0,spacing1,num0,num1 Y,U,0.00,250.00,0.00,300.00,-1.00,249.97,299.97,2,2 4.000, 4.000 -4.000, -4.000
here are my results
With heightmap_X active,
- If no tool is active the heightmap is applied on G1 moves using the G1 Xaaa command but not the G1 Uaaa command.
- If T0 (connected to X motor) is active the heightmap is applied on G1 moves using the G1 Xaaa command but not the G1 Uaaa command.
- If T1 (connected to U motor) is active the heightmap is applied on moves using the G1 Xaaa command but not the G1 Uaaa command.
With heightmap_U active,
- If no tool is active the heightmap is applied on G1 moves using the G1 Uaaa command but not the G1 Xaaa command.
- If T0 (connected to X motor) is active the heightmap is applied on G1 moves using the G1 Uaaa command but not the G1 Xaaa command.
- If T1 (connected to U motor) is active the heightmap is applied on both moves using the G1 Uaaa command and the G1 Xaaa command.
I hope this can help you diagnose the issue.
On the other hand do you have an idea about what could be causing the toolboard to fail to detect the status change of the klicky thus attempting to push it through the bed?
@tcamguil said in [3.6.0-rc.2] Z-probe hits bed and U not moving running Mesh:
The first one is that during the G29 calibration the machine will sometimes fail to detect the "status change" of the Z-probe and will go all the way down breaking the Z-probe before generating a "Error: G29: Probe was not triggered during probing move" message.
I have tried increasing the Z lift to 0.5mm in between two probes without success. H2:0.25 => H2:0.5
I also tried to increase the recovery time to 0.5s thinking the Z-probe "status" was not updated in time. R0.0 => R0.5 -
@tcamguil said in [3.6.0-rc.2] Z-probe hits bed and U not moving running Mesh:
On the other hand do you have an idea about what could be causing the toolboard to fail to detect the status change of the klicky thus attempting to push it through the bed?
I'd guess it's looking for a response from the wrong probe. Are you using G29 with a K parameter? Also check that any deployprobe#.g, retractprobe#.g and tool change macros (tpre#.g, tpost#.g and tfree#.g) are all numbered appropriately for the correct tool and probe. If you leave off the number (the #), that macro will be running for ALL probes/tools.
For the heightmaps, @dc42 is looking into this. However, to me it looks like the order of the axes are incorrect when doing a mesh bed on the tool with U mapped to X, because it is listing the Y axis before U, when it should be U first. Can you post your full config.g, so I can see how you've set up your tools?
I also think the mesh is being applied correctly (though not in the correct order), ie a mesh that has been made on the XY axes affects the XY axes but not U, and a mesh made on the UY axes affects the X when U is mapped to it, and UY axes. You generally wouldn't command a U axis move during a job, so this seems sensible.
Ian
-
@droftarts
After hours of trying to debug this issue here are the three files left on my printer
@droftarts said in [3.6.0-rc.2] Z-probe hits bed and U not moving running Mesh:
I'd guess it's looking for a response from the wrong probe. Are you using G29 with a K parameter? Also check that any deployprobe#.g, retractprobe#.g and tool change macros (tpre#.g, tpost#.g and tfree#.g) are all numbered appropriately for the correct tool and probe. If you leave off the number (the #), that macro will be running for ALL probes/tools.
G29 is using K1. I don't use / don't like using the deployprobe/retractprobe pair as it has a tendency to pickup/drop the probe too frequently when running a full machine calibration. tfree-tpre-tpost macros are all correctly numbered
@droftarts said in [3.6.0-rc.2] Z-probe hits bed and U not moving running Mesh:
For the heightmaps, @dc42 is looking into this. However, to me it looks like the order of the axes are incorrect when doing a mesh bed on the tool with U mapped to X, because it is listing the Y axis before U, when it should be U first. Can you post your full config.g, so I can see how you've set up your tools?
For the heightmap I suppose the machine is configuring the mesh in the order of the axes in the firmware (ie: XYZUVWABC...) so it will select Y then U when calibrating, I may be wrong here but it seems logical to me maybe the firmware is selecting Y as both the first axis and the default Y axis (I could not quite understand how the mesh is working under the hood).
@droftarts said in [3.6.0-rc.2] Z-probe hits bed and U not moving running Mesh:
I also think the mesh is being applied correctly (though not in the correct order), ie a mesh that has been made on the XY axes affects the XY axes but not U, and a mesh made on the UY axes affects the X when U is mapped to it, and UY axes. You generally wouldn't command a U axis move during a job, so this seems sensible.
That is also my point of view I think the Heightmap is correctly applied, Both toolheads were applying the compensation while the XY heightmap was active.
The fact that the Heightmap is rotated when displayed on the DWC is an old issue as is the points being meshed and saved in the "wrong" order. It was for me just a quirk of the Firmware (the spacing has to be declared backwards Y then U). -
@tcamguil please try the 3.6.0-rc.2+1firmware from https://www.dropbox.com/scl/fo/kj7gwwzxg5lhe26twph5z/AAdwkPCTYi6bcogLmIIIup4?rlkey=8oo6z5il7wzk2u5b7qpykf3qv&dl=0. Let us know if you are able to generate the correct heightmap for the U/Y tool.
-
@dc42
The good news is the points seems to be taken in the "right" order now.
But the toolhead connected to the U motor needs to be active while the mesh is running for the U axis to move.
Which was not needed for RRF3.6.0-rc1 and before.
The points are being recorded in the right order in the heightmap file.But the Klicky triggering was not detected again about midway through the second mesh calibration breaking it.
-
@tcamguil as a workaround to the U motor not moving unless the toolhead is active, try executing a short G1 U move before probing.
I can't think of any reason why the klicky triggering would not be detected other than a wiring issue, e.g. a bad crimp connection that causes a bad connection at some UY locations but not others.
-
@tcamguil I believe I have fixed the issue of the U axis not moving. Please try the 3.6.0-rc.2+2 firmware at https://www.dropbox.com/scl/fo/nlkfneaas1osgtdw37s17/AIS_H0KSAKCmfYSjSRTSOAE?rlkey=ad4omnq36zkdz3wl8i7kthqqt&dl=0.
-
@dc42, it is working now. Thank you for the quick update.
I guess it could be a bad connection.But why does it happens at random points on the buildplate. And why can't I reproduce the issue on RRF 3.6.0-RC.1 or before. Could it be an issue with the debouncer ?
I switched to a NO sensor and the issue is now flipped the error is now "Error: G29: Probe already triggered before probing move started". and the Z-probe status is stuck in the triggered state until I trigger/un trigger it manually.