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

Impossible to set extruder micro stepping above 16ms

Scheduled Pinned Locked Moved
Tuning and tweaking
8
39
1.7k
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.
  • undefined
    droftarts administrators @observatoer
    last edited by droftarts 28 Aug 2020, 16:25

    @observatoer right, I see where the problem is. If you set M92 and M350 in config.g, that’s the values used. Even if M350 is after M92, the M92 definition is not assumed to be at 16x microstepping. It would be strange to explicitly set something in the config.g, and for the firmware to then alter it. If you exclude M350 from config, or the E parameter, I would expect it defaults to 16x.

    Any subsequent M350 changes M92. I appreciate this is not clear in the Gcode entries for M92 and M350.

    Edit: the configuration tool puts M350 in config.g before M92. Though I think the order doesn’t matter in confi.g.

    Ian

    Bed-slinger - Mini5+ WiFi/1LC | RRP Fisher v1 - D2 WiFi | Polargraph - D2 WiFi | TronXY X5S - 6HC/Roto | CNC router - 6HC | Tractus3D T1250 - D2 Eth

    undefined 1 Reply Last reply 28 Aug 2020, 16:35 Reply Quote 0
    • undefined
      observatoer @droftarts
      last edited by observatoer 28 Aug 2020, 16:35

      @droftarts OK. I refer to https://duet3d.dozuki.com/Wiki/Gcode#Section_M350_Set_microstepping_mode

      and this description:

      When M350 is processed, the steps/mm will be adjusted automatically to allow for any changes in microstepping. 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:

      M92 X80 Y80 Z400 ; set axis steps/mm
      M92 E420:430 ; set extruder 0 and 1 steps/mm
      M350 X128 Y128 Z128 E128:128 ; set microstepping
      or

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

      M350 X128 Y128 Z128 E128:128 ; set microstepping
      M92 X640 Y640 Z3200 ; set axis steps/mm @128 microstepping
      M92 E3360:3440 ; set extruder 0 and 1 steps/mm
      Assuming that in the first example the microstepping was initially at the default x16, both the above examples result in the same steps/mm settings.

      Could you suggest me the two lines for M350 and M92 who will work?

      Edit: I have now played with every thinkable combination and variation of microsteppings. One common thing happens:

      Regardless of any previous setting (verified in the console), as soon as the print starts, the steps/mm for the extruder are reset to 822.
      All other steppers keep the right values as defined.

      PS: I got the hint regarding the adjustment of the micro stepping from dc42 posting in this forum.

      1 Reply Last reply Reply Quote 0
      • undefined
        Phaedrux Moderator
        last edited by 28 Aug 2020, 22:08

        Here's how I do it to keep it simple

        M350 X16 Y16 Z16 E16 I1; set x16 microstepping with interpolation
        M92 X80 Y80 Z400 E411 ; steps per mm set as if for x16 microstepping
        M350 E64 ; alter microstepping for E axis

        firmware now correctly calculates the new steps per mm required.

        The key is to set everything for x16 first and don't change your M92, just have it set to work with x16. Then you can modify the microstepping after and it will correctly calculate.

        Z-Bot CoreXY Build | Thingiverse Profile

        undefined undefined 2 Replies Last reply 28 Aug 2020, 23:52 Reply Quote 0
        • undefined
          fcwilt @Phaedrux
          last edited by 28 Aug 2020, 23:52

          @Phaedrux said in Impossible to set extruder micro stepping above 16ms:

          M350 X16 Y16 Z16 E16 I1; set x16 microstepping with interpolation
          M92 X80 Y80 Z400 E411 ; steps per mm set as if for x16 microstepping
          M350 E64 ; alter microstepping for E axis

          That matches the documentation with the exception that the docs say that x16 is the default so the first M350 should not be needed.

          Are the docs in need of a correction?

          Frederick

          Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

          1 Reply Last reply Reply Quote 0
          • undefined
            observatoer @Phaedrux
            last edited by 29 Aug 2020, 07:45

            @Phaedrux said in Impossible to set extruder micro stepping above 16ms:

            Here's how I do it to keep it simple

            M350 X16 Y16 Z16 E16 I1; set x16 microstepping with interpolation
            M92 X80 Y80 Z400 E411 ; steps per mm set as if for x16 microstepping
            M350 E64 ; alter microstepping for E axis

            firmware now correctly calculates the new steps per mm required.

            The key is to set everything for x16 first and don't change your M92, just have it set to work with x16. Then you can modify the microstepping after and it will correctly calculate.

            I did exactly this and the machine reported exactly these values back which is correct. BUT, as soon as I start a print job, ONLY the value for the extruder E is reset to the 16 micro stepping value!
            I checked all possible macros who could alter the setting during start, but non of them includes M350 or M92 values.

            Something is definitely not working on my machine. I have changed the stepper already but as you see, same issue. I have also made a new sd card for the PI and did the latest test with these sw. I'm hesitant to build new config files at the moment.

            Still same status: This new setting is not working properly on my machine.

            undefined 1 Reply Last reply 29 Aug 2020, 08:15 Reply Quote 0
            • undefined
              JoergS5 @observatoer
              last edited by 29 Aug 2020, 08:15

              @observatoer can you please check config-override.g and the start codes of the printed g-code file, maybe they are changing the E setting. Do the startup macros include M501 maybe?

              undefined 1 Reply Last reply 29 Aug 2020, 08:21 Reply Quote 0
              • undefined
                observatoer @JoergS5
                last edited by 29 Aug 2020, 08:21

                @JoergS5 Did this in the beginning of the test already. I cleared the content of it and omitted the loading in config.g.

                undefined 1 Reply Last reply 29 Aug 2020, 08:23 Reply Quote 0
                • undefined
                  JoergS5 @observatoer
                  last edited by JoergS5 29 Aug 2020, 08:23

                  @observatoer you seem to use IdeaMaker, is there something in the startup code which could change E?
                  https://forum.raise3d.com/viewtopic.php?t=12893
                  https://support.raise3d.com/ideaMaker/5-1-3-13-gcode-15-445.html
                  especially the "Extruder Switch GCode tab". Lot of places to change something...

                  undefined 1 Reply Last reply 29 Aug 2020, 08:29 Reply Quote 0
                  • undefined
                    observatoer @JoergS5
                    last edited by observatoer 29 Aug 2020, 08:29

                    @JoergS5 Thanks for the hint, but I have removed all the default settings in Ideamaker from the start code and call a start macro on the duet3. This is all that remains:

                    M98 P"0:/sys/print/start.g" ; call start.g

                    M290 R0 S0 ;reset babystepping
                    M290 S-0.05 ; set babystepping height delta

                    M572 D0 S0.025 ;set pressure advance

                    And nothing in the extruder level. Totally empty.

                    undefined 1 Reply Last reply 29 Aug 2020, 08:31 Reply Quote 0
                    • undefined
                      JoergS5 @observatoer
                      last edited by 29 Aug 2020, 08:31

                      @observatoer next I would check content of start.g and if babystepping or pressue advance change the E by disabling them.

                      undefined 1 Reply Last reply 29 Aug 2020, 08:36 Reply Quote 0
                      • undefined
                        observatoer @JoergS5
                        last edited by observatoer 29 Aug 2020, 08:36

                        @JoergS5 Looks OK to me.

                        G29 S1 P"heightmap.csv" ; Load the height map from file and activate bed compensation.
                        G90 ; use absolute coordinates
                        M83 ; extruder relative mode

                        M98 P"0:/sys/G828.g" ; home if not homed
                        M98 P"0:/sys/G832.g" ; if not already leveled, level bed and re-home Z

                        ; prime nozzle
                        G1 X0 Y0 F99999.0 ; Go home
                        G1 Z0.15 ; lower extruder

                        G1 X2 Y20 Z0.3 F5000.0 ; move to start-line position
                        G1 X2 Y200.0 Z0.3 F1500.0 E15 ; draw 1st line
                        G1 X2 Y200.0 Z0.4 F5000.0 ; move to side a little
                        G1 X3 Y20 Z0.4 F1500.0 E30 ; draw 2nd line
                        G92 E0.0

                        And the two calls look clean, too:

                        ; G828.g
                        ; Conditional variant of G28 home command.
                        ; Homes all axes if not already homed.
                        if !move.axes[0].homed || !move.axes[1].homed || !move.axes[2].homed
                        G28

                        ; G832.g
                        ; Conditional variant of G32 bed command.
                        ; Perform bed leveling if not already leveled.
                        if move.calibration.numFactors == 0 ; if leveling has not yet been performed...
                        G32 ; level bed
                        G28 Z ; re-home Z
                        else
                        echo "Bed already leveled. Skipping..."

                        undefined 1 Reply Last reply 29 Aug 2020, 08:48 Reply Quote 0
                        • undefined
                          JoergS5 @observatoer
                          last edited by 29 Aug 2020, 08:48

                          @observatoer then I have no more ideas at the moment. I would remove and disable or comment out all and readd step by step to find the reason. It is also possible that there is a bug somewhere, because you have a lot of settings, macros etc. To be sure it's not IdeaMaker I would try a different program and g-code file first.

                          undefined 1 Reply Last reply 29 Aug 2020, 08:51 Reply Quote 0
                          • undefined
                            observatoer @JoergS5
                            last edited by 29 Aug 2020, 08:51

                            @JoergS5 Thank you for your time and hints!

                            undefined 2 Replies Last reply 29 Aug 2020, 08:58 Reply Quote 0
                            • undefined
                              JoergS5 @observatoer
                              last edited by JoergS5 29 Aug 2020, 08:58

                              @observatoer sorry that I could not help. I think it's something trivial, a syntax error e.g., but I didn't see one.

                              Maybe M350 E16 I0 changing the E without interpolation behaves other than expected. You could try changing it to I1 as a test.

                              1 Reply Last reply Reply Quote 0
                              • undefined
                                JoergS5 @observatoer
                                last edited by JoergS5 29 Aug 2020, 09:19

                                @observatoer I have one more idea: according the information in some threads like https://forum.duet3d.com/topic/4939/m350-not-working-wrt-m584/6 the order of the drives seem to play a role in the M584 command. In you config you have E first, so this may not be seen as an extruder drive in some code for other program parts. You could try changing
                                M584 E0 X1 Y2 Z3:4:5
                                to
                                M584 X1 Y2 Z3:4:5 E0

                                undefined 1 Reply Last reply 29 Aug 2020, 09:25 Reply Quote 0
                                • undefined
                                  dc42 administrators
                                  last edited by 29 Aug 2020, 09:25

                                  If anyone thinks that M350 is not behaving as described in the wiki GCodes page, please supply files that replicate the different behaviour.

                                  Duet WiFi hardware designer and firmware engineer
                                  Please do not ask me for Duet support via PM or email, use the forum
                                  http://www.escher3d.com, https://miscsolutions.wordpress.com

                                  undefined 1 Reply Last reply 29 Aug 2020, 09:28 Reply Quote 0
                                  • undefined
                                    observatoer @JoergS5
                                    last edited by 29 Aug 2020, 09:25

                                    @JoergS5 That would make sense and I will give it a try. Stii the change will be a bag of hurt to get the order of the z drives and the related measurements for ABL right.
                                    Thank you very much for your help! I will report, how this turns out.

                                    1 Reply Last reply Reply Quote 0
                                    • undefined
                                      observatoer @dc42
                                      last edited by 29 Aug 2020, 09:28

                                      @dc42 I guess, this tread is full of all related logs and describes the issue in detail. Still I understand, it's a pain to go thru the logs.

                                      1 Reply Last reply Reply Quote 0
                                      • undefined
                                        dc42 administrators
                                        last edited by dc42 29 Aug 2020, 09:54

                                        One of the reports says that the steps/mm changes when starting a print, but I didn't see a print file posted. Also, the config files have changed, so it's hard to be sure what the current ones look like.

                                        Duet WiFi hardware designer and firmware engineer
                                        Please do not ask me for Duet support via PM or email, use the forum
                                        http://www.escher3d.com, https://miscsolutions.wordpress.com

                                        undefined 1 Reply Last reply 29 Aug 2020, 10:28 Reply Quote 0
                                        • undefined
                                          observatoer @dc42
                                          last edited by 29 Aug 2020, 10:28

                                          @dc42 Thank you, this was the right question.
                                          Ideamaker is setting the E value to 822s/mm and writes this at the beginning of the code.
                                          That was the reason, why this issue came up.

                                          Thanks again and I guess, the solution is found.

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