Q's on homing & 2nd Z axis U not responding (CR-10S Maestro)



  • So I'm trying to nail down how the U axis (2nd Z) works on my CR-10S and I'm a bit confused still.

    I have the second Z stepper configured on E1 (4th driver), and it appears on the DWC as a separate axis, but doesn't respond when I home the Z axis (X, Y, & Z home fine). I can home U manually, but it's not slaved to respond with Z.

    Also - Right now I have the microswitches setup to be the endstops, I have a BLTouch which WORKS but isn't being the endstop for Z, I want to leave the microswitches as backup (will setup as Emergency stop later) and use the BLTouch but I don't recall where I saw the G-Code to enable the BLTouch as endstop.

    HALP! 😕 Thanks in advance!!

    Here are my homing files:

    ; homeu.g
    ; called to home the U axis
    ;
    ; generated by RepRapFirmware Configuration Tool v2 on Tue Feb 19 2019 16:42:11 GMT-0500 (Eastern Standard Time)
    G91 ; relative positioning
    G1 U5 F6000 S2 ; lift U relative to current position
    G1 S1 U-325 F1800 ; move U down until the endstop is triggered
    G92 U0 ; set U position to axis minimum (you may want to adjust this)

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

    ==================================

    ; homez.g
    ; called to home the Z axis
    ;
    ; generated by RepRapFirmware Configuration Tool v2 on Tue Feb 19 2019 16:42:11 GMT-0500 (Eastern Standard Time)
    G91 ; relative positioning
    G1 Z5 F6000 S2 ; lift Z relative to current position
    G1 S1 Z-325 F1800 ; move Z down until the endstop is triggered
    G92 Z0 ; set Z position to axis minimum (you may want to adjust this)

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

    ================================

    ; homeall.g
    ; called to home all axes
    ;
    ; generated by RepRapFirmware Configuration Tool v2 on Tue Feb 19 2019 16:42:10 GMT-0500 (Eastern Standard Time)
    G91 ; relative positioning
    G1 Z5 U5 F6000 S2 ; lift Z relative to current position
    G1 S1 X-301.5 Y-309 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-301.5 Y-309 F360 ; move slowly to X and Y axis endstops once more (second pass)
    G1 S1 Z-325 F1800 ; move Z down stopping at the endstop
    G90 ; absolute positioning
    G92 Z0 U0 ; set Z to axis minimum (you may want to adjust this)

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

    ================================

    And my config.g file:

    ; Configuration file for Duet Maestro (firmware version 1.21)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool v2 on Tue Feb 19 2019 16:42:10 GMT-0500 (Eastern Standard Time)

    ; Define Axis ;
    M584 X0 Y1 Z2 E3 U4 ; With Second Z motor defined as U axis on E1 driver

    ; Define Z & U Leadscrew Position ;
    M671 X-20:320 Y150:150 S1 ; Leadscrews at left and right of X axis, centered on Y axis

    ; Emergency Stop on BLTouch Failure ; FOR FUTURE USE - NEEDS WORK!!
    ;M581 Z2 S1 T0 C0 ; Emergency Stop if Z2 or U2 triggered (Probe failure)

    ; General preferences
    G90 ; Send absolute coordinates...
    M83 ; ...but relative extruder moves

    ; Network
    M550 P"CR-10S Duet" ; Set machine name
    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 goes backwards
    M569 P1 S0 ; Drive 1 goes backwards
    M569 P2 S1 ; Drive 2 goes forwards
    M569 P3 S1 ; Drive 3 goes forwards
    M569 P4 S1 ; Drive 4 goes forwards
    M350 X16 Y16 Z16 E16 U16 I1 ; Configure microstepping with interpolation
    M92 X80.00 Y80.00 Z400.00 E410.00 U400.00 ; Set steps per mm
    M566 X900.00 Y900.00 Z12.00 E120.00 U12.00 ; Set maximum instantaneous speed changes (mm/min)
    M203 X12000.00 Y12000.00 Z600.00 E1200.00 U600.00 ; Set maximum speeds (mm/min)
    M201 X500.00 Y250.00 Z16.60 E166.00 U16.60 ; Set accelerations (mm/s^2)
    M906 X700.00 Y700.00 Z700.00 E800.00 U700.00 I30 ; Set motor currents (mA) and motor idle factor in per cent
    M84 S30 ; Set idle timeout

    ; Axis Limits
    M208 X3.5 Y-4 Z0 U0 S1 ; Set axis minima X carriage Home = 3.5 Y bed Home = -4
    M208 X300 Y300 Z320 U320 S0 ; Set axis maxima X Max 300, Y bed Max 300 Z Max 320

    ; Endstops
    M574 X1 Y1 Z1 U1 S1 ; Set active high endstops

    ; Z-Probe ; Genuine BLTouch
    M558 P9 H5 F120 T6000 ; Set Z probe type to bltouch and the dive height + speeds
    G31 P500 X44.3 Y-1.2 Z2.5 U2.5 ; Set Z probe trigger value, offset and trigger height
    M557 X18.5:250 Y11:300 S20 ; Define mesh grid

    ; Heaters
    M307 H0 B0 S1.00 ; Disable bang-bang mode for the bed heater and set PWM limit
    M305 P0 T100000 B4388 C7.060000e-8 R2200 ; Set thermistor + ADC parameters for heater 0
    M143 H0 S120 ; Set temperature limit for heater 0 to 120C
    M305 P1 T100000 B4388 C7.060000e-8 R2200 ; Set thermistor + ADC parameters for heater 1
    M143 H1 S305 ; Set temperature limit for heater 1 to 305C

    ; Fans
    M106 P0 S0.3 I0 F500 H1 T45 ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned on
    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 S"Extruder" D0 H1 ; Define tool 0
    G10 P0 X0 Y0 Z0 U0 ; Set tool 0 axis offsets
    G10 P0 R0 S0 ; Set initial tool 0 active and standby temperatures to 0C

    ; Automatic power saving ; FOR FUTURE USE - NEEDS WORK!!
    ;M913 X30 Y30 Z30 U30 ; Lower motor power to 30%
    ;M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 U3 E-5 F1000" ; Set voltage thresholds and actions to run on power loss

    ; Custom settings
    G29 S1 ; Enable automatic bed mesh compensation
    M572 D0 S0.10 ; Enable pressure-advance of 0.10 seconds


  • administrators

    See https://duet3d.dozuki.com/Guide/Independent+Z+motors+and+endstop+switches/18?lang=en. In brief, in your config.g file you need to set up driver 4 to be both a second Z motor and a U motor. Then in your homez.g file and the Z homing section of homeall.g you need to use M584 to separate the motors into Z and U and recombine them afterwards.

    We're changing this in firmware 2.03 to make it much simpler.



  • @dc42 - Thanks for the quick reply.

    So let me see if I've got this:
    I had :
    ; Define Axis ;
    M584 X0 Y1 Z2 E3 U4 ; With Second Z motor defined as U axis on E1 driver

    but needed : M584 X0 Y1 Z2 :4 E3 U4 (ignore the extra space, I was bolding)

    and M92 and the rest of the motor setups need to add :{value of U} after the extruder entry like this:
    M92 X80.00 Y80.00 Z400.00 E410.00 U400.00
    becomes M92 X80.00 Y80.00 Z400.00 E410.00 :400 U400.00 , (without the extra space) etc for rest of motor entries?

    I found the example confusing. Like this (from the example):
    M92 X320 Y320 Z1600 U1600 E92.6:92.6 ; Set steps per mm

    Why wouldn't it be
    M92 X320 Y320 Z1600 U1600 E92.6:1600 ; Set steps per mm
    to match the steps for the U axis? It's like there were two extruders in the example...

    We're changing this in firmware 2.03 to make it much simpler.

    LOL You think? {Brain smoking}



  • BUMP!
    Look, I really hate being an ass, but could SOMEONE give me a hand here? There's something I'm not getting and I've read and read and READ until I'm blue in the face and every time I ask for help all I get is told to go read some more! I've worked on this for WEEKS, trying not to be a pest on here, and figure things out myself, but I need someone to help me, please.

    I've tried to setup my config & homing files for a split Z axis but it doesn't work!
    I need someone who breathes this stuff to tell me "Hey stupid, you have to put a colon on this line!"

    Current updated situation from last post -
    I've got the Z and U motors working fine when I move the Z axis by jogging, both move smoothly and in step.

    But if I HOME the Z it runs the left motor up & down, never reaching the switch, slamming the X rail up and down only on the left! I have to actuate the endstop by hand real fast, THEN it runs the U (right side) up and down trying to kill my X rail, again I have to manually actuate the endstop.

    It RESPONDS to the endstops, but won't REACH them on it's own, stopping about 10mm high and slamming up and down.

    Meanwhile the BLTouch sits there looking stupid, never actuating.
    It responds to manual commands OK, and I even got it to map the other day, so it's physically working but I don't think it's being told to be in charge during homing.

    I apologize for being long winded but I'd rather give you all I can then dribble it out over 12 posts.

    Here are my config & homing files, threw in the probe ones for free as well:

    4_1550792395211_retractprobe.g
    3_1550792395211_homez.g
    2_1550792395210_homeall.g
    1_1550792395210_deployprobe.g
    0_1550792395210_config.g

    Someone please take pity on me and explain this to my very frazzled brain. Thanks!

    PS - Bonus points 😀 - @dc42 never answered me on the ABOVE post, so I still don't get why you put a :xxx after the extruder on all the motor values and why it is shown in the example as the same for the extruder, rather than the value needed by the new 2nd Z "U" axis motor.



  • @puterpro said in Q's on homing & 2nd Z axis U not responding (CR-10S Maestro):

    and M92 and the rest of the motor setups need to add :{value of U} after the extruder entry like this:
    M92 X80.00 Y80.00 Z400.00 E410.00 U400.00
    becomes M92 X80.00 Y80.00 Z400.00 E410.00 :400 U400.00 , (without the extra space) etc for rest of motor entries?
    I found the example confusing. Like this (from the example):
    M92 X320 Y320 Z1600 U1600 E92.6:92.6 ; Set steps per mm
    Why wouldn't it be
    M92 X320 Y320 Z1600 U1600 E92.6:1600 ; Set steps per mm
    to match the steps for the U axis? It's like there were two extruders in the example...

    Why put your second Zaxis values into Eaxis? They should be in Zaxis config, like this:
    M92 X80 Y80 Z400:400 E410 U400 and so on for the rest of commands in that section of config.



  • I tried it with driver 2 and 4. Didn't work.
    There is a guide in dozuki, he uses driver 2 and 3. I changed it and it worked immediately. The extruder is connected to drive 4.
    Only issue is, that you have to home Z first.


  • administrators

    In your homez.g file:

    ;begin Split & Recombine for dual Z & U
    M584 Z2 U4 P4 ; split Z motor control to Z and U but for it to work we have to show U (param P4) in the UI
    G1 S1 Z-205 U-205 F1000 ; Move Z and U down until the switches triggers
    M584 Z2:4 P3 ; back to combined axes and hidden U

    ;Home Z
    G1 S1 Z-325 F1800 ; move Z down until the endstop is triggered
    G92 Z0 ; set Z position to axis minimum (you may want to adjust this)

    1. What is the purpose of the G1 S1 X-325 line? You have already homed Z in the earlier G1 S1 line. Similarly in your homeall.g fie.

    2. Have you tested your U homing switch? It must be connected to the E0 endstop (regardless of where your U motor is connected).

    The reason that steps/mm have to be repeated for each extruder is that extruders are independent each other. Whereas multiple Z motors are driven synchronously; so they must use the same steps/mm, so you only need to specify the steps/mm once.



  • @aidar - Thanks for helping out, but I'm splitting the Z motors into separate axis. The original CR-10S controller uses the motors in parallel, the Maestro puts them in series, which isn't a good match electrically (fine if you're using larger motors, but not for ours).

    Torro - Also a shoutout for the info, I'm using the Extruder as E0 and the U (2nd Z) on E1. Both work fine, my problem was elsewhere, but thanks. The "home Z first" was the problem.

    @dc42 - Thanks again, you put your finger on it.

    Have you tested your U homing switch? It must be connected to the E0 endstop (regardless of where your U motor is connected).

    I knew THAT, how silly. (Except despite looking at it at least 10 times I still had it on E1 ! 😁)
    That fixed the problem!

    What is the purpose of the G1 S1 X-325 line?

    Cut and paste error from the Dozuki guide. Removed it and fixed the leveling setup.

    The reason that steps/mm have to be repeated for each extruder... you only need to specify the steps/mm once.

    I feel like I understand that, but I am confused by the guide you referred me to.
    This is how their example looks (putting it on E0):

    M92 X320 Y320 Z1600 U1600 E92.6:92.6 ; Set steps per mm

    M566 X600 Y600 Z12 U12 E300:300 ; Set maximum instantaneous speed changes (mm/min)
    M203 X30000 Y30000 Z1200 U1200 E1800:1800 ; Set maximum speeds (mm/min)
    M201 X2500 Y2500 Z500 U500 E3000:3000 ; Set accelerations (mm/s^2)
    M906 X1000 Y1000 Z800 U800 E1000:1000 I50 ; Set motor currents (mA) and motor idle factor in per cent

    On M92 they define U1600 (makes sense, mine is Z400.00 and U400.00).

    Where I lose it is the colon after the E300:300. It's like they're setting 300 s/mm for 2nd Z, when it's defined earlier in the line. They also repeat it through the rest of the motor settings.

    I just don't get what's being DONE there, the example only has one extruder ... why the second value?? I'm sure you answered it but I still don't understand it.

    I'm working great with homing now, including the BLTouch, with the switches as "backup". Here's my files:
    homez.g
    homeall.g
    config.g

    Now to handle my Extruder (think I've got some mechanical binding)

    I get an error when I allow cold extrude (Bowden tube pulled) and test the motor.
    console.txt

    This is using a pancake on a BMG (clone). The odd thing is if I wire up the original motor (unmounted) it works but I STILL get this message. Any ideas?

    Thanks again EVER so much, you really handle so much daily I'm in awe.


  • administrators

    I'm glad you got it working. Are you happy to mark this topic as solved now?

    The E300:300 is probably a hangover from a default configuration that assumes there may be two extruders.



  • @dc42 I thought that might be it, but it was crossing my eyes. I know you get not liking unsolved mysteries... Thx again.


Log in to reply