Dual Z-axis endstops



  • Hi, i'm looking at replacing my RAMPS 1.4 to a more modern 32bit controller on my custom corexy.

    My current setup has two Z motors using seperate drivers, two z-axis IR endstops for homing and an inductive prove for bed leveling.

    Can anyone tell me if i can get the same setup using a DuetWifi?

    Cheers
    Charlie.


  • administrators

    You can use two Z drivers and an inductive probe, but we currently support only one Z endstop. How do the two endstops work in your current setup?



  • One endstop uses Z-min which is assigned to lets say the left motor (Z1), the other endstop uses Z-max which is assigned to the right motor (Z2). The end stops are only used for homing (making sure both motors are level), once the print starts it uses the probe (i'm using Y-max) to compensate for an uneven bed.

    And because the endstops are IR, i can travel past without interfering.

    Charlie.


  • administrators

    I wasn't aware that any of the standard firmwares supported dual Z endstop switches. Which one is it?

    We don't support that arrangement at present, although we probably will in future because we have an OEM interested in it. However, in the immediate future we have two developments planned. One is a firmware change to ensure that when you power the printer down and up again, dual motors on an axis stay in sync, provided you don't move them more than about 1 full step while they are powered down. This will probably be in the 1.18 firmware release. The second is to use the Z probe to perform bed levelling with 2, 3 or 4 independent Z motors.



  • I'm using Marlin 1.1.0 - RC8.

    Ah that's a shame, i was eying up the 7" Due Panel as well 🙂 I'll just have to stay with what i have until you implement it. Either that or i might change to having the z axis belt driven using a single motor, but i didn't really what to go the the hassle of changing everything again, especially when it's working well at the moment. It's a shame there aren't any 32bit controllers that'll run the latest Marlin.

    Well if you need any beta testers for it let me know.

    Charlie.


  • administrators

    If you do buy a Duet WiFi, then I can implement the change to keep the Z motors in sync within about 2 weeks. You could then run a macro to do 4-point mesh bed levelling when you power on to verify that the motors have remained in sync. The height map is displayed in the web interface, so this would be really easy to see. Supporting independent Z homing switches would take a little longer but I can try to get that in the 1.18 release too. I already know how I'd implement it, the main complication is implementing a new gcode to map endstop inputs (which someone else wanted for other reasons).



  • @dc42:

    If you do buy a Duet WiFi, then I can implement the change to keep the Z motors in sync within about 2 weeks. You could then run a macro to do 4-point mesh bed levelling when you power on to verify that the motors have remained in sync. The height map is displayed in the web interface, so this would be really easy to see. Supporting independent Z homing switches would take a little longer but I can try to get that in the 1.18 release too. I already know how I'd implement it, the main complication is implementing a new gcode to map endstop inputs (which someone else wanted for other reasons).

    Go for it 🙂 I've got a FT-5 sat here so I can help test it out.

    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.



  • @baballuci:

    I'm using Marlin 1.1.0 - RC8.

    Ah that's a shame, i was eying up the 7" Due Panel as well 🙂 I'll just have to stay with what i have until you implement it. Either that or i might change to having the z axis belt driven using a single motor, but i didn't really what to go the the hassle of changing everything again, especially when it's working well at the moment. It's a shame there aren't any 32bit controllers that'll run the latest Marlin.

    Well if you need any beta testers for it let me know.

    Charlie.

    You should buy one without hesitation. If dc42 commits to a feature you know it's gonna get done 🙂



  • OK, i've convinced myself to take the plunge.

    I see there is no stock available till the 13th. Is stock still limited or will there be plenty on hand if order later in the week?

    Charlie.


  • administrators

    There should be plenty of stock around that time because a new batch has been manufactured, but there might be a backlog of orders to work through.



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


 

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