Long Print Bed now shows M671: array too long, max length = 4
-
Hi,
Previously I had a manual bed level array that had 10 positions for the Y Axis bed leveling screws (code below is now
M671 X75:450:825 Y0:320:635:950:1265:1585:1950:2250 P0.5
And running 3.5.0-rc3 I now get an error that says that the M671 array is too long. Is there something I'm overlooking in another setting?
For some reason, I don't have a bed.g file anymore either.
Thanks,
Nate
-
@madeinta1wan See https://docs.duet3d.com/en/User_manual/Reference/Gcodes#m671-define-positions-of-z-pivot-points-or-bed-levelling-screws
Parameters
Xnn:nn:nn... List of between 2 and 4 X coordinates of the pivot points
Ynn:nn:nn... List of between 2 and 4 Y coordinates of the pivot pointsand
When this command is used to define the pivot point positions, the numbers of X and Y coordinates must both be equal to the number of drivers used for the Z axis (see the M584 command). This allows the firmware to perform bed levelling by adjusting the Z motors individually after bed probing. See the G32 command.
As far as I'm aware, the same goes for manual bed levelling screws i.e. you need X and Y positions for each of them, and the maximum is 4. If it worked before, I surprised, but clearly something has changed. If you need more than four points, ask @dc42 to implement.
Ian
-
@madeinta1wan It might help if you post a photo of your bed showing the pivot points you are trying to define. I would normally expect the number of x coordinates to match the number of Y coordinates, I'm not sure how you can define a point with both X and Y coordinates.
-
Thanks, had a look at M671 and it should've been obvious that there is a 4-point limitation.
For some reason, I thought I had it working on my long print bed before as a bed-leveling screw array versus a more modern pivot point definition. if that makes sense.
-N
-
@gloomyandy Thanks, you're right, I was trying to use M671 incorrectly I think.
It is probably easiest to just write a macro for this and use that with the bed-level screw positions I've got.
-N
-
@madeinta1wan You could use a bed mesh, and assuming that the bed levelling screws are equidistant, create a mesh where the probed points are above the levelling screws. Then run mesh bed compensation, which should show which screws need adjusting.
Ian