SOLVED M584 won't swap X/Y motor axes
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.
; 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
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.
Update your firmware to 3.1.1 too to avoid getting bitten by bugs.