Dual Z-axis endstops
-
Firmware 1.19beta6 will support hidden axes. So you will be able to use the U axis for the second motor during homing, but the user interface will not provide a Home U button, nor jog controls for the U axis.
The firmware changes for this are already implemented, but not tested yet.
-
Marvelous! I think I'm on 1.17 so I'm due for an update! I only see the beta5 on github, is there somewhere I can get the latest? Is there any documentation on the new functionality and how to setup?
-
1.19beta6 will be released when I have tested it. The M584 command has a new optional parameter P which specifies the maximum number of visible axes. So if you use M584 to create a U axis but also specify P3 in that command then the U axis will be hidden.
-
Ahh, I'll keep an eye out for that and let you know if I have any questions, thanks David!
-
Is the dual Z-endstops implemented, or going to be implemented in 1.19, or do we use the solution you outlined below?
I'm homing to Z-max using 2 independent motors and want them to "sync up" when homing, as all sorts of things can happen to make them go out of sync.
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:3This 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.
-
The advice remains the same for now, except the detail has changed. I now suggest the following:
1. Put this command in config.g:
M584 X0 Y1 Z2:3 U9 E4 P3
This assigns your second Z motor (connected to the E0 motor output) to the Z axis, and creates a U axis that uses driver 9 (which I am assuming is not connected to any motor). The P3 parameter limits the number of visible axes to 3 in firmware 1.19beta6 and later, so that the U axis is not visible in the user interface.
2. In your homez.g file, do this:
M584 Z2 U3
G1 S1 Zxxx Uxxx
G92 Zxxx
M584 Z2:3 U9Assuming that driver 9 is not connected, assigning the U axis to it other than during Z homing prevents inadvertent movement of the U motor if a G1 command with a U parameter is executed.
-
Thanks.
I Just need to add some config to make it go back from z-max (where my bed is homing currently) to z-min and use a probe to get the right distance from nozzle to bed -
This may be a stupid question but when doing this, I assume you move the extruder to the E1 connector?
-
This may be a stupid question but when doing this, I assume you move the extruder to the E1 connector?
You can either use the E0 motor output for the second Z motor and E1 for the extruder (which is what I assumed in the config examples I gave above), or vice versa. Just tell the firmware which way round you have them in the M584 command.
-
Thanks
-
yes there are several FT5 owners running dual home z. I am still waiting to see if going to 1 z motor and linking the 2 z axis would be a better option. I have Duet WIFI so if i don't, i will eatu p my extra extruder spot if I split Z. In series you only get half the power any way so not sure if there is an up side to 2 motors in series? I know we talked about that briefly, your thoughts are always appreciated DC42! (https://www.youtube.com/watch?v=askVj4_5f9c)
-
If you connect two Z motors in series, you don't lose torque at low speeds. Each provides the same torque that a single motor would at the same current setting. However, the maximum speed you can run the motors at before the torque starts dropping is halved. This isn't normally a problem because high Z speeds are not required.
Firmware 1.19beta9 includes most of the implementation of bed leveling using multiple Z motors connected to individual drivers.
-
This works great. Implemented it on my big machine and I no longer have to worry if one side sags at idle. The only oddity I've noticed is that regardless of how long the machine has been on or if the Z has already been homed, when I home the Z axis from full height, the right side is hitting the endstop before the left side by about 2 seconds. However, once I have homed it and take it back to Z0, I can do a G0 to run the machine down to 10mm above the endstop and then slowly manually move it down and the hit together. Then if I run it to Z0 and home again, same 2 second lag. Must have a digit out of place somewhere. Steps are set the same. Hmmmmm.
For reference, this machine is like an Ultimaker but about twice the size so Z0 is up.
-
Got it homing evenly now. just mirrored all the settings for Z to U in the config file.
-
I'm glad you sorted it!
-
I think it was the steps
-
Bear in mind that in firmware 1.19beta10, an alternative to using dual Z endstops now is to use auto bed levelling to adjust your 2 leadscrews independently to get the bed level after homing.
-
I am considering using my 2 lead screws independently also, since I can add driver 12 to the LCD connector.
Your example shows assigning U axis to an unconnected driver, which in my case there will be none. So how would I configure dual lead screw (don't have auto bed leveling setup yet – I will add that in after I get the basics configured)This is what I have now:
M584 X0 Y1 U2 V3 W4 A5 E6:7:8:9 Z10
so if I were to add 11 it would change to
M584 X0 Y1 U2 V3 W4 A5 E6:7:8:9 Z10:11 then presumably I would define B somehow? would be also 11?I can remap other axis to -- as in U etc kinda like this:
M584 X0 Y1 V2 W3 A4 B5 E6:7:8:9 Z10:11 -- then I have U freed up as a limit switch on the primary duet as apposed to the expansion board, though I haven't notice any performance difference with 19.11 support for end stops on the expansion board.
Being that I have a large bed and there is the ability to add the 12th driver -- I can drop in another TB6600 and run my 2 lead screws independently.
-
The recommended approach now is to use a Z probe and to drive the multiple Z leadscrews independently during bed levelling only. However, you could use the old approach of dual endstop switches instead if you want, but in your case use the B axis for the second Z leadscrew instead of U. Then you can use the M584 P parameter to hide the B axis.
-
The recommended approach now is to use a Z probe and to drive the multiple Z leadscrews independently during bed levelling only. However, you could use the old approach of dual endstop switches instead if you want, but in your case use the B axis for the second Z leadscrew instead of U. Then you can use the M584 P parameter to hide the B axis.
I have different bed leveling options I will be trying once I have a bed I need to prep the PEI sheet with the automotive paint before I adhere it to the boro glass, that is on my queue for next week. I ordered the second TB6600 and will be setting it up for now to use the old method with 2 limit switches as you said, so I'm assuming
The correct option for me is
M584 X0 Y1 U2 V3 W4 A5 E6:7:8:9 Z10:11 B11 P7
M574 X1 Y1 Z1 U2 V2 W1 A2 B1 S1then my homez.g would be
G91
M584 Z10 B11
G1 S1 Zxxx Bxxx
G92 Zxxx
M584 Z10:11
G90So I can't really "hide" or prevent inadvertent moves of the B axis – since at the end of the Z homing it still assigned to 11 (which I suppose isn't critical as no standard gcode contains G1 B commands)