SOLVED Sending command to move Z moves X axis, (X commands also move X)



  • Hi there,
    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?

    Config Below

    ; 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

    ; Drives

    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

    ; Endstops
    M574 X1 S0 P"io0.in" ; configure active-low endstop for low end on X via pin io0.in
    M574 Y1 S0 P"io1.in" ; configure active-low endstop for low end on Y via pin io1.in

    ; Z-Probe
    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

    ; Heaters

    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

    ; Fans
    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

    ; Tools
    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


  • Moderator

    @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.

    Ian



  • 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 !


Log in to reply