SOLVED M669 K7 A & F not respected? (Polar Kinematics)
I'm not sure this is related to the CAN based driver testing I've been doing on the polar bed drive system, or if its a core firmware issue.
To be honest I've never been confident that the M669 A and F parameters have been doing anything to constrain the bed on my polar printer. But due to my print speeds only recently getting to the point where its become an issue as I have the CAN driver fitted I haven't really looked into it in any depth.
These are my config and test files:-
M669 K7 A10 F1 H296.0 R25:296.0 S50 T2
I've booted my printer with the attached config.g, note F is set to 1deg/s, and yet I'm getting normal printing from my test Squair (200mm sides) which is centred on the bed centre (0,0), GCode attached.
M669 responds in the console as:
Kinematics is Polar with radius 25.0 to 296.0mm, homed radius 296.0mm, segments/sec 50, min. segment length 2.00
TBH I was surprised that M669 doesn't respond with the set A and F values as well as S and T, not sure if its relevant.
First print layer does a lap of the bed in 17s and later layers are much faster. That doesn't seem right to me, at a rotation limit of 1deg/s that should have taken 360s or 6 minutes a lap.
I did wonder if the limit is set in Radians rather than degrees but a M669 F0.1 decimal input crashes the printer.
I've attached a M122 dump post homing the printer so you can see the full status of the Duet Mini firmware etc.
I'm also running the CAN driver this is the M122 again after homing the printer, the driver is in open loop mode. This issue is seen in open loop. I haven't done any closed loop testing around this topic. As I said I'm not sure if the driver being a CAN device is relevant to this, but I've included the info for completeness.
I've also been reducing the A value and not seen the behaviour I was expecting, i.e. slower accelerations but I'm not sure how to measure it with the facilities I have to hand.
Affiliated to this, its also unclear to me how the Jerk settings affect the bed on a polar machine. I note that there isn't a jerk parameter in the M669 command, so I assume it filters down through from the X and Y values specified for cartesian moves. I do see some more violent changes in direction of the bed when there is a sharp corner equally split by an virtual circumference line on the bed.
My jerk settings are as follows M566 X600.00 Y600.00 Z50.00 E600.00 P1 so jerk on all moves should be enabled. Not sure if that's high, but if the two are merged orthogonally I guess worst case that might be a bed rotational jerk of 850 = Sqrt(600^2+600^2).
I'm not sure if the relatively violent changes in direction are merged XY Jerk related or just that the bed acceleration isn't being limited b M669 A.
Anyway hopefully this is a fairly comprehensive summary of email exchanges to date, and makes sense. I will add anything more that comes to mind later.
As always, I really appreciate the level of support and dedication from the Duet team.
@cncmodeller thanks for the report! I know this is on @dc42s list to investigate.
@cncmodeller thanks for your report. I confirm that the A and F parameters do not work properly in RRF 3.4beta. This is a new bug in RRF 3.4. I will have a fix shortly.
This is fixed in RRF 3.4.0beta6.
Thanks for the firmware update @dc42.
I've just updated my printer to 3.4.0 beta 6 and based on a very simple motion test (simple 50mm jog in cartesian Y at differing bed radii) M669 F parameter seem to be working properly when using Polar kinematics, I assume that'll translate to A too. Thanks for the speedy fix!