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.