Skip to main content
/

Site Navigation

Your Account

Choose Language

Help

Revision to Bed levelling using multiple independent Z motors

Ian A-S

* You must have a bed or gantry that is raised/lowered by two, three or four leadscrews or similar, where each one is driven by its own Z motor
+* You must have a bed probe that can probe at points near the Z leadscrews.
* Each Z motor must be driven from a separate stepper motor output on the Duet + optional DueX expansion board, or Maestro + expansion board.
* As usual with this arrangement, you must use M584 to assign the 2, 3 or 4 drivers to the Z axis
[[Gcode#Section_M584_Set_drive_mapping|See Gcode wiki]]
-== Further reading ==
+== Axis levelling using endstops ==
-If you have more than one Z motor, each connected to separate motor driver on the Duet, and each motor has an associated endstop, you can home each motor individually. See [guide|18] for an example.
+If you have an axis with more than one motor (doesn't have to be Z, can be X, Y or any other multi-motor axis), with each motor connected to a separate motor driver on the Duet, and each motor has an associated endstop, you can home each motor individually to level the axis.
+
+=== In RepRapFirmware 2 ===
+
+To do this in RepRapFirmware 2, see [guide|18] for an example of Z axis levelling. This can be applied to other axes, if necessary.
+
+=== In RepRapFirmware 3 ===
+
+In RepRapFirmware 3, you do not need to split the axes to level them, as you do in RRF2. The firmware understands if you define the axis endstops correctly. For example, if you have a dual motor Z axis, with endstops at the axis minimum, define the Z endstop in config.g as follows:
+
+[code]M574 Z1 S1 P"zstop+e1stop" ; configure active-high endstops for low end on Z via pins zstop and e1stop[/code]
+
+Make sure that the two endstops are defined in the same order in the M574 command as the corresponding Z motors in your M584 command. For the example above, M574 Z2:4 would be correct, assuming one Z motor is plugged into driver 2 (Z driver on Duet 2) and its endstop is plugged into zstop, while the second Z motor is plugged into driver 4 (E1 driver on Duet 2) and its endstop is plugged into the E1 endstop pins.
+
+When homing, RRF3 will home both axes, and stop each motor when each endstop is triggered. Note that DWC and M119 will only show one endstop per axis, but will show the axis endstop as triggered if either switch is triggered. So you can test them by triggering one at a time.

To undo the changes made by this version, click 'Revert Changes.' This will automatically restore the previous version of this guide.

Revert Changes