I upgraded my X5S to Ramps1.4. I activated DualZMotor and can now use DualZ Endstops. It is likely that one of the Z-Axis is out of level after a while. With DualZ Motor control and DualZ Endstops each ZMotor is driven until it reaches its own endstop.
Configuration Example Marlin
this assumes the following wiring:
- YMax = Enstop Autolevel Probe (only if you have one)
- ZMin = Endstop Z1
- XMax = Endstop Z2
If you are using a ZProbe(AutoLeveling) this works togehter great with DualZEndstops.
G28 will trigger homing using defined ZEndstops. G29 will use the probe to AutoLevel the bed, great, isn't it?
Changes in configuration.h
#define USE_YMAX_PLUG //again, only if you have a ZProbe
#define Z_MIN_ENDSTOP_INVERTING true
#define X_MAX_ENDSTOP_INVERTING true
Your endstop inverting settings might be differnt based on your endstop logic, check correct setting with M119!
do not forget to check your endstop pullups for mechanical endstops:
Changes in configuration_adv.h
#define Z_DUAL_STEPPER_DRIVERS //wire Z Motors induvidually to get control on each
#define Z_DUAL_ENDSTOPS //activate DualEndstop feature
Changes in pins_RAMPS.h
if you have a probe connected to Y_MAX
#define Z_MIN_PROBE_PIN 15 //YMaxPin