Creality CR10S - Dual Z homing, one stepper gets out of sync.



  • Hello All,

    I know this is a returning topic but i read all relevant posts and guides.
    I converted a Creality CR10S to work with a Duet Ethernet board.
    So far the wiring was the easy part, i am having a difficult time configuring the scripts.
    For the moment i want to make it work using the factory steppers.
    I hope this can help out fellow CR10 owners.

    What has been done:

    Machine is mechanicaly tuned, I already got very good prints with the factory controller.
    Duet firmware upgraded to 1.20.
    One Z stepper is connected to E1 output and configured that way.
    Declared virtual drive
    Second micro switch installed on right Z axis.

    I just want manual bed leveling to work.

    The strange thing is that when homing X and Y, the Z axis is moving fine.
    When i home Z however it get's out of sync.
    I tried the solutions found in other posts concering this topic.
    I supppose there is still something missing in a config file.
    So far my driver values are set conservative for troubleshooting purposes.
    I have a Bl Touch which still has to be wired in and configured, Z probe is commented out.
    Here under i include config.g, homeall.g and homez.g and bed.g
    Any advice would be greatly appreciated.

    ; Configuration file for Duet Ethernet (firmware version 1.20 or newer)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool on Thu Jul 19 2018 15:50:07 GMT+0200 (Central European Summer Time)

    ; General preferences
    G21 ; Work in millimetres
    G90 ; Send absolute coordinates
    M83 ; ...but relative extruder moves
    M208 X0 Y0 Z0 S1 ; Set axis minima
    M208 X300 Y300 Z400 S0 ; Set axis maxima
    M555 P2 ; Set firmware compatibility to look like Marlin

    ; Network
    M550 PMy printer ; Set machine name
    M551 P******** ; Set password
    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 S0 ; Drive 0-X goes backwards
    M569 P1 S0 ; Drive 1-Y goes backwards
    M569 P2 S1 ; Drive 2-Z Left goes forwards
    M569 P3 S0 ; Drive 3-extruder goes backwards
    M569 P4 S1 ; Drive 4-Z Right goes forwards
    M584 X0 Y1 Z2:4 U3 P4 ; Use Extruder driver as Z axis
    M350 X16 Y16 Z16:16 U16 E16:16 I1 ; Configure microstepping with interpolation
    M92 X80 Y80 Z400:400 U400 E95:400 ; Set steps per mm
    M566 X900 Y900 Z12:12 U12 E300:18 ; Set maximum instantaneous speed changes (mm/min)
    M203 X6000 Y6000 Z180:180 U180 E1200:180 ; Set maximum speeds (mm/min)
    M201 X500 Y20 Z50:50 U50 E250:250 ; Set accelerations (mm/s^2)
    M906 X700 Y700 Z700:700 U700 E700:700 I30 ; Set motor currents (mA) and motor idle factor in per cent
    M84 S30 ; Set idle timeout

    ; Axis Limits
    M208 X0 Y0 Z0 S1 ; Set axis minima
    M208 X300 Y300 Z400 S0 ; Set axis maxima

    ; Endstops
    M574 X2 Y1 Z2 U2 S1 ; Define active high microswitches

    ; M558 P1 X0 Y0 Z0 H5 F120 T6000 ; Set Z probe type to unmodulated, the axes for which
    ; it is used and the probe + travel speeds
    ; G31 P600 X0 Y0 Z2.5 ; Set Z probe trigger value, offset and trigger height
    ; M557 X15:215 Y15:195 S20 ; Define mesh grid

    ; Z-Probe
    M558 P0 H5 F120 T6000 ; Disable Z probe but set dive height, probe speed and travel speed
    M557 X35:265 Y35:265 S20 ; Define mesh grid

    ; Heaters
    M305 P0 T100000 B4138 C0 R4700 ; Set thermistor + ADC parameters for heater 0
    M143 H0 S120 ; Set temperature limit for heater 0 to 120C
    M305 P1 T100000 B4138 C0 R4700 ; Set thermistor + ADC parameters for heater 1
    M143 H1 S280 ; Set temperature limit for heater 1 to 280C

    ; Fans
    M106 P0 S0.3 I0 F500 H-1 ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off
    M106 P1 S1 I0 F500 H1 T45 ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on
    M106 P2 S1 I0 F500 H1 T45 ; Set fan 2 value, PWM signal inversion and frequency. Thermostatic control is turned on

    ; Tools
    M563 P0 D0 H1 ; 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

    ; Automatic power saving
    M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; Set voltage thresholds and actions to run on power loss

    ; Custom settings are not configured

    ; homeall.g
    ; called to home all axes
    ;
    ; generated by RepRapFirmware Configuration Tool on Thu Jul 19 2018 15:50:07 GMT+0200 (Central European Summer Time)

    G91 ; Relative mode
    M584 Z2 ; Split Z into 2 (Z+U)
    G1 Z250 U250 F2000 S1 ; Move up to 250mm in the +Z direction. S1 to stop if endstop is triggered
    G1 Z-2 U-2 F600 S2 ; Move 2mm in the -Z direction - (I'm not sure what S2 is for?)
    G1 Z3 U3 F100 S1 ; Move slowly 3mm in the +Z direction, stopping at the homing switch
    M584 Z2:4 ; Join U to Z again (pay attention to drive numbers used)
    G1 Z-5 F3000 ; Move back again 5mm in the -Z direction
    G90 ; Back to absolute mode

    ;G91 ; relative positioning
    ;G1 Z5 F6000 S2 ; lift Z relative to current position
    ;G1 S1 X-305 Y-305 F1800 ; move quickly to X and Y axis endstops and stop there (first pass)
    ;G1 X5 Y5 F6000 ; go back a few mm
    ;G1 S1 X-305 Y-305 F360 ; move slowly to X and Y axis endstops once more (second pass)
    ;G90 ; absolute positioning
    ;G1 X35 Y35 F6000 ; go to first bed probe point and home Z
    ;G30 ; home Z by probing the bed
    ;G1 Z5 F100 S2 ; uncomment this line to lift the nozzle after homing

    ; homez.g
    ; called to home the Z axis
    ;
    ; generated by RepRapFirmware Configuration Tool on Thu Jul 19 2018 15:50:07 GMT+0200 (Central European Summer Time)

    G91 ; Relative mode
    M584 Z2 ; Split Z into 2 (Z+U)
    G1 Z250 U250 F2000 S1 ; Move up to 250mm in the +Z direction. S1 to stop if endstop is triggered
    G1 Z-2 U-2 F600 S2 ; Move 2mm in the -Z direction - (I'm not sure what S2 is for?)
    G1 Z3 U3 F100 S1 ; Move slowly 3mm in the +Z direction, stopping at the homing switch
    M584 Z2:4 ; Join U to Z again (pay attention to drive numbers used)
    G1 Z-5 F3000 ; Move back again 5mm in the -Z direction
    G90 ; Back to absolute mode

    ;G91 ; relative positioning
    ;G1 Z5 F6000 S2 ; lift Z relative to current position
    ;G90 ; absolute positioning
    ;G1 X35 Y35 F6000 ; go to first probe point
    ;G30 ; home Z by probing the bed

    ; Uncomment the following lines to lift Z after probing
    ;G91 ; relative positioning
    ;G1 Z5 F100 S2 ; lift Z relative to current position
    ;G90 ; absolute positioning

    ; bed.g
    ; called to perform automatic bed compensation via G32
    ;
    ; generated by RepRapFirmware Configuration Tool on Thu Jul 19 2018 15:50:07 GMT+0200 (Central European Summer Time)
    M561 ; clear any bed transform
    G28 ; home all axes
    ; Probe the bed at 5 points
    G30 P0 X35 Y35 H0 Z-99999
    G30 P1 X35 Y265 H0 Z-99999
    G30 P2 X265 Y265 H0 Z-99999
    G30 P3 X265 Y35 H0 Z-99999
    G30 P4 X150 Y150 H0 Z-99999 S



  • Take this with a grain of salt, as I've never personally done that exact configuration. I believe the following may help. If M584 does not contain an "E" (for extruder), it defaults to something like this:
    Driver assignments: X0 Y1 Z2 E3:4:5:6:7:8:9:10:11, 3 axes visible

    The documentation here states that assigning a driver does NOT un-assign it from being an extruder. This is "hard to see" if that extruder assignment occurred by default, like above.

    Therefore, I believe you need to add an "E" to your M584. Exactly what that "E" states depends a little on how you plugged in your cables.

    Also, you are creating a new axis, U. I believe you do NOT want a new axis, you just want two motors on Z. See below.

    Your original M584:
    M584 X0 Y1 Z2:4 U3 P4 ; Use Extruder driver as Z axis

    Suggested M584, assuming:
    *Main Z motor plugged into Z
    *Extra Z Motor plugged into E0
    *Extruder Motor plugged into E1
    M584 X0 Y1 Z2:3 E4 P3 ; Use Extruder 0 driver as Z axis second motor

    (Also note the P3. there should only be 3 axis visible in web control, X, Y, Z.)

    An alternative setup:
    *Main Z motor plugged into Z
    *Extra Z Motor plugged into E1
    *Extruder Motor plugged into E0
    M584 X0 Y1 Z2:4 E3 P3 ; Use Extruder 0 driver as Z axis second motor

    .

    That alone may fix it... but I see another thing that I question. You have:
    M574 X2 Y1 Z2 U2 S1 ; Define active high microswitches

    After the above changes, it makes sense to remove the U2.
    M574 X2 Y1 Z2 S1 ; Define active high microswitches



  • And, separately from above, the Marlin configuration for a Creality CR10S printer has endstops configured as:

    #define USE_XMIN_PLUG
    #define USE_YMIN_PLUG
    #define USE_ZMIN_PLUG
    

    You have M574 X2 Y1 Z2 S1 ; Define active high microswitches Which says X and Z physical switches are at max travel (2) and Y is at min (1).

    Again, I'm not totally absolutely certain, but I'd expect M574 X1 Y1 Z1 S1 ; Define active high microswitches instead... Becasue the physical switches are all at minimum (1). Whatever the setting, I'd certainly expect all three to be the same.

    P.S. I have a CR-10S, still on original board, upgraded to 'latest' Marlin.



  • @danal said in Creality CR10S - Dual Z homing, one stepper gets out of sync.:

    M584 X0 Y1 Z2:4 E3 P3

    Hello Dan,

    Thank you for the advice.
    I made those corrections but the problem remains the same.

    On X and Y homing Z makes a move up or down like it should but when homing Z the right steppper does not move at all.

    I set the P4 instead of P3 to be able to see if the parameters of the stepppers match.

    I am at the point of just soldering Z wires together and use one driver instead but i will wait on further instructions first.

    Best Regards,

    JC



  • Found the problem 😉

    M584 Z2 ; Split Z into 2 (Z+U)

    Uncommented this in homez.g

    The extruder parameter missing and microswitch type was also not right, thanks Dan!

    Well it certainly won't be my last post for sure 😉

    Regards,

    JC



  • @xenotype said in Creality CR10S - Dual Z homing, one stepper gets out of sync.:

    I am at the point of just soldering Z wires together and use one driver instead but i will wait on further instructions first.

    If you ever do decide to do it that way, there are already two plugs on the motherboard. The second one is populated with jumpers. Remove them, plug in another motor, and you have two motors in series on the one Z driver.

    And... great that you got your desired config going!


Locked
 

Looks like your connection to Duet3D was lost, please wait while we try to reconnect.