Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login

    3.4.0 release notes gotcha - meta expressions

    Scheduled Pinned Locked Moved Solved
    Beta Firmware
    2
    3
    157
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • achrnundefined
      achrn
      last edited by

      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).

      Diamondbackundefined 1 Reply Last reply Reply Quote 0
      • achrnundefined achrn has marked this topic as solved
      • Diamondbackundefined
        Diamondback @achrn
        last edited by

        @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}.
        

        https://github.com/Duet3D/RepRapFirmware/wiki/Changelog-RRF-3.x-RC#:~:text=Where a GCode,e1%2C400%2Cvar.e3}.

        achrnundefined 1 Reply Last reply Reply Quote 0
        • achrnundefined
          achrn @Diamondback
          last edited by

          @diamondback Yes I was, thank you. In that case I missed it two places! Sorry.

          1 Reply Last reply Reply Quote 0
          • First post
            Last post
          Unless otherwise noted, all forum content is licensed under CC-BY-SA