SOLVED Sending command to move Z moves X axis, (X commands also move X)
I have a Cartesian set up, with dual motors on the X and also dual motors on Z. Single Y, single extruder.
As the title says, every command that is sent to move the Z axis instead causes the X axis to move. Right now I can't get the Z to move at all. Commands to move X or Y do so normally.
I'll post my config below, but I'm very flabbergasted. I've triple checked that my physical connections match where my M584 command maps them to. (M584 X0.0:0.1 Y0.2 Z0.3:0.4 E0.5)
Things were working well(ish) before I switched the X motors from running off a single driver with spliced wires.
Only thing I can think of is that I am only using one end stop for the dual X motors, could that roll over and cause this sort of problem?
; Configuration file for Duet 3 (firmware version 3)
; executed by the firmware on start-up
; generated by RepRapFirmware Configuration Tool v2.1.8 on Thu Mar 05 2020 02:18:09 GMT+0000 (Greenwich Mean Time)
; General preferences
G90 ; send absolute coordinates...
M83 ; ...but relative extruder moves
M550 P"Duet 3" ; set printer name
M569 P0.0 S1 ;
M569 P0.1 S0 ;
M569 P0.2 S1 ;
M569 P0.3 S1
M569 P0.4 S1 ;
M569 P0.5 S0;
M584 X0.0:0.1 Y0.2 Z0.3:0.4 E0.5 ; set drive mapping
M671 X-80:780 Y150:150 S5;Set location of z-rods
M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation
M92 X80.00 Y80.00 Z720.00 E409.00 ; set steps per mm
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 Z800 E1100 I30 ; set motor currents (mA) and motor idle factor in per cent
M84 S30 ; Set idle timeout
; Axis Limit
M208 X0 Y0 Z0 S1 ; set axis minima
M208 X700 Y320 Z387 S0 ; set axis maxima
M950 S0 C"io7.out" ; create servo pin 0 for BLTouch
M558 P9 C"io7.in" H1 F120 T6000 ; set Z probe type to bltouch and the dive height + speeds
G31 P500 X0 Y-30 Z0.84 ; set Z probe trigger value, offset and trigger height
M557 X0:700 Y0:280 S70 ; define mesh grid
M308 S1 P"temp1" Y"thermistor" T100000 B4725 C7.060000e-8 ; 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
M143 H1 S280 ; set temperature limit for heater 1 to 280C
M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit
M950 F0 C"out7" Q500 ; create fan 0 on pin out7 and set its frequency
M106 P0 S0.7 H1 T45 ; set fan 0 value. Thermostatic control is turned on
M950 F1 C"out8" Q500 ; create fan 1 on pin out8 and set its frequency
M106 P1 S0 H-1 ; set fan 1 value. Thermostatic control is turned off
M563 P0 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
@codyc firmware version? Are you using the Duet 3 with SBC or standalone? Early RRF 3 versions needed the M584 command splitting onto separate lines where multiple motors were defined on multiple axes, eg
M584 X0.0:0.1 Y0.2 M584 Z0.3:0.4 E0.5 ; set drive mapping
So you could try that.
Ah, still on an earlier version. I'll give that a shot right now. Duet 3 with SBC.
And that made it work. Thanks for sharing your knowledge @droftarts !