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

    Independent Y and Z Motors not working

    Scheduled Pinned Locked Moved
    General Discussion
    7
    23
    804
    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.
    • Jim46undefined
      Jim46
      last edited by

      M569 P5 S1                   ; physical drive 5 goes forwards
      M584 E0 X1 Y2:3 Z4:5             ; set drive mapping dual y on 2&3 + dual z on 4&5
      ;M584 E0 X1 Y3 Z5             ; new set up 050820 date
      M350 X16 Y16 Z16 I1            ; configure microstepping with interpolation
      

      On Duet3D 6HC. This results in:
      X motor on Driver 1 moves +/-
      Y 2 and 3 motors on Drivers 2 and 3 move +/-
      Z 4 and 5 motors not moving when commanded
      Yet the Y motors respond as if they were Z motors moving slowly +/-

      Tests follow:
      If M584 is set as E0 X1 Y3 Z5, then all these move +/- as commanded
      If M584 is set as E0 X1 Y2 Z4, then all these move +/- as commanded

      Some sort of motor "confusion"?

      1 Reply Last reply Reply Quote 0
      • A Former User?
        A Former User
        last edited by A Former User

        Maybe you also have to specify parameters for both drivers for the other configs like so

        ; Drives
        M569 P0 S1                   ; physical drive 0 goes forwards
        M569 P1 S1                   ; physical drive 1 goes forwards
        M569 P2 S1                   ; physical drive 2 goes forwards
        M569 P3 S1                   ; physical drive 3 goes forwards
        M569 P4 S1                   ; physical drive 4 goes forwards
        M569 P5 S1                   ; physical drive 5 goes forwards
        M584 E0 X1 Y2:3 Z4:5                  ; set drive mapping dual y on 2&3 + dual z on 4+5
        M350 X16 Y16:16 Z16:16 I1             ; configure microstepping with interpolation
        M92 X53.33 Y53.33:53.33 Z53.33:53.33  ; set steps per mm
        M566 X900 Y900:900 Z12:12             ; set maximum instantaneous speed changes (mm/min)
        M203 X6000 Y6000:6000 Z180:180        ; set maximum speeds (mm/min)
        M201 X500 Y5000:5000 Z20:20           ; set accelerations (mm/s^2)
        M906 X800 Y800:800 Z800:800 I30       ; set motor currents (mA) and motor idle factor in per cent
        M84 S30  
        

        or hopefully someone else will chime in.

        aidarundefined 1 Reply Last reply Reply Quote 0
        • Jim46undefined
          Jim46
          last edited by

          Just tried this edit to config.g and got this error set in the console.

          5/8/2020, 12:04:50 PM 	Error: M350: Driver 2 does not support x0 microstepping with interpolation
          Driver 3 does not support x0 microstepping with interpolation
          Driver 2 does not support x0 microstepping with interpolation
          Driver 3 does not support x0 microstepping with interpolation
          
          deckingmanundefined 1 Reply Last reply Reply Quote 0
          • aidarundefined
            aidar @A Former User
            last edited by

            @bearer From wiki: RepRapFirmware does not support individual motor settings where an axis has multiple motors connected to different stepper drivers. The first parameter specified will be used for all motors on the axis. You should use identical motors on any axis that has more than one motor to avoid unexpected behaviour.

            Example: If you have two motors on your Z axis, physically connected to Z and E0 stepper drivers, configured with M584 Z2:3, set M92 Z80, not M92 Z80:80

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

              @Jim46 It's most likely the position of the M584 within your config.g file. It must come earlier than any M350 or M906 commands. I'm not sure if assigning additional motors to axes works the same as if you create new axes, but to be safe I'd suggest you put the M584 before any M92, M201, M203, M208, M350, M566, M574, M667 and M669 commands.

              Failing that, suggest you post your entire config.g.

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

              1 Reply Last reply Reply Quote 0
              • Jim46undefined
                Jim46
                last edited by

                Hi All, thanks for your help. In the following config.g set up... X1 motor runs well +/- Trying to run the Y or Z motors causes the Status to show busy for a long time. Nothing else works when busy.

                ; Configuration file for Duet 3 (firmware version 3)
                ; executed by the firmware on start-up
                ;System on 05/08/20
                ; generated by RepRapFirmware Configuration Tool v2.1.8 on Mon May 04 2020 10:26:28 GMT-0600 (Mountain Daylight Time)
                 
                ; General preferences
                G90                            ; send absolute coordinates...
                M83                            ; ...but relative extruder moves
                M550 P"duet3"             ; set printer name
                 
                ; Network
                M552 P0.0.0.0 S1               ; enable network and acquire dynamic address via DHCP
                M586 P0 S1                     ; enable HTTP
                M586 P1 S0                     ; disable FTP
                M586 P2 S0                     ; disable Telnet
                 
                ; Drives
                M569 P0 S1                   ; physical drive 0 goes forwards
                M569 P1 S1                   ; physical drive 1 goes forwards
                M569 P2 S1                   ; physical drive 2 goes forwards
                M569 P3 S1                   ; physical drive 3 goes forwards
                M569 P4 S1                   ; physical drive 4 goes forwards
                M569 P5 S1                   ; physical drive 5 goes forwards
                M584 E0 X1 Y2:3 Z4:5                      ; set drive mapping dual y on 2&3 + dual z on 4+5
                M350 X16 Y16 Z16 I1                       ; configure microstepping with interpolation
                M92 X53.33 Y53.33:53.33 Z53.33:53.33 E400 ; set steps per mm
                M566 X900 Y900:900 Z12:12 E2000           ; set maximum instantaneous speed changes (mm/min)
                M203 X6000 Y6000:6000 Z180:180 E6000      ; set maximum speeds (mm/min)
                M201 X500 Y5000:5000 Z20:20 E3000         ; set accelerations (mm/s^2)
                M906 X800 Y800:800 Z800:800 I30           ; set motor currents (mA) and motor idle factor in per cent
                M84 S30                                   ; time out
                
                 
                ; Axis Limits
                M208 X0 Y0 Z0 S1               ; set axis minima
                M208 X1000 Y1000 Z1000 S0      ; set axis maxima
                 
                ; Endstops
                M574 X1 S1 P"io1.in"
                M574 Y1 S1 P"io2.in"
                M574 Z1 S1 P"io3.in"
                 
                ; Z-Probe
                M558 P0 H5 F120 T6000          ; disable Z probe but set dive height, probe speed and travel speed
                M557 X0:1000 Y0:1000 S50       ; define mesh grid
                 
                ; Heaters
                 
                ; Fans
                 
                ; Tools
                 
                ; Custom settings are not defined
                M302 P1 ; allow cold extusion (clay is cold)
                

                Hope this helps,
                Jim

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

                  @Jim46 said in Independent Y and Z Motors not working:

                  M92 X53.33 Y53.33:53.33 Z53.33:53.33 E400 ; set steps per mm M566 X900 Y900:900 Z12:12 E2000 ; set maximum instantaneous speed changes (mm/min) M203 X6000 Y6000:6000 Z180:180 E6000 ; set maximum speeds (mm/min) M201 X500 Y5000:5000 Z20:20 E3000 ; set accelerations (mm/s^2) M906 X800 Y800:800 Z800:800 I30 ; set motor currents (mA) and motor idle factor in per cent

                  You only need one value for the Y and Z motors.

                  Like this:

                  M92 X53.33 Y53.33 Z53.33 E400 ; set steps per mm                                                                                                                                                                            
                  M566 X900 Y900 Z12 E2000           ; set maximum instantaneous speed changes (mm/min)                                                                                                                                                                            
                  M203 X6000 Y6000 Z180 E6000      ; set maximum speeds (mm/min)                                                                                                                                                                            
                  M201 X500 Y5000 Z20 E3000         ; set accelerations (mm/s^2)                                                                                                                                                                            
                  M906 X800 Y800 Z800 I30           ; set motor currents (mA) and motor idle factor in per cent
                  

                  Z-Bot CoreXY Build | Thingiverse Profile

                  A Former User? 1 Reply Last reply Reply Quote 0
                  • A Former User?
                    A Former User @Phaedrux
                    last edited by

                    @Phaedrux said in Independent Y and Z Motors not working:

                    You only need one value for the Y and Z motors.

                    that was just a long shot from me, started out with just the one value which didnt't work either.

                    1 Reply Last reply Reply Quote 0
                    • Jim46undefined
                      Jim46
                      last edited by

                      ; Configuration file for Duet 3 (firmware version 3)
                      ; executed by the firmware on start-up
                      ;System on 05/10/20
                      ; generated by RepRapFirmware Configuration Tool v2.1.8 on Mon May 04 2020 10:26:28 GMT-0600 (Mountain Daylight Time)
                       
                      ; General preferences
                      G90                            ; send absolute coordinates...
                      M83                            ; ...but relative extruder moves
                      M550 P"duet3"             ; set printer name
                       
                      ; Network
                      M552 P0.0.0.0 S1               ; enable network and acquire dynamic address via DHCP
                      M586 P0 S1                     ; enable HTTP
                      M586 P1 S0                     ; disable FTP
                      M586 P2 S0                     ; disable Telnet
                       
                      ; Drives
                      M584 E0 X1 Y2:3 Z4:5                      ; set drive mapping dual y on 2&3 + dual z on 4+5
                      M569 P0 S1                   ; physical drive 0 goes forwards
                      M569 P1 S1                   ; physical drive 1 goes forwards
                      M569 P2 S1                   ; physical drive 2 goes forwards
                      M569 P3 S1                   ; physical drive 3 goes forwards
                      M569 P4 S1                   ; physical drive 4 goes forwards
                      M569 P5 S1                   ; physical drive 5 goes forwards
                      ;M584 E0 X1 Y2:3 Z4:5                      ; set drive mapping dual y on 2&3 + dual z on 4+5
                      M350 X16 Y16 Z16 I1                        ; configure microstepping with interpolation
                      M92 X53.33 Y53.33 Z53.33 E400              ; set steps per mm
                      ;M92 X53.33 Y53.33:53.33 Z53.33:53.33 E400 ; set steps per mm
                      M566 X900 Y900 Z12 E2000                   ; set maximum instantaneous speed changes (mm/min)
                      M203 X6000 Y6000 Z180 E6000                ; set maximum speeds (mm/min)
                      M201 X500 Y5000 Z20 E3000                  ; set accelerations (mm/s^2)
                      M906 X800 Y800 Z800 I30                    ; set motor currents (mA) and motor idle factor in per cent
                      M84 S30                                    ; time out
                      
                       
                      ; Axis Limits
                      M208 X0 Y0 Z0 S1               ; set axis minima
                      M208 X1000 Y1000 Z1000 S0      ; set axis maxima
                       
                      ; Endstops
                      M574 X1 S1 P"io1.in"
                      M574 Y1 S1 P"io2.in"
                      M574 Z1 S1 P"io3.in"
                       
                      ; Z-Probe
                      M558 P0 H5 F120 T6000          ; disable Z probe but set dive height, probe speed and travel speed
                      M557 X0:1000 Y0:1000 S50       ; define mesh grid
                       
                      ; Heaters
                       
                      ; Fans
                       
                      ; Tools
                       
                      ; Custom settings are not defined
                      M302 P1 ; allow cold extusion (clay is cold)
                      

                      Hi Phaedrux,
                      I made the changes you recommended and it improved the results,
                      X motor moved +/- well
                      Y motors moved +/- well
                      Z motors when commanded did not move; however the Y motors moved slowly.
                      Clearly not right, yet I can't see anything that causes this.
                      Ideas?

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

                        @Jim46 said in Independent Y and Z Motors not working:

                        M350 X16 Y16 Z16 I1 ; configure microstepping with interpolation

                        You're missing E16 here.

                        @Jim46 said in Independent Y and Z Motors not working:

                        M906 X800 Y800 Z800 I30 ; set motor currents (mA) and motor idle factor in per cent

                        You're also missing the motor current for E here.

                        For your motor currents, target 60-85% of the motors rated value to ensure smooth clean motion. Are your Z motors different than the other motors? Do they require more current?

                        How do you have the Z motors connected?

                        If you connect the Z motors to other drivers, do the motors work then?

                        If you connect the X and Y motor to the Z drivers, do they move then?

                        Z-Bot CoreXY Build | Thingiverse Profile

                        1 Reply Last reply Reply Quote 0
                        • Jim46undefined
                          Jim46
                          last edited by

                          Hi Phaedrux,
                          I made the M350 change, it now reads:
                          M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation

                          I'm running NEMA23 motors from OpenBuilds on all axes. They have, I think, a Rated Current DC 3.0A/Phase.
                          https://openbuildspartstore.com/nema-23-stepper-motor-high-torque-series/
                          Presently, on the Duet3D 1.0 board (connected to RPi4 using the Duet microSD card), the:
                          X motor is on Driver 1
                          Y motor 1 is on Driver 2
                          Y motor 2 is on Driver 3
                          Z motor 1 is on Driver 4
                          Z motor 2 is on Driver 5

                          In the single motor mode, I was successful moving all motors +/- using
                          M584 E0 X1 Y2 Z4 as you see no Drive 3 and 5
                          Then, I used this
                          M584 E0 X1 Y3 Z5 as you see no Drive 2 and 4

                          Yet when trying dual mapping

                          M584 E0 X1 Y2:3 Z4:5 ; set drive mapping dual y on 2&3 + dual z on 4+5

                          This is when the problem occurs of Y moving slowly when Z commands are sent.

                          I switched the Y (was on Drives 2 & 3) and Z motors ( was on Drivers 4 &5) are now Y motors connected to Drivers 4 & 5, and Z motors connected to Drivers 2 & 3. The motors connected to Drivers 2 & 3 run +/- smoothly when a Y command is given. They also move +/- slowly when a Z command it given. The motors on Drivers 4 & 5 are not working when in dual mode. Yet, they work in single motor mode.
                          Any more ideas? (is there something wrong with the board?)
                          Jim

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

                            @Jim46 said in Independent Y and Z Motors not working:

                            M906 X800 Y800 Z800 I30

                            For those motors try increasing your motor currents a bit for testing.

                            M906 X1600 Y1600 Z1600 E1600 I30 Which is 60% of their rated max. For normal operation you may want to increase that even further.

                            I'm still a little confused on what there would be movement of the Z axis when you're commanding movement of the Y axis.

                            Just to confirm, the motors are on the test bench and not actually installed in a printer kinematic yet, correct?

                            How are you commanding movement of the motors?
                            Are you running any homing macros yet?

                            Can you send M584 in the console by itself and report back with what it says?

                            Your M584 looks correct and it is early enough in your config.g The only thing that maybe sticks out to me is that the E letter assignment is first, when it would typically be last. So maybe try modifying it to be M584 X1 Y2:3 Z4:5 E0

                            Can you also send M122 and report back with that as well?

                            Z-Bot CoreXY Build | Thingiverse Profile

                            1 Reply Last reply Reply Quote 0
                            • Jim46undefined
                              Jim46
                              last edited by

                              Hello Phaedrux,
                              Thanks for your suggestions.
                              I updated the M906 and M584 as suggested.
                              To clarify; I make commands from the Machine Movement table in the Dashboard.
                              When I command the X motor on Driver 1 I get nice +/- movement.
                              When I command, say the +50 on Y, the dual Y motors on Drivers 2 & 3 gives nice +/- movement.
                              When I command, say the +25 on Z, the dual Z motors on Drivers 4 & 5 DOES NOT move the Z motors. However, the Y motors DO move as if they think they are the Z motors, that is, they move slowly. Again no Z motor movement in the dual motor mode.
                              Yes, this is a bench set up where I am trying to determine if the motors move correctly when given a command.
                              No Homing Macros yet. I don't know how to set those up so far.
                              When I run M122 on the DashBoard, it gives a warning that the "response takes too long" and say see the Console. I open the Console and don't find an M122 event. Therefore, no information.
                              I updated the RRF Config tool and added the changes recommended.
                              Here it is,

                              ; Configuration file for Duet 3 (firmware version 3)
                              ; executed by the firmware on start-up
                              ;
                              ; generated by RepRapFirmware Configuration Tool v2.1.8 on Mon May 11 2020 13:56:00 GMT-0600 (Mountain Daylight Time)
                              
                              ; General preferences
                              G90                            ; send absolute coordinates...
                              M83                            ; ...but relative extruder moves
                              M550 P"Duet 3"                 ; set printer name
                              
                              ; Network
                              M552 P0.0.0.0 S1               ; enable network network and acquire dynamnic address via DHCP
                              M586 P0 S1                     ; enable HTTP
                              M586 P1 S0                     ; disable FTP
                              M586 P2 S0                     ; disable Telnet
                              
                              
                              
                              ; Drives
                              M584 X1 Y2:3 Z4:5 E0           ; set drive mapping, dual on Y drives 2&3 and Z drives on 4&5
                              M569 P0 S1                     ; physical drive 0 goes forwards
                              M569 P1 S1                     ; physical drive 1 goes forwards
                              M569 P2 S1                     ; physical drive 2 goes forwards
                              M569 P3 S1                     ; physicsl drive 3 goes forwards           
                              M569 P4 S1                     ; physical drive 4 goes forwards
                              M569 P5 S1                     ; physical drive 5 goes forwards
                              
                              M350 X16 Y16 Z16 E16 I1              ; configure microstepping with interpolation
                              M92 X53.33 Y53.33 Z53.33 E400        ; set steps per mm
                              M566 X900.00 Y900.00 Z12.00 E2000    ; set maximum instantaneous speed changes (mm/min)
                              M203 X6000.00 Y6000.00 Z180.00 E6000 ; set maximum speeds (mm/min)
                              M201 X500.00 Y500.00 Z20.00 E3000    ; set accelerations (mm/s^2)
                              M906 X1600 Y1600 Z1600 E1600 I30     ; set motor currents (mA) and motor idle factor in per cent
                              M84 S30                              ; Set idle timeout
                              
                              ; Axis Limits
                              M208 X0 Y0 Z0 S1               ; set axis minima
                              M208 X1000 Y1000 Z1000 S0      ; set axis maxima
                              
                              ; Endstops
                              ; WARNING: No endstops configured
                              
                              ; Z-Probe
                              M558 P0 H5 F120 T6000          ; disable Z probe but set dive height, probe speed and travel speed
                              M557 X0:1000 Y0:1000 S50       ; define mesh grid
                              
                              ; Heaters
                              
                              ; Fans
                              
                              ; Tools
                              
                              ; Custom settings are not defined
                              M302 P1                        ; allow cold extrusion (clay is cold)
                              
                              

                              Thanks again, Jim

                              1 Reply Last reply Reply Quote 0
                              • Jim46undefined
                                Jim46
                                last edited by

                                Hi Phaedrux,
                                I forgot to report m the M584 command, I just did it and here are the result in the Console. The field is blue and the text reads:
                                5/12/2020, 11:59:17 AM M584
                                Driver assignments: X0.1 Y0.2:0.3 Z0.2:0.3 E0.0, 3 axes visible.
                                That looks a little strange to me. Would it be X0.1 Y0.2:0.3 Z0.4:0.5 E0.0 ??? If this is so, how do you edit that?
                                Also Side question. Can I use 53.3333 on Line 29 M92 Steps per mm?
                                Thank you so much,
                                Jim

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

                                  Alright, that confirms my suspicion. At least that explains why Y is moving. I think we need to modify how your M584 is written. The way you have it currently works in RRF2, but in RRF3 we need to specify the board location of the drivers so that it knows if it's on the main board or on a tool board, etc.

                                  Try this

                                  M584 X0.1 Y0.2:0.3 Z0.4:0.5 E0.0
                                  

                                  The leading 0 identifies the main board. The number after the period is the driver number on that board.

                                  https://duet3d.dozuki.com/Wiki/Gcode#Section_M584_Set_drive_mapping

                                  In RRF_3, M584 works the same way as in RRF_2, with exception that on Duet 3 the driver on expansion boards are assigned with <board address>.<driver number>. Example:
                                  M584 X0 Y1 Z2 E3:4:1.0:1.1
                                  The "0" index for the main board is implicit, this is equivalent to the previous example:
                                  
                                  M584 X0.0 Y0.1 Z0.2 E0.3:0.4:1.0:1.1
                                  

                                  I should have clued into that sooner.

                                  @Jim46 said in Independent Y and Z Motors not working:

                                  Also Side question. Can I use 53.3333 on Line 29 M92 Steps per mm?

                                  Yes, decimal values are supported in Reprap firmware.

                                  Z-Bot CoreXY Build | Thingiverse Profile

                                  A Former User? 1 Reply Last reply Reply Quote 0
                                  • A Former User?
                                    A Former User @Phaedrux
                                    last edited by

                                    @Phaedrux said in Independent Y and Z Motors not working:

                                    The leading 0 identifies the main board. The number after the period is the driver number on that board.

                                    he had it like that initially and no drivers worked, removing the 0. resulted in some success. could be changed since RRF3.0 though.

                                    Phaedruxundefined 1 Reply Last reply Reply Quote 0
                                    • Phaedruxundefined
                                      Phaedrux Moderator @A Former User
                                      last edited by

                                      @bearer Hmmm. I also thought it was implied for the main board with no leading board identifier, but the result of M584 in the console indicates that either the M584 in config.g is either not being applied or there is another M584 hiding out somewhere else.

                                      Z-Bot CoreXY Build | Thingiverse Profile

                                      1 Reply Last reply Reply Quote 0
                                      • Jim46undefined
                                        Jim46
                                        last edited by

                                        Greetings,

                                        Up dated M584
                                        M584 X0.1 Y0.2:0.3 Z0.4:0.5 E0.0 ; set drive mapping, dual on Y drives 2&3 and Z drives on 4&5
                                        Ran M584 and came back in console with:
                                        5/12/2020, 3:18:04 PM M584
                                        Driver assignments: X0.1 Y0.2:0.3 Z0.2:0.3 E0.0, 3 axes visible.
                                        To your point, it looks like M584 is not updating the Z drives. How does one find a ghost version of M584? Or, could this be an issue in the firmware?
                                        It seems like we might be near an answer?
                                        jim

                                        deckingmanundefined droftartsundefined 2 Replies Last reply Reply Quote 0
                                        • deckingmanundefined
                                          deckingman @Jim46
                                          last edited by

                                          @Jim46 I don't see an M501 in your config.g so that rules out the possibility of it being config_overide.g. Try sending M98 P"config.g". This will run the config.g file again. Then send M584 again and report the result.

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

                                          1 Reply Last reply Reply Quote 1
                                          • droftartsundefined
                                            droftarts administrators @Jim46
                                            last edited by

                                            @Jim46 what version of RRF3 are you using? Send M115 and post reply. Earlier versions had an issue with defining more than one multiple motor axis in one M584 command. Try:

                                            M584 X1 Y2:3
                                            M584 Z4:5 E0
                                            

                                            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

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