M220 and M221 codes set value to 100 without S parameter

When M220 codes are given with out S parameter the value is set to 100(%).
Could this not be done?
What we are trying to do is send M220 then get a reply of 
Recv: SpeedMultiply:110
So we can see what current speed we have.

But now it sets the speed (and flow) to 100% with those commands.


  • That breaks backward compatibility.
    What would be possible is that you extend the command e.g. with Q option for query. But we can not really use that in hosts as it would fail on older firmwares.

    Why do you need to query it? On server we set them to 100 on startup to know value and following values get tracked if changed on lcd.
  • We do not have an LCD.
    Well we have a 22"touchscreen on the machine that shows Octoprint.
    That same octorprint is shown at home and in the office. So at some point we may have changed speed or flow, but do not know what it was. So when I check from another Octoprint instance we can not tell the current settings.
    How about another command that queries both commands? Like M222
  • You mean Octoprint does not remember last set value? That should be first solution. Don't use octoprint so not that familiar with the exact behaviour. But if it has a flow/speed slider it should surely know last value to set it on correct start value.

    Adding a new M code is of course something you can do. All you need is just report the 2 values then and you could see them in console.
  • edited August 2019
    Octoprint remembers the last set value, until you refresh the page, or enter it from a different computer.
    As the settings can be changed on the lcd of the printer itself, Octoprint probably does not store the value it sent.

Sign In or Register to comment.