3.4.0 release notes gotcha - meta expressions
-
I've just been bitten by a change in treatment of multi-value parameters as expressions from 3.3.0 to 3.4.0.
Previously I had
M669 K0 Y{1/9}:1:0
and that works fine on my 3.3.0 standalone (running on STM32F4 - Mellow E3 Pro board). However, it silently fails on 3.4.0, I think I end up with a matrix that's 0.111:0:0, but no errors announced. However, the mechanism on my machine then mechanically crashes and jams on the first attempt to home the Y-axis.On 3.4.0 it needs to be
M669 K0 Y{1/9,1,0}
and that works fine.This is mentioned in the release notes at https://github.com/Duet3D/RepRapFirmware/wiki/Changelog-RRF-3.x-RC but by saying "Array expressions are now supported in GCode parameters that expect multiple values, both in standalone and SBC modes using syntax { expression, expression, ... }. For example: M92 E{var.e1,var.e2}". However, I did not pick up the significance that this removes the previous syntax.
It may be helpful to actively state that the previous syntax e.g. M92 E{var.e1}:500 no longer works and would need to be set as M92 E{var.e1,500} (i.e. that it's a change in syntax, not an additional form).
-
-
@achrn You are looking for this, right?
Where a GCode parameter accepts multiple values, you can no longer use a mixture of literals and expressions (which was previously supported in standalone mode only). However, the whole parameter can now be an array expression, in both standalone and SBC modes. For example, M92 E{var.e1}:400:{var.e3} will no longer work and must be replaced by M92 E{var.e1,400,var.e3}.
-
@diamondback Yes I was, thank you. In that case I missed it two places! Sorry.