G30 probing not working
-
I wanted to try out the manual bed levelling assistant as per https://duet3d.com/wiki/Using_the_manual_bed_levelling_assistant, but after the printer is done probing, nothing seems to happen.
I have this [c]M671 X-10:205:205:-10 Y0:0:210:210 P0.5[/c] in config.g and these in bed.g:
G30 P0 X20 Y40 Z-9999 H0 G30 P1 X20 Y175 Z-9999 H0 G30 P2 X185 Y175 Z-9999 H0 G30 P3 X185 Y40 Z-9999 H0 G30 P4 X100 Y100 Z-9999 S4
After the first run I got this message:
Error: calibration failed, computed corrections: nan nan nan nan
But after that nothing further pops up (although the message will pop up again everytime I issue another command from the UI, but that seems to be a different problem, as this also does happen with other messages from the printer…)
I also cannot access the 'show probed points' option in the machine control view.
-
AFAIK G32 just runs [c]bed.g[/c] wich has the G30 lines in it. So G30 not working looks like the problem I need to solve first…
-
You may be the first person to use the assistant in 4-point mode, because most people us 3-point levelling. Please replace S4 in the final G30 command by S-1. This will cause it to print out the height errors instead of computing corrections. Post the values here and I will run through the calculations and work out what is going on.
-
Using the G30 commands I gave above, just replacing S4 with S-1 gave me this:
Bed probe heights: 0.028 -0.187 -0.182 0.400 0.130, mean 0.038, deviation from mean 0.219
-
You may be the first person to use the assistant in 4-point mode, because most people us 3-point levelling. Please replace S4 in the final G30 command by S-1. This will cause it to print out the height errors instead of computing corrections. Post the values here and I will run through the calculations and work out what is going on.
David, I took a quick look at the ZLeadscrewKinematics file that generates the error. case 4, where the complex matrix building stuff is done, has the following:
[[language]] const floatc_t x01 = x0 * x1; const floatc_t x02 = x0 * x2; const floatc_t x03 = x0 * x3; const floatc_t x12 = x1 * x2; const floatc_t x13 = x1 * x3; const floatc_t x23 = x1 * x3; const floatc_t y01 = y0 * y1; const floatc_t y02 = y0 * y2; const floatc_t y03 = y0 * y3; const floatc_t y12 = y1 * y2; const floatc_t y13 = y1 * y3; const floatc_t y23 = y1 * y3;
Are the x23 and y23 values correct? It looks like they are a copy and paste from the line above, I'd have thought this should have been something like:
[[language]] const floatc_t x23 = x2 * x3; ```and
[[language]]
const floatc_t y23 = y2 * y3;I'm no expert in matrix maths and so please forgive me if I'm way off base but I've chased that kind of subtle problem before and it can be incredibly hard to spot, especially in code you've written yourself… adavidm
-
Thank you, those lines are clearly wrong. I'll fix them in the next 1.20 alpha release.
-
Thanks! I'll wait for the next alpha and report back.
-
The fix will be in 1.20beta1 which is nearing readiness.
-
Just installed the new 1.20beta and it looks like it is fixed. I get this response.
Manual corrections required: 0.00 turn up (0.00mm) 1.04 turn down (0.52mm) 0.26 turn up (-0.13mm) 0.60 turn down (0.30mm)
Thanks!
Edit: But I still can't access the 'probed points' view under 'machine control'