Dual Z-axis endstops



  • Haven't ordered my board yet (still working on other parts of my D-Bot build) but I'm heavily leaning towards it.

    Has this ability been implemented yet?



  • Yes please. I would also see something like this. My reason for being able to sync the two Z-axis is because I can never know if one of my kids haven't been turning one of the Z axis 😮 Then how this is implemented, with dual Z-endstops (max/min) or using the Z-probe is not that important. I'll be ready to test this feature this week 🙂

    I have this setup my self and both Marlin (>=RC8) and Repetier development has this ability. I had mixed results, probably because of a combination of user error or bugs or both.

    At the moment I have two IR slot switches at Z max that can easily be made to trigger at Z min as well. And then I have a IR probe by you David.



  • My Duet is in the mail 🙂

    Any update on this?


  • administrators

    I expect to implement multiple Z homing switches in firmware 1.19. In the meantime I think you can achieve the same thing as follows:

    1. Put this command in config.g:

    M584 X0 Y1 Z2:3 U3 E4

    This assigns your second Z motor (connected to the E0 motor output) to both the Z and U axes.

    2. In your homez.g file, do this:

    M584 Z2
    G1 S1 Zxxx Uxxx
    G92 Zxxx
    M584 Z2:3

    This splits Z into the Z and U axes, homes them simultaneously, and then restores normal Z movement. Fill in the xxx values to suit your machine - see https://duet3d.com/wiki/Configuring_RepRapFirmware_for_a_Cartesian_printer#Homing_files.

    3. Change the Z homing section of homeall.g to do the same.

    4. Connect the second Z endstop switch (the one you use for the U motor) to the E0 endstop input.

    Test the above carefully, with low motor current and a hand on the power switch, in case I have forgotten something.



  • Nice, will try if I can source another 12V step-down for my fans 😄 Then I'm ready to assemble the Bigbox.



  • Awesome! Should have my board on Monday. Once I've got it all working normally I'll give this a shot and report back.

    Thank you!



  • @iDevelo:

    A bit off topic but I also suggested to Tony about using Jira for tracking features and bugs which would make keeping track a breeze. It's FOC for open source and very powerful.

    I love Atlassian tools, Jira makes it extremely easy to track bugs and features I have also used Confluence, Trello, and Hipchat. Great stuff for dev and test teams.



  • my board will be here today , I had to order express shipping so I can have it for the weekend 🙂



  • @FailsafeJim:

    @iDevelo:

    A bit off topic but I also suggested to Tony about using Jira for tracking features and bugs which would make keeping track a breeze. It's FOC for open source and very powerful.

    I love Atlassian tools, Jira makes it extremely easy to track bugs and features I have also used Confluence, Trello, and Hipchat. Great stuff for dev and test teams.

    🙂 wouldn't it be great to see a sprint for each release!



  • It works!

    Disclaimer: I haven't printed with this yet. Still waiting on my bed.

    Took some tweaking though.

    I may or may not have had to make some of the changes I made. Someone else can confirm.

    Added the following to config.g:

    ;DUAL Z
    M584 X0 Y1 Z2:3 U3 E4

    Wherever something for Z was defined, I added the same for U. (I'm unsure if this was necessary, as I did this during troubleshooting.)
    Example:
    This: M350 X128 Y128 Z128 E16 I1 ; Configure microstepping with interpolation
    Became: M350 X128 Y128 Z128 U128 E16 I1 ; Configure microstepping with interpolation

    Added, as it was missing:
    M569 P4 S1 ; Drive 4 goes forwards

    Commented out the entirety of homez.g and added:
    M584 Z2
    G1 S1 Zxxx Uxxx
    G92 Zxxx
    M584 Z2:3

    Pretty sure that was everything!



  • This me TWO days to figure out why my machine was grinding when homing. Then I realized on EVERY home move the right endstop hit before the left. If I moved the bed down 30MM or more this would happen.

    While in this configuration, the motor hooked up to the original Z plug moves faster than the one in the U plug.

    Any ideas on why this is happening?

    Note: When tested with both motors in Z plug, homes and moves normally. I DID put the jumpers on as for a 1 Z motor hookup.

    [[language]]
    ; Configuration file for Duet WiFi (firmware version 1.17)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool on Sat Mar 18 2017 20:32:40 GMT-0400 (Eastern Daylight Time)
    
    ; General preferences
    M111 S0 ; Debugging off
    G21 ; Work in millimetres
    G90 ; Send absolute coordinates...
    M83 ; ...but relative extruder moves
    M555 P2 ; Set firmware compatibility to look like Marlin
    
    ;DUAL Z
    M584 X0 Y1 Z2:3 U3 E4
    
    M667 S1 ; Select CoreXY mode
    M208 X0 Y0 Z0 U0S1 ; Set axis minima
    M208 X300 Y300 Z320 U320 S0 ; Set axis maxima
    
    ; Endstops
    M574 X1 Y2 Z1 U1 S1 ; Define active high microswitches
    ;M558 P1 X0 Y0 Z0 H5 F120 T9000 ; Set Z probe type to unmodulated, the axes for which it is used and the probe + travel speeds
    ;G31 P600 X0 Y0 Z0 ; Set Z probe trigger value, offset and trigger height
    ;M557 X15:285 Y15:285 S20 ; Define mesh grid
    
    ; Drives
    M569 P0 S1 ; Drive 0 goes forwards
    M569 P1 S0 ; Drive 1 goes forwards
    M569 P2 S1 ; Drive 2 goes forwards
    M569 P3 S1 ; Drive 3 goes forwards
    M569 P4 S1 ; Drive 4 goes forwards
    
    M350 X128 Y128 Z128 E16 I1 ; Configure microstepping with interpolation
    M92 X800 Y800 Z3200 U3200 E138.4336 ; Set steps per mm
    M566 X600 Y600 Z24 U24 E300 ; Set maximum instantaneous speed changes (mm/min)
    M203 X30000 Y30000 Z300 U300 E1500 ; Set maximum speeds (mm/min)
    M201 X2000 Y2000 Z100 U100 E4000 ; Set accelerations (mm/s^2)
    M906 X800 Y800 Z800 U800 E800 I30 ; Set motor currents (mA) and motor idle factor in per cent
    M84 S30 ; Set idle timeout
    
    ; Heaters
    M143 S260 ; Set maximum heater temperature to 260C
    M305 P0 T100000 B4388 R4700 H0 L0 ; Set thermistor + ADC parameters for heater 0
    M305 P1 T100000 B4138 C0 R4700 ; Set thermistor + ADC parameters for heater 1
    
    ; Tools
    M563 P0 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
    
    ; Network
    M550 PBlack Widow ; Set machine name
    M552 P0.0.0.0 S1 ; Enable network and acquire dynamic address via DHCP
    
    ; 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
    
    ; Custom settings are not configured
    
    

  • administrators

    What do you have in your homez.g and homeall.g files? Perhaps you still have driver 3 assigned to Z as well as U when you are Z homing.

    Edit: i just spotted that your M350 command doesn't set microstepping for the U axis.



  • I'm pretty sure I had it in there before I switched back to 1 Z for testing but I'll add back and test again tonight, just in case.

    Here is homez.g. Homeall.g hasn't been updated yet.

    [[language]]
    ;DUAL Z
    M584 Z2
    M854 U3
    G1 S1 Z-320 U-320
    G92 Z.04
    M584 Z2:3
    
    

  • administrators

    M854 in your homez.g file is not a valid gcode, I presume you meant M584.



  • Good catch. I'll report back results.



  • I am really looking forward to the dual z end stops as well how long do you think it will be until the beta release?


  • administrators

    Have you read the recent posts in this thread to see how you can [probably] do it already?



  • Yes I saw the post have that working but would like to get my NPN probe back eventually if possible.


  • administrators

    If you mean that you can't connect your NPN probe to the E0 endstop connector because it is used for the second Z homing switch, you can connect your NPN probe to E1 endstop connector or to the Z probe connector instead if you select the appropriate probe type in your M558 command.



  • I got this working fine and will post my setup here soon. There is some oddities when lowering Z after hitting the endstops and only one axis move if I do not add S2 as instructed by David. I did report this as an bug on github as it seems it should not behave like that.

    https://github.com/dc42/RepRapFirmware/issues/91


Log in to reply