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

    M584 won't swap X/Y motor axes

    Scheduled Pinned Locked Moved Solved
    General Discussion
    3
    4
    180
    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.
    • TDKundefined
      TDK
      last edited by TDK

      Duet 3 6HC board

      M115
      FIRMWARE_NAME: RepRapFirmware for Duet 3 MB6HC FIRMWARE_VERSION: 3.01-RC9 ELECTRONICS: Duet 3 MB6HC v1.01 or later FIRMWARE_DATE: 2020-04-21b1
      

      My X and Y axes are swapped. I don't want to change the wiring. It seems like this should be very doable in firmware.

      The M584 command sets motors to axes, but swapping the motor on X and Y doesn't change the result.

      The result for me is that if I want to move 10mm in the X axis, it moves in the Y axis instead.

      What am I doing wrong?

      It seems like the configuration is taking place. The gantry moved in the Y direction on both of these G0 commands.

      swap1.png

      Config below:

      ; Configuration file for Duet 3 (firmware version 3)
      ; executed by the firmware on start-up
      ;
      ; generated by RepRapFirmware Configuration Tool v3.1.4 on Wed Jul 29 2020 21:58:06 GMT-0400 (Eastern Daylight Time)
      
      ; General preferences
      G90                                          ; send absolute coordinates...
      M83                                          ; ...but relative extruder moves
      M550 P"TankXY"                               ; set printer name
      M669 K1                                      ; select CoreXY mode
      
      ; 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.0 S1                                 ; physical drive 0.0 goes forwards
      M569 P0.1 S1                                 ; physical drive 0.1 goes forwards
      M569 P0.2 S0                                 ; physical drive 0.2 goes backwards
      M569 P0.3 S0                                 ; physical drive 0.3 goes backwards
      M569 P0.4 S0                                 ; physical drive 0.4 goes backwards
      M569 P0.5 S1                                 ; physical drive 0.5 goes forwards
      
      M584 X0.0 Y0.1 Z0.2:0.3:0.4 E0.5             ; set drive mapping
      ;M584 X0.1 Y0.0 Z0.2:0.3:0.4 E0.5             ; set drive mapping
      M350 E16 Z16 I1                              ; configure microstepping without interpolation
      M350 X16 Y16 I1                              ; configure microstepping with interpolation
      M92 X80.00 Y80.00 Z1600.00 E420.00           ; set steps per mm
      M350 X256 Y256 Z256 I0
      M566 X900.00 Y900.00 Z12.00 E120.00          ; set maximum instantaneous speed changes (mm/min)
      M203 X6000.00 Y6000.00 Z180.00 E1200.00      ; set maximum speeds (mm/min)
      M201 X500.00 Y500.00 Z20.00 E250.00          ; set accelerations (mm/s^2)
      M906 X1000 Y1000 Z1000 E1000 I30             ; set motor currents (mA) and motor idle factor in per cent
      M84 S15                                      ; Set idle timeout
      
      ; Axis Limits
      M208 X-115 Y-115 Z0 S1                       ; set axis minima
      M208 X115 Y115 Z200 S0                       ; set axis maxima
      
      ; Endstops
      ;M574 X1 S3                                   ; configure sensorless endstop for low end on X
      ;M574 Y1 S3                                   ; configure sensorless endstop for low end on Y
      
      ; Z-Probe
      ;M558 P0 H5 F120 T6000                        ; disable Z probe but set dive height, probe speed and travel speed
      ;M557 X-75:75 Y-75:75 S50                     ; define mesh grid
      
      ; Heaters
      ;M308 S0 P"temp0" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin temp0
      ;M950 H0 C"out0" T0                           ; create bed heater output on out0 and map it to sensor 0
      ;M307 H0 B0 S1.00                             ; disable bang-bang mode for the bed heater and set PWM limit
      ;M140 H0                                      ; map heated bed to heater 0
      ;M143 H0 S120                                 ; set temperature limit for heater 0 to 120C
      ;M308 S1 P"temp1" Y"thermistor" T100000 B4138 ; configure sensor 1 as thermistor on pin temp1
      ;M950 H1 C"out1" T1                           ; create nozzle heater output on out1 and map it to sensor 1
      ;M307 H1 B0 S1.00                             ; disable bang-bang mode for heater  and set PWM limit
      
      ; Fans
      ;M950 F0 C"out3" Q500                         ; create fan 0 on pin out3 and set its frequency
      ;M106 P0 S0 H-1                               ; set fan 0 value. Thermostatic control is turned off
      ;M950 F1 C"out4" Q500                         ; create fan 1 on pin out4 and set its frequency
      ;M106 P1 S1 H1 T45                            ; set fan 1 value. Thermostatic control is turned on
      
      
      ; set case fans to be controlled off of MCU temperature
      M950 F2 C"!out6" Q2000
      M308 S2 Y"mcu-temp" A"MCU"
      M106 P2 T50:80 H2 S1.0
      
      ; Tools
      ;M563 P0 S"Extruder" D0 H1 F0                 ; 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
      
      ; Custom settings are not defined
      
      ; Miscellaneous
      ;M501                                         ; load saved parameters from non-volatile memory
      ;T0                                           ; select first tool
      
      
      Phaedruxundefined 1 Reply Last reply Reply Quote 0
      • TDKundefined
        TDK
        last edited by TDK

        Oh, I think I get it. I need to reverse direction of one motor.

        Yeah that solved it. The CoreXY kinematics were complicating the understanding of what was going on.

        1 Reply Last reply Reply Quote 0
        • dc42undefined
          dc42 administrators
          last edited by

          See https://duet3d.dozuki.com/Wiki/ConfiguringRepRapFirmwareCoreXYPrinter#Section_Testing_motor_movement.

          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

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

            @TDK said in M584 won't swap X/Y motor axes:

            3.01-RC9

            Update your firmware to 3.1.1 too to avoid getting bitten by bugs.

            Z-Bot CoreXY Build | Thingiverse Profile

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