M92/M350 Order dependency in 3.0

  • According to the wiki there should be no need for order dependency for M92 and M350. In 2.x I happened to have the M350 setting the microstepping before the M92 setting the steps/mm and it seemd to work fine. Once I upgraded to 3.0 I was seriously under extruding.
    I reversed the order of the two lines and my extrusion is back to normal.
    I believe the configuration tool places the order that doesn't work for 3.0 (at least for me).

    Any thoughts?

  • @DaveA There isn't an order dependency as such but one will be influenced by the other depending on the order that the commands are carried out. The two examples in the Wiki illustrate this. Quote

    "........Therefore you can either:

    a) Set Steps/mm correctly for the default 1/16 microstepping, then set the microstepping to the desired amount using M350:


    b) Set the microstepping using M350 and then set the correct steps/mm for that microstepping amount:"

    Having said all that, I'm a bit mystified by your OP because the interaction between M350 and M92 hasn't changed between RRF 2.x and 3.x - it has been that way for a very long time.

  • Thanks for the reply. I'm not sure what's going on then.

    If I have the following two lines in config my extrusion if fine.

    M92 X400.0 Y400.0 Z400.0 E97.60
    M350 X16 Y16 Z16 E32 I1

    If I have these lines in config I get just about one half the filament extruded:

    M350 X16 Y16 Z16 E32 I1
    M92 X400.0 Y400.0 Z400.0 E97.60

    Between these two line in config I have made no other changes. My test for this is to get the hot end up to temp and issue the following commands
    G1 F50
    G1 E100

  • Moderator

    @DaveA said in M92/M350 Order dependency in 3.0:


    This would seem to be your steps per mm for x16.

    When you set M92 first, it's assuming it's for x16 microstepping. But then you change it to X32, and the firmware recalculates for you.

    In the second example, you're setting x32 first, but haven't updated the steps per mm to reflect that.

  • Rats, I read the wiki and thinking it was expecting you would always enter steps/mm for 16x and then it would recalculate. Oh well, never mind. Thanks.

  • Moderator

    @DaveA said in M92/M350 Order dependency in 3.0:

    thinking it was expecting you would always enter steps/mm for 16x

    Well it does, but in your second example you've explicitly set the microstepping to x32. It assumes x16 until you tell it otherwise.

  • @DaveA IMO, the best thing to do the following:

    1. Use M350 to set 16X micro-stepping for all axes and extruders. Strictly speaking this step is not necessary as 16X is the default. However, I always like to explicitly assign values which might be defaults just in case something gets altered in the firmware at some future date.
    2. Use M92 to set the steps per mm at 16X
    3. Use a second M350 to change the micro stepping for any or all axes and extruders.

    Then you can merrily change micro stepping for any or all axes or extruders and the steps per mm will get re-calculated. You don't need to put the entire second M350 line in. e.g, to just change the extruder to 32X but leave everything else at 16X, simply use M350 E32. And of course, you can sent that M350 at any time - even "on the fly" during a print (although it may take a few moves before it comes into effect).

  • @deckingman Thanks for the idea. I'll do that.

Log in to reply