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

    Core XY movement issues

    Scheduled Pinned Locked Moved
    Duet Hardware and wiring
    10
    103
    14.2k
    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.
    • deckingmanundefined
      deckingman @JoergS5
      last edited by

      @joergs5 As @mrehorstdmd said. If the tensions aren't equal then the axes may not be at right angles and the printed parts might no be square. But commanding 100mm of X movement should not make the Y carriage move.

      Ian
      https://somei3deas.wordpress.com/
      https://www.youtube.com/@deckingman

      JoergS5undefined 1 Reply Last reply Reply Quote 0
      • JoergS5undefined
        JoergS5 @deckingman
        last edited by JoergS5

        @deckingman Thanks Ian. To balance tension, I will try a seesaw, e.g. between the motors.
        (after balancing I will fix it)

        1 Reply Last reply Reply Quote 0
        • FxxTooundefined
          FxxToo @OBELIKS
          last edited by

          @obeliks
          In all honesty, I started out with the config.g file from the configurator. In the beginning I wasn't keeping notes, on changes, problems, etc. I didn't notice the issue right away. I discovered it while getting the homing worked out.
          So I could have put the M350 before the M92 statement when I started playing with micro stepping. So I would have to go back and use the configurator to find out if that is true or not.
          RJ

          1 Reply Last reply Reply Quote 0
          • FxxTooundefined
            FxxToo @JoergS5
            last edited by

            @joergs5 Thanks! If it can help someone else to Not do what I did ans save some frustration..Perfect! rj

            1 Reply Last reply Reply Quote 0
            • FxxTooundefined
              FxxToo
              last edited by

              @ everyone
              I just found a post that might clarify this subject!! Hope this helps clear it up
              Quoted from dc42
              Which way round do you have the M350 and M92 commands in config.g?

              If you have the M92 command before the M350 command, you need to set the steps/mm as they would be for x16 microstepping. When the M350 command is processed, the steps/mm will automatically be adjusted for the new microstepping.

              If you have the M92 command after the M350 command, then the values need to be correct for the microstepping you declare in M350.
              link to it
              https://forum.duet3d.com/topic/2396/calibration/7

              JoergS5undefined 1 Reply Last reply Reply Quote 0
              • JoergS5undefined
                JoergS5 @FxxToo
                last edited by

                @fxxtoo I don't understand why order is a problem, because 0 movement of the second stepper is 0, no matter how the microstepping setting is, whether correct or not.

                I looked into the source, there are many variables like if it's a smart driver, if there is an additional extruder (bugfix), or whether one motor is stalled (homing).

                deckingmanundefined FxxTooundefined 2 Replies Last reply Reply Quote 0
                • deckingmanundefined
                  deckingman @JoergS5
                  last edited by

                  @joergs5 said in Core XY movement issues:

                  @fxxtoo I don't understand why order is a problem, because 0 movement of the second stepper is 0, no matter how the microstepping setting is, whether correct or not.
                  .................

                  Exactly! That's why I said something is seriously amiss. The "fix" doesn't make sense (even though it appears to have cured the OP's problem).

                  Ian
                  https://somei3deas.wordpress.com/
                  https://www.youtube.com/@deckingman

                  FxxTooundefined 1 Reply Last reply Reply Quote 0
                  • FxxTooundefined
                    FxxToo @JoergS5
                    last edited by

                    @joergs5
                    II haven't looked at the source code, so can't comment on that. I think that the M350 uses the info from the M92 statement as the start of the calcs for the micro stepping. If a M92 comes after the M350 it might not clear something or miss something that the m350 set. Might be a question for dc42 or Tony. -RJ

                    1 Reply Last reply Reply Quote 0
                    • FxxTooundefined
                      FxxToo @deckingman
                      last edited by

                      @deckingman
                      Maybe dc42 or Tony can explain this. I just know that my issue went away when I put the M92 for the proper setting for x16 microstepping and then set microstepping with M350, as per the post I read from dc42. Still have a lot to learn about this. -rj

                      JoergS5undefined 1 Reply Last reply Reply Quote 0
                      • JoergS5undefined
                        JoergS5 @FxxToo
                        last edited by

                        @fxxtoo maybe your problem reappears when you change to 1/64 stepping, because this was your original setting.

                        1 Reply Last reply Reply Quote 0
                        • Phaedruxundefined
                          Phaedrux Moderator
                          last edited by

                          Yes I would be interested to see if you can now recreate the problem to verify the fix.

                          Z-Bot CoreXY Build | Thingiverse Profile

                          FxxTooundefined 1 Reply Last reply Reply Quote 0
                          • FxxTooundefined
                            FxxToo @Phaedrux
                            last edited by

                            @phaedrux , @joergs5
                            I just tried this in my config.g
                            M92 X80 Y80 Z80 E420 ; Set steps per mm x80 y80 z175 z80 z85
                            M350 x64 y64 Z128 ; Configure microstepping with interpolation
                            ;M92 Y320 Y320 Z1400 E420 ;mod to test 64 micro stepping This resulted in the normal movement.
                            changed to this:
                            ;M92 X80 Y80 Z80 E420 ; Set steps per mm x80 y80 z175 z80 z85
                            M350 x64 y64 Z128 ; Configure microstepping with interpolation
                            M92 Y320 Y320 Z1400 E420 ;mod to test this resulted in movement on the Y while doing a G1 x100
                            So the answer is , Yes I can duplicate it.
                            Other than my reply earlier, I have no clue why this is happening. I just know that I can move forward now..
                            RJ

                            JoergS5undefined 1 Reply Last reply Reply Quote 1
                            • JoergS5undefined
                              JoergS5 @FxxToo
                              last edited by JoergS5

                              @fxxtoo you mean, when you use 1/64, the fix does not work?
                              work?

                              FxxTooundefined 1 Reply Last reply Reply Quote 0
                              • FxxTooundefined
                                FxxToo @JoergS5
                                last edited by

                                @joergs5 I am not sure what you are asking me.
                                the first example puts the step rate at 1/16 M92 X80 Y80 followed by the M350 changing the step rate to 1/64 (letting the firmware adjust the steps per mm). This works correctly.
                                The second example puts the step rate at 1/64 (M350 X64 Y64) followed by the M92 command, which gives the same thing, but spells out the steps per mm. This does not work correctly. Maybe doing it this way causes the firmware to miss a variable or miscalculate the steps due to the order it gets the settings. I am thinking of posting this question to dc42. He might have some knowledge why this happens.
                                rj

                                JoergS5undefined deckingmanundefined 2 Replies Last reply Reply Quote 0
                                • JoergS5undefined
                                  JoergS5 @FxxToo
                                  last edited by JoergS5

                                  @fxxtoo thank you for explanation, this was the information I wanted.

                                  So the configuration tool and the two documentations are wrong in this respect. It should be wrong for cartesian printers also.

                                  deckingmanundefined 1 Reply Last reply Reply Quote 0
                                  • deckingmanundefined
                                    deckingman @FxxToo
                                    last edited by

                                    @fxxtoo said in Core XY movement issues:

                                    @joergs5 I am not sure what you are asking me.
                                    the first example puts the step rate at 1/16 M92 X80 Y80 followed by the M350 changing the step rate to 1/64 (letting the firmware adjust the steps per mm). This works correctly.
                                    The second example puts the step rate at 1/64 (M350 X64 Y64) followed by the M92 command, which gives the same thing, but spells out the steps per mm. This does not work correctly. Maybe doing it this way causes the firmware to miss a variable or miscalculate the steps due to the order it gets the settings. I am thinking of posting this question to dc42. He might have some knowledge why this happens.
                                    rj

                                    That's what's puzzling us all because it works fine for me (and everyone else). The configuration tool is correct and the documentation is correct. If it wasn't there would hundreds if not thousands (depending on how many boards have been sold) of disgruntled users and complaints.

                                    Ian
                                    https://somei3deas.wordpress.com/
                                    https://www.youtube.com/@deckingman

                                    JoergS5undefined 1 Reply Last reply Reply Quote 0
                                    • deckingmanundefined
                                      deckingman @JoergS5
                                      last edited by

                                      @joergs5 said in Core XY movement issues:

                                      @fxxtoo thank you for explanation, this was the information I wanted.

                                      So the configuration tool and the two documentations are wrong in this respect. It should be wrong for cartesian printers also.

                                      No. The configuration tool is correct and so is the documentation.

                                      Ian
                                      https://somei3deas.wordpress.com/
                                      https://www.youtube.com/@deckingman

                                      1 Reply Last reply Reply Quote 0
                                      • JoergS5undefined
                                        JoergS5 @deckingman
                                        last edited by JoergS5

                                        @deckingman

                                        just my 2ct:
                                        maybe only an effect in Corexy, because only there in CoreXYKinematics.cpp is a CartesianToMotorSteps and MotorStepsToCartesian where rounding errors could occur between int motorPos and the other floats. If you calculate with first, then second function, result will not be 0 as should be with inverted functions.

                                        Thesis: In Move.cpp those functions are called for every segment, so more microsteps will sum up rounding errors faster.

                                        deckingmanundefined 1 Reply Last reply Reply Quote 0
                                        • deckingmanundefined
                                          deckingman @JoergS5
                                          last edited by

                                          @joergs5 Well OK but as I said in an earlier post, just for the hell of it, I tried configuring my CoreXY both ways and can't replicate the OPs problem.

                                          Ian
                                          https://somei3deas.wordpress.com/
                                          https://www.youtube.com/@deckingman

                                          FxxTooundefined JoergS5undefined 2 Replies Last reply Reply Quote 0
                                          • FxxTooundefined
                                            FxxToo @deckingman
                                            last edited by

                                            @deckingman
                                            So your tried this and couldn't replicate the movement? Here is my modded config file, with some notes. Maybe I have messed something else up as well..and just waiting to bite me.
                                            ; General preferences
                                            M111 S0 ;DEBUGGING OFF
                                            G90 ; Send absolute coordinates...
                                            M83 ; ...but relative extruder moves
                                            M555 P2 ; Set firmware compatibility to look like MARLIN
                                            M667 S1 ; Select CoreXY mode

                                            ; Network
                                            M550 PRJPRINT ; Set machine name
                                            ;M552 S1 ; Enable network
                                            M552 S1 P192.168.1.99 ;SET IP ADDRESS
                                            M553 P255.255.255.0 ;SET SUBNET MASK
                                            M586 P0 S1 ; Enable HTTP
                                            M586 P1 S0 ; Disable FTP
                                            M586 P2 S0 ; Disable Telnet

                                            ; Axis Limits
                                            M208 X325 Y415 Z0 S0 ; Set axis maxima
                                            M208 X0 Y0 Z-600 S1 ; Set axis minima

                                            ; Drives M569: Set motor driver direction, enable polarity and step pulse timing Parameters
                                            ;M584 X1 Y0 ; test for Ian Swapping the A & B connectors test
                                            M569 P0 S1 ; Drive 0 goes FORWARDS Rnnn Driver enable polarity: 0 = active low, 1 = active high (default 0)
                                            M569 P1 S1 ; Drive 1 goes forwards
                                            M569 P2 S0 ; Drive 2 goes forwards
                                            ; If I put the M350 command here and comment out the existing M350 (2 lines down)
                                            M92 X80 Y80 Z80 E420 ; Set steps per mm @ 1/16 step rate
                                            M350 x128 y128 Z128 ; Configure microstepping with interpolation
                                            ;M92 Y320 Y320 Z1400 E420 ;mod to test 64 micro stepping <----this one will cause the movement on Y while moving x
                                            ;M92 X320 Y319 z1400 E420 ; to test to see if it corrects the speed <----This one stops the Y movement while moving x
                                            M566 X600 Y600 Z100 E120 ; Set maximum instantaneous speed changes (mm/min)
                                            M203 X6000 Y6000 Z4000 E1200 ; Set maximum speeds (mm/min) CHANGED FROM 6000 TO 600 Z NO CHG
                                            M201 X500 Y500 Z250 E250 ; Set accelerations (mm/s^2)
                                            M906 X1500 Y1500 Z1500 E800 I40 ; Set motor currents (mA) and motor idle factor in per cent
                                            M84 S30 ; Set idle timeout

                                            ; Endstops
                                            M574 Z1 S0 ; Set active low endstops
                                            M574 X1 Y1 Z2 S0
                                            ;M574 X1 Y1 S3 ; Set endstops controlled by motor load detection

                                            ; Z-Probe
                                            ;M558 P0 H5 F120 T6000 ; Set Z probe type to switch and the dive height + speeds
                                            ;G31 P600 X0 Y0 Z2.5 ; Set Z probe trigger value, offset and trigger height

                                            ;M557 X15:327.9 Y15:391 S20 ; Define mesh grid

                                            ; Heaters
                                            M140 H1 ; Remap heated bed to heater 1
                                            M301 H1 P-1 ; Set heater 1 to bang-bang mode
                                            M305 P0 X200 ; Configure thermocouple for heater 0
                                            M143 H0 S120 ; Set temperature limit for heater 0 to 120C
                                            M305 P1 X201 ; Configure thermocouple for heater 1
                                            M143 H1 S280 ; Set temperature limit for heater 1 to 280C

                                            ; Fans
                                            M106 P0 S1 I0 F500 H1 T45 ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned on
                                            M106 P1 S1 I0 F500 H1 T45 ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on
                                            M106 P2 S1 I0 F500 H1 T45 ; Set fan 2 value, PWM signal inversion and frequency. Thermostatic control is turned on

                                            ; Tools
                                            M563 P0 D0 H0 ; Define tool 0
                                            G10 P0 X0 Y0 Z0 ; Set tool 0 axis offsets
                                            G10 P0 R0 S0 ; Set initial tool 0 active and standby temperatures to 0C

                                            ; Automatic power saving
                                            M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; Set voltage thresholds and actions to run on power loss

                                            ; Custom settings are not configured

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