From accabf088ac025bfbc31a3b28162a4a5b5693d8f Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sat, 29 Oct 2016 01:54:02 -0500 Subject: [PATCH 1/3] Add support for Z2 min endstop to M119 --- Marlin/endstops.cpp | 4 ++++ Marlin/language.h | 1 + 2 files changed, 5 insertions(+) diff --git a/Marlin/endstops.cpp b/Marlin/endstops.cpp index 7c0c9dbac6..c6c94b87c1 100644 --- a/Marlin/endstops.cpp +++ b/Marlin/endstops.cpp @@ -201,6 +201,10 @@ void Endstops::M119() { SERIAL_PROTOCOLPGM(MSG_Z_MIN); SERIAL_PROTOCOLLN(((READ(Z_MIN_PIN)^Z_MIN_ENDSTOP_INVERTING) ? MSG_ENDSTOP_HIT : MSG_ENDSTOP_OPEN)); #endif + #if HAS_Z2_MIN + SERIAL_PROTOCOLPGM(MSG_Z2_MIN); + SERIAL_PROTOCOLLN(((READ(Z2_MIN_PIN)^Z2_MIN_ENDSTOP_INVERTING) ? MSG_ENDSTOP_HIT : MSG_ENDSTOP_OPEN)); + #endif #if HAS_Z_MAX SERIAL_PROTOCOLPGM(MSG_Z_MAX); SERIAL_PROTOCOLLN(((READ(Z_MAX_PIN)^Z_MAX_ENDSTOP_INVERTING) ? MSG_ENDSTOP_HIT : MSG_ENDSTOP_OPEN)); diff --git a/Marlin/language.h b/Marlin/language.h index 0a9776494c..96de163755 100644 --- a/Marlin/language.h +++ b/Marlin/language.h @@ -145,6 +145,7 @@ #define MSG_Y_MAX "y_max: " #define MSG_Z_MIN "z_min: " #define MSG_Z_MAX "z_max: " +#define MSG_Z2_MIN "z2_min: " #define MSG_Z2_MAX "z2_max: " #define MSG_Z_PROBE "z_probe: " #define MSG_ERR_MATERIAL_INDEX "M145 S out of range (0-1)" From 8cebd2a7dbc5746ea162863ba06b2bb5ef8860f3 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sat, 29 Oct 2016 01:54:19 -0500 Subject: [PATCH 2/3] Arrange Z2 min before Z2 max --- Marlin/stepper.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Marlin/stepper.cpp b/Marlin/stepper.cpp index bacf22406c..a23b67a7c8 100644 --- a/Marlin/stepper.cpp +++ b/Marlin/stepper.cpp @@ -162,14 +162,14 @@ volatile long Stepper::endstops_trigsteps[XYZ]; #if ENABLED(Z_DUAL_ENDSTOPS) #define Z_APPLY_STEP(v,Q) \ if (performing_homing) { \ - if (Z_HOME_DIR > 0) {\ - if (!(TEST(endstops.old_endstop_bits, Z_MAX) && (count_direction[Z_AXIS] > 0)) && !locked_z_motor) Z_STEP_WRITE(v); \ - if (!(TEST(endstops.old_endstop_bits, Z2_MAX) && (count_direction[Z_AXIS] > 0)) && !locked_z2_motor) Z2_STEP_WRITE(v); \ - } \ - else { \ + if (Z_HOME_DIR < 0) { \ if (!(TEST(endstops.old_endstop_bits, Z_MIN) && (count_direction[Z_AXIS] < 0)) && !locked_z_motor) Z_STEP_WRITE(v); \ if (!(TEST(endstops.old_endstop_bits, Z2_MIN) && (count_direction[Z_AXIS] < 0)) && !locked_z2_motor) Z2_STEP_WRITE(v); \ } \ + else { \ + if (!(TEST(endstops.old_endstop_bits, Z_MAX) && (count_direction[Z_AXIS] > 0)) && !locked_z_motor) Z_STEP_WRITE(v); \ + if (!(TEST(endstops.old_endstop_bits, Z2_MAX) && (count_direction[Z_AXIS] > 0)) && !locked_z2_motor) Z2_STEP_WRITE(v); \ + } \ } \ else { \ Z_STEP_WRITE(v); \ From f3720f4e816061d74710973efb032e2cdb6a94ae Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sat, 29 Oct 2016 16:01:27 -0500 Subject: [PATCH 3/3] const arguments to test_dual_z_endstops --- Marlin/endstops.cpp | 2 +- Marlin/endstops.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Marlin/endstops.cpp b/Marlin/endstops.cpp index c6c94b87c1..53e8b209e5 100644 --- a/Marlin/endstops.cpp +++ b/Marlin/endstops.cpp @@ -222,7 +222,7 @@ void Endstops::M119() { #if ENABLED(Z_DUAL_ENDSTOPS) // Pass the result of the endstop test - void Endstops::test_dual_z_endstops(EndstopEnum es1, EndstopEnum es2) { + void Endstops::test_dual_z_endstops(const EndstopEnum es1, const EndstopEnum es2) { byte z_test = TEST_ENDSTOP(es1) | (TEST_ENDSTOP(es2) << 1); // bit 0 for Z, bit 1 for Z2 if (z_test && stepper.current_block->steps[Z_AXIS] > 0) { SBI(endstop_hit_bits, Z_MIN); diff --git a/Marlin/endstops.h b/Marlin/endstops.h index 22c2468b84..4f2ce9e5dd 100644 --- a/Marlin/endstops.h +++ b/Marlin/endstops.h @@ -86,7 +86,7 @@ class Endstops { private: #if ENABLED(Z_DUAL_ENDSTOPS) - static void test_dual_z_endstops(EndstopEnum es1, EndstopEnum es2); + static void test_dual_z_endstops(const EndstopEnum es1, const EndstopEnum es2); #endif };