Merge pull request #4839 from thinkyhead/rc_bltouch_servo_nr
Better BLTOUCH support
This commit is contained in:
commit
9a9e9afcf8
28 changed files with 60 additions and 10 deletions
|
@ -118,9 +118,13 @@
|
||||||
* The BLTouch Probe emulates a servo probe
|
* The BLTouch Probe emulates a servo probe
|
||||||
*/
|
*/
|
||||||
#if ENABLED(BLTOUCH)
|
#if ENABLED(BLTOUCH)
|
||||||
#undef Z_ENDSTOP_SERVO_NR
|
#ifndef Z_ENDSTOP_SERVO_NR
|
||||||
#undef Z_SERVO_ANGLES
|
|
||||||
#define Z_ENDSTOP_SERVO_NR 0
|
#define Z_ENDSTOP_SERVO_NR 0
|
||||||
|
#endif
|
||||||
|
#ifndef NUM_SERVOS
|
||||||
|
#define NUM_SERVOS (Z_ENDSTOP_SERVO_NR + 1)
|
||||||
|
#endif
|
||||||
|
#undef Z_SERVO_ANGLES
|
||||||
#define Z_SERVO_ANGLES {10,90} // For BLTouch 10=deploy, 90=retract
|
#define Z_SERVO_ANGLES {10,90} // For BLTouch 10=deploy, 90=retract
|
||||||
#undef DEACTIVATE_SERVOS_AFTER_MOVE
|
#undef DEACTIVATE_SERVOS_AFTER_MOVE
|
||||||
#if ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN)
|
#if ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN)
|
||||||
|
|
|
@ -528,6 +528,7 @@
|
||||||
//#define FIX_MOUNTED_PROBE
|
//#define FIX_MOUNTED_PROBE
|
||||||
|
|
||||||
// The BLTouch probe emulates a servo probe.
|
// The BLTouch probe emulates a servo probe.
|
||||||
|
// The default connector is SERVO 0. Set Z_ENDSTOP_SERVO_NR below to override.
|
||||||
//#define BLTOUCH
|
//#define BLTOUCH
|
||||||
|
|
||||||
// Z Servo Probe, such as an endstop switch on a rotating arm.
|
// Z Servo Probe, such as an endstop switch on a rotating arm.
|
||||||
|
|
|
@ -1881,6 +1881,11 @@ static void clean_up_after_endstop_or_probe_move() {
|
||||||
// Make room for probe
|
// Make room for probe
|
||||||
do_probe_raise(_Z_PROBE_DEPLOY_HEIGHT);
|
do_probe_raise(_Z_PROBE_DEPLOY_HEIGHT);
|
||||||
|
|
||||||
|
// Check BLTOUCH probe status for an error
|
||||||
|
#if ENABLED(BLTOUCH)
|
||||||
|
if (servo[Z_ENDSTOP_SERVO_NR].read() == BLTouchState_Error) { stop(); return true; }
|
||||||
|
#endif
|
||||||
|
|
||||||
#if ENABLED(Z_PROBE_SLED)
|
#if ENABLED(Z_PROBE_SLED)
|
||||||
if (axis_unhomed_error(true, false, false)) { stop(); return true; }
|
if (axis_unhomed_error(true, false, false)) { stop(); return true; }
|
||||||
#elif ENABLED(Z_PROBE_ALLEN_KEY)
|
#elif ENABLED(Z_PROBE_ALLEN_KEY)
|
||||||
|
|
|
@ -306,12 +306,8 @@
|
||||||
/**
|
/**
|
||||||
* Limited number of servos
|
* Limited number of servos
|
||||||
*/
|
*/
|
||||||
#if defined(NUM_SERVOS) && NUM_SERVOS > 0
|
|
||||||
#if NUM_SERVOS > 4
|
#if NUM_SERVOS > 4
|
||||||
#error "The maximum number of SERVOS in Marlin is 4."
|
#error "The maximum number of SERVOS in Marlin is 4."
|
||||||
#elif HAS_Z_SERVO_ENDSTOP && Z_ENDSTOP_SERVO_NR >= NUM_SERVOS
|
|
||||||
#error "Z_ENDSTOP_SERVO_NR must be smaller than NUM_SERVOS."
|
|
||||||
#endif
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -367,7 +363,7 @@
|
||||||
#ifndef NUM_SERVOS
|
#ifndef NUM_SERVOS
|
||||||
#error "You must set NUM_SERVOS for a Z servo probe (Z_ENDSTOP_SERVO_NR)."
|
#error "You must set NUM_SERVOS for a Z servo probe (Z_ENDSTOP_SERVO_NR)."
|
||||||
#elif Z_ENDSTOP_SERVO_NR >= NUM_SERVOS
|
#elif Z_ENDSTOP_SERVO_NR >= NUM_SERVOS
|
||||||
#error "Z_ENDSTOP_SERVO_NR must be less than NUM_SERVOS."
|
#error "Z_ENDSTOP_SERVO_NR must be smaller than NUM_SERVOS."
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -404,7 +400,7 @@
|
||||||
#if (ENABLED(FIX_MOUNTED_PROBE) && (ENABLED(Z_PROBE_ALLEN_KEY) || HAS_Z_SERVO_ENDSTOP || ENABLED(Z_PROBE_SLED))) \
|
#if (ENABLED(FIX_MOUNTED_PROBE) && (ENABLED(Z_PROBE_ALLEN_KEY) || HAS_Z_SERVO_ENDSTOP || ENABLED(Z_PROBE_SLED))) \
|
||||||
|| (ENABLED(Z_PROBE_ALLEN_KEY) && (HAS_Z_SERVO_ENDSTOP || ENABLED(Z_PROBE_SLED))) \
|
|| (ENABLED(Z_PROBE_ALLEN_KEY) && (HAS_Z_SERVO_ENDSTOP || ENABLED(Z_PROBE_SLED))) \
|
||||||
|| (HAS_Z_SERVO_ENDSTOP && ENABLED(Z_PROBE_SLED))
|
|| (HAS_Z_SERVO_ENDSTOP && ENABLED(Z_PROBE_SLED))
|
||||||
#error "Please define only one type of probe: Z Servo, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, or FIX_MOUNTED_PROBE."
|
#error "Please define only one type of probe: Z Servo/BLTOUCH, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, or FIX_MOUNTED_PROBE."
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -124,6 +124,15 @@ enum TempState {
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if ENABLED(BLTOUCH)
|
||||||
|
enum BLTouchState {
|
||||||
|
BLTouchState_Deploy = 10,
|
||||||
|
BLTouchState_Stow = 90,
|
||||||
|
BLTouchState_Selftest = 120,
|
||||||
|
BLTouchState_Error = 160
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
#if ENABLED(FILAMENT_CHANGE_FEATURE)
|
#if ENABLED(FILAMENT_CHANGE_FEATURE)
|
||||||
enum FilamentChangeMenuResponse {
|
enum FilamentChangeMenuResponse {
|
||||||
FILAMENT_CHANGE_RESPONSE_WAIT_FOR,
|
FILAMENT_CHANGE_RESPONSE_WAIT_FOR,
|
||||||
|
|
|
@ -511,6 +511,7 @@
|
||||||
//#define FIX_MOUNTED_PROBE
|
//#define FIX_MOUNTED_PROBE
|
||||||
|
|
||||||
// The BLTouch probe emulates a servo probe.
|
// The BLTouch probe emulates a servo probe.
|
||||||
|
// The default connector is SERVO 0. Set Z_ENDSTOP_SERVO_NR below to override.
|
||||||
//#define BLTOUCH
|
//#define BLTOUCH
|
||||||
|
|
||||||
// Z Servo Probe, such as an endstop switch on a rotating arm.
|
// Z Servo Probe, such as an endstop switch on a rotating arm.
|
||||||
|
|
|
@ -494,6 +494,7 @@
|
||||||
//#define FIX_MOUNTED_PROBE
|
//#define FIX_MOUNTED_PROBE
|
||||||
|
|
||||||
// The BLTouch probe emulates a servo probe.
|
// The BLTouch probe emulates a servo probe.
|
||||||
|
// The default connector is SERVO 0. Set Z_ENDSTOP_SERVO_NR below to override.
|
||||||
//#define BLTOUCH
|
//#define BLTOUCH
|
||||||
|
|
||||||
// Z Servo Probe, such as an endstop switch on a rotating arm.
|
// Z Servo Probe, such as an endstop switch on a rotating arm.
|
||||||
|
|
|
@ -492,6 +492,7 @@
|
||||||
//#define FIX_MOUNTED_PROBE
|
//#define FIX_MOUNTED_PROBE
|
||||||
|
|
||||||
// The BLTouch probe emulates a servo probe.
|
// The BLTouch probe emulates a servo probe.
|
||||||
|
// The default connector is SERVO 0. Set Z_ENDSTOP_SERVO_NR below to override.
|
||||||
//#define BLTOUCH
|
//#define BLTOUCH
|
||||||
|
|
||||||
// Z Servo Probe, such as an endstop switch on a rotating arm.
|
// Z Servo Probe, such as an endstop switch on a rotating arm.
|
||||||
|
|
|
@ -503,6 +503,7 @@
|
||||||
//#define FIX_MOUNTED_PROBE
|
//#define FIX_MOUNTED_PROBE
|
||||||
|
|
||||||
// The BLTouch probe emulates a servo probe.
|
// The BLTouch probe emulates a servo probe.
|
||||||
|
// The default connector is SERVO 0. Set Z_ENDSTOP_SERVO_NR below to override.
|
||||||
//#define BLTOUCH
|
//#define BLTOUCH
|
||||||
|
|
||||||
// Z Servo Probe, such as an endstop switch on a rotating arm.
|
// Z Servo Probe, such as an endstop switch on a rotating arm.
|
||||||
|
|
|
@ -505,6 +505,7 @@
|
||||||
#define FIX_MOUNTED_PROBE
|
#define FIX_MOUNTED_PROBE
|
||||||
|
|
||||||
// The BLTouch probe emulates a servo probe.
|
// The BLTouch probe emulates a servo probe.
|
||||||
|
// The default connector is SERVO 0. Set Z_ENDSTOP_SERVO_NR below to override.
|
||||||
//#define BLTOUCH
|
//#define BLTOUCH
|
||||||
|
|
||||||
// Z Servo Probe, such as an endstop switch on a rotating arm.
|
// Z Servo Probe, such as an endstop switch on a rotating arm.
|
||||||
|
|
|
@ -528,6 +528,7 @@
|
||||||
//#define FIX_MOUNTED_PROBE
|
//#define FIX_MOUNTED_PROBE
|
||||||
|
|
||||||
// The BLTouch probe emulates a servo probe.
|
// The BLTouch probe emulates a servo probe.
|
||||||
|
// The default connector is SERVO 0. Set Z_ENDSTOP_SERVO_NR below to override.
|
||||||
//#define BLTOUCH
|
//#define BLTOUCH
|
||||||
|
|
||||||
// Z Servo Probe, such as an endstop switch on a rotating arm.
|
// Z Servo Probe, such as an endstop switch on a rotating arm.
|
||||||
|
|
|
@ -511,6 +511,7 @@
|
||||||
//#define FIX_MOUNTED_PROBE
|
//#define FIX_MOUNTED_PROBE
|
||||||
|
|
||||||
// The BLTouch probe emulates a servo probe.
|
// The BLTouch probe emulates a servo probe.
|
||||||
|
// The default connector is SERVO 0. Set Z_ENDSTOP_SERVO_NR below to override.
|
||||||
//#define BLTOUCH
|
//#define BLTOUCH
|
||||||
|
|
||||||
// Z Servo Probe, such as an endstop switch on a rotating arm.
|
// Z Servo Probe, such as an endstop switch on a rotating arm.
|
||||||
|
|
|
@ -511,6 +511,7 @@
|
||||||
//#define FIX_MOUNTED_PROBE
|
//#define FIX_MOUNTED_PROBE
|
||||||
|
|
||||||
// The BLTouch probe emulates a servo probe.
|
// The BLTouch probe emulates a servo probe.
|
||||||
|
// The default connector is SERVO 0. Set Z_ENDSTOP_SERVO_NR below to override.
|
||||||
//#define BLTOUCH
|
//#define BLTOUCH
|
||||||
|
|
||||||
// Z Servo Probe, such as an endstop switch on a rotating arm.
|
// Z Servo Probe, such as an endstop switch on a rotating arm.
|
||||||
|
|
|
@ -511,6 +511,7 @@
|
||||||
//#define FIX_MOUNTED_PROBE
|
//#define FIX_MOUNTED_PROBE
|
||||||
|
|
||||||
// The BLTouch probe emulates a servo probe.
|
// The BLTouch probe emulates a servo probe.
|
||||||
|
// The default connector is SERVO 0. Set Z_ENDSTOP_SERVO_NR below to override.
|
||||||
//#define BLTOUCH
|
//#define BLTOUCH
|
||||||
|
|
||||||
// Z Servo Probe, such as an endstop switch on a rotating arm.
|
// Z Servo Probe, such as an endstop switch on a rotating arm.
|
||||||
|
|
|
@ -509,6 +509,7 @@
|
||||||
//#define FIX_MOUNTED_PROBE
|
//#define FIX_MOUNTED_PROBE
|
||||||
|
|
||||||
// The BLTouch probe emulates a servo probe.
|
// The BLTouch probe emulates a servo probe.
|
||||||
|
// The default connector is SERVO 0. Set Z_ENDSTOP_SERVO_NR below to override.
|
||||||
//#define BLTOUCH
|
//#define BLTOUCH
|
||||||
|
|
||||||
// Z Servo Probe, such as an endstop switch on a rotating arm.
|
// Z Servo Probe, such as an endstop switch on a rotating arm.
|
||||||
|
|
|
@ -521,6 +521,7 @@
|
||||||
//#define FIX_MOUNTED_PROBE
|
//#define FIX_MOUNTED_PROBE
|
||||||
|
|
||||||
// The BLTouch probe emulates a servo probe.
|
// The BLTouch probe emulates a servo probe.
|
||||||
|
// The default connector is SERVO 0. Set Z_ENDSTOP_SERVO_NR below to override.
|
||||||
//#define BLTOUCH
|
//#define BLTOUCH
|
||||||
|
|
||||||
// Z Servo Probe, such as an endstop switch on a rotating arm.
|
// Z Servo Probe, such as an endstop switch on a rotating arm.
|
||||||
|
|
|
@ -532,6 +532,7 @@
|
||||||
//#define FIX_MOUNTED_PROBE
|
//#define FIX_MOUNTED_PROBE
|
||||||
|
|
||||||
// The BLTouch probe emulates a servo probe.
|
// The BLTouch probe emulates a servo probe.
|
||||||
|
// The default connector is SERVO 0. Set Z_ENDSTOP_SERVO_NR below to override.
|
||||||
//#define BLTOUCH
|
//#define BLTOUCH
|
||||||
|
|
||||||
// Z Servo Probe, such as an endstop switch on a rotating arm.
|
// Z Servo Probe, such as an endstop switch on a rotating arm.
|
||||||
|
|
|
@ -503,6 +503,7 @@
|
||||||
//#define FIX_MOUNTED_PROBE
|
//#define FIX_MOUNTED_PROBE
|
||||||
|
|
||||||
// The BLTouch probe emulates a servo probe.
|
// The BLTouch probe emulates a servo probe.
|
||||||
|
// The default connector is SERVO 0. Set Z_ENDSTOP_SERVO_NR below to override.
|
||||||
//#define BLTOUCH
|
//#define BLTOUCH
|
||||||
|
|
||||||
// Z Servo Probe, such as an endstop switch on a rotating arm.
|
// Z Servo Probe, such as an endstop switch on a rotating arm.
|
||||||
|
|
|
@ -511,6 +511,7 @@
|
||||||
//#define FIX_MOUNTED_PROBE
|
//#define FIX_MOUNTED_PROBE
|
||||||
|
|
||||||
// The BLTouch probe emulates a servo probe.
|
// The BLTouch probe emulates a servo probe.
|
||||||
|
// The default connector is SERVO 0. Set Z_ENDSTOP_SERVO_NR below to override.
|
||||||
//#define BLTOUCH
|
//#define BLTOUCH
|
||||||
|
|
||||||
// Z Servo Probe, such as an endstop switch on a rotating arm.
|
// Z Servo Probe, such as an endstop switch on a rotating arm.
|
||||||
|
|
|
@ -554,6 +554,7 @@
|
||||||
//#define FIX_MOUNTED_PROBE
|
//#define FIX_MOUNTED_PROBE
|
||||||
|
|
||||||
// The BLTouch probe emulates a servo probe.
|
// The BLTouch probe emulates a servo probe.
|
||||||
|
// The default connector is SERVO 0. Set Z_ENDSTOP_SERVO_NR below to override.
|
||||||
//#define BLTOUCH
|
//#define BLTOUCH
|
||||||
|
|
||||||
// Z Servo Probe, such as an endstop switch on a rotating arm.
|
// Z Servo Probe, such as an endstop switch on a rotating arm.
|
||||||
|
|
|
@ -554,6 +554,7 @@
|
||||||
//#define FIX_MOUNTED_PROBE
|
//#define FIX_MOUNTED_PROBE
|
||||||
|
|
||||||
// The BLTouch probe emulates a servo probe.
|
// The BLTouch probe emulates a servo probe.
|
||||||
|
// The default connector is SERVO 0. Set Z_ENDSTOP_SERVO_NR below to override.
|
||||||
//#define BLTOUCH
|
//#define BLTOUCH
|
||||||
|
|
||||||
// Z Servo Probe, such as an endstop switch on a rotating arm.
|
// Z Servo Probe, such as an endstop switch on a rotating arm.
|
||||||
|
|
|
@ -554,6 +554,7 @@
|
||||||
//#define FIX_MOUNTED_PROBE
|
//#define FIX_MOUNTED_PROBE
|
||||||
|
|
||||||
// The BLTouch probe emulates a servo probe.
|
// The BLTouch probe emulates a servo probe.
|
||||||
|
// The default connector is SERVO 0. Set Z_ENDSTOP_SERVO_NR below to override.
|
||||||
//#define BLTOUCH
|
//#define BLTOUCH
|
||||||
|
|
||||||
// Z Servo Probe, such as an endstop switch on a rotating arm.
|
// Z Servo Probe, such as an endstop switch on a rotating arm.
|
||||||
|
|
|
@ -550,6 +550,7 @@
|
||||||
//#define FIX_MOUNTED_PROBE
|
//#define FIX_MOUNTED_PROBE
|
||||||
|
|
||||||
// The BLTouch probe emulates a servo probe.
|
// The BLTouch probe emulates a servo probe.
|
||||||
|
// The default connector is SERVO 0. Set Z_ENDSTOP_SERVO_NR below to override.
|
||||||
//#define BLTOUCH
|
//#define BLTOUCH
|
||||||
|
|
||||||
// Z Servo Probe, such as an endstop switch on a rotating arm.
|
// Z Servo Probe, such as an endstop switch on a rotating arm.
|
||||||
|
|
|
@ -560,6 +560,7 @@
|
||||||
#define FIX_MOUNTED_PROBE
|
#define FIX_MOUNTED_PROBE
|
||||||
|
|
||||||
// The BLTouch probe emulates a servo probe.
|
// The BLTouch probe emulates a servo probe.
|
||||||
|
// The default connector is SERVO 0. Set Z_ENDSTOP_SERVO_NR below to override.
|
||||||
//#define BLTOUCH
|
//#define BLTOUCH
|
||||||
|
|
||||||
// Z Servo Probe, such as an endstop switch on a rotating arm.
|
// Z Servo Probe, such as an endstop switch on a rotating arm.
|
||||||
|
|
|
@ -514,6 +514,7 @@
|
||||||
//#define FIX_MOUNTED_PROBE
|
//#define FIX_MOUNTED_PROBE
|
||||||
|
|
||||||
// The BLTouch probe emulates a servo probe.
|
// The BLTouch probe emulates a servo probe.
|
||||||
|
// The default connector is SERVO 0. Set Z_ENDSTOP_SERVO_NR below to override.
|
||||||
//#define BLTOUCH
|
//#define BLTOUCH
|
||||||
|
|
||||||
// Z Servo Probe, such as an endstop switch on a rotating arm.
|
// Z Servo Probe, such as an endstop switch on a rotating arm.
|
||||||
|
|
|
@ -507,6 +507,7 @@
|
||||||
//#define FIX_MOUNTED_PROBE
|
//#define FIX_MOUNTED_PROBE
|
||||||
|
|
||||||
// The BLTouch probe emulates a servo probe.
|
// The BLTouch probe emulates a servo probe.
|
||||||
|
// The default connector is SERVO 0. Set Z_ENDSTOP_SERVO_NR below to override.
|
||||||
//#define BLTOUCH
|
//#define BLTOUCH
|
||||||
|
|
||||||
// Z Servo Probe, such as an endstop switch on a rotating arm.
|
// Z Servo Probe, such as an endstop switch on a rotating arm.
|
||||||
|
|
|
@ -366,6 +366,9 @@
|
||||||
#ifndef MSG_ZPROBE_OUT
|
#ifndef MSG_ZPROBE_OUT
|
||||||
#define MSG_ZPROBE_OUT "Z probe out. bed"
|
#define MSG_ZPROBE_OUT "Z probe out. bed"
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef MSG_RESET_BLTOUCH
|
||||||
|
#define MSG_RESET_BLTOUCH "Reset BLTouch"
|
||||||
|
#endif
|
||||||
#ifndef MSG_HOME
|
#ifndef MSG_HOME
|
||||||
#define MSG_HOME "Home" // Used as MSG_HOME " " MSG_X MSG_Y MSG_Z " " MSG_FIRST
|
#define MSG_HOME "Home" // Used as MSG_HOME " " MSG_X MSG_Y MSG_Z " " MSG_FIRST
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -30,6 +30,11 @@
|
||||||
#include "configuration_store.h"
|
#include "configuration_store.h"
|
||||||
#include "utility.h"
|
#include "utility.h"
|
||||||
|
|
||||||
|
#if ENABLED(BLTOUCH)
|
||||||
|
#include "servo.h"
|
||||||
|
extern Servo servo[NUM_SERVOS];
|
||||||
|
#endif
|
||||||
|
|
||||||
#if ENABLED(PRINTCOUNTER)
|
#if ENABLED(PRINTCOUNTER)
|
||||||
#include "printcounter.h"
|
#include "printcounter.h"
|
||||||
#include "duration_t.h"
|
#include "duration_t.h"
|
||||||
|
@ -586,6 +591,12 @@ void kill_screen(const char* lcd_msg) {
|
||||||
static void lcd_main_menu() {
|
static void lcd_main_menu() {
|
||||||
START_MENU();
|
START_MENU();
|
||||||
MENU_ITEM(back, MSG_WATCH);
|
MENU_ITEM(back, MSG_WATCH);
|
||||||
|
|
||||||
|
#if ENABLED(BLTOUCH)
|
||||||
|
if (servo[Z_ENDSTOP_SERVO_NR].read() == BLTouchState_Error)
|
||||||
|
MENU_ITEM(gcode, MSG_RESET_BLTOUCH, "M280 S90 P" STRINGIFY(Z_ENDSTOP_SERVO_NR));
|
||||||
|
#endif
|
||||||
|
|
||||||
if (planner.movesplanned() || IS_SD_PRINTING) {
|
if (planner.movesplanned() || IS_SD_PRINTING) {
|
||||||
MENU_ITEM(submenu, MSG_TUNE, lcd_tune_menu);
|
MENU_ITEM(submenu, MSG_TUNE, lcd_tune_menu);
|
||||||
}
|
}
|
||||||
|
|
Reference in a new issue