Welcome! Log In Create A New Profile

Advanced

Endstops ignored, crash?

Posted by fractal5 
Endstops ignored, crash?
March 21, 2015 05:56PM
I added an extra endstop on the X axis, as I had a spare one.

I want this as simply an extra insurance against crashing into the maximum position.

However what I found is that the maximum endstop is ignored completely. The extruder sled crashed right into it without stopping.

This is surprising to me, as M119 shows me that that x_max is TRIGGERED when it is activated, and open otherwise. I did physically place the X mad endstop within the X_MAX_POS. But shouldn't it prevent further movement in that direction when it detects it has contacted an endstop? It seems like a simple sanity check in the code that would be useful in the event of mechanical failure or other issues.

Do I need to make some additional modifications to Configuration.h to make this work?

I'm using Marlin 1.0.2.

#define ENDSTOPPULLUPS


#ifndef ENDSTOPPULLUPS
  // fine Enstop settings: Individual Pullups. will be ignored if ENDSTOPPULLUPS is defined
   #define ENDSTOPPULLUP_XMAX
  // #define ENDSTOPPULLUP_YMAX
  // #define ENDSTOPPULLUP_ZMAX
   #define ENDSTOPPULLUP_XMIN
   #define ENDSTOPPULLUP_YMIN
   #define ENDSTOPPULLUP_ZMIN
#endif

#ifdef ENDSTOPPULLUPS
  #define ENDSTOPPULLUP_XMAX
  #define ENDSTOPPULLUP_YMAX
  #define ENDSTOPPULLUP_ZMAX
  #define ENDSTOPPULLUP_XMIN
  #define ENDSTOPPULLUP_YMIN
  #define ENDSTOPPULLUP_ZMIN
#endif

// The pullups are needed if you directly connect a mechanical endswitch between the signal and ground pins.
const bool X_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
const bool Y_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
const bool Z_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
const bool X_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
const bool Y_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
//#define DISABLE_MAX_ENDSTOPS
//#define DISABLE_MIN_ENDSTOPS

// Disable max endstops for compatibility with endstop checking routine
#if defined(COREXY) && !defined(DISABLE_MAX_ENDSTOPS)
  #define DISABLE_MAX_ENDSTOPS
#endif

// For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
#define X_ENABLE_ON 0
#define Y_ENABLE_ON 0
#define Z_ENABLE_ON 0
#define E_ENABLE_ON 0 // For all extruders

// Disables axis when it's not being used.
#define DISABLE_X false
#define DISABLE_Y false
#define DISABLE_Z false
#define DISABLE_E false // For all extruders
#define DISABLE_INACTIVE_EXTRUDER true //disable only inactive extruders and keep active extruder enabled

#define INVERT_X_DIR true    // for Mendel set to false, for Orca set to true
#define INVERT_Y_DIR false    // for Mendel set to true, for Orca set to false
#define INVERT_Z_DIR true     // for Mendel set to false, for Orca set to true
#define INVERT_E0_DIR false   // for direct drive extruder v9 set to true, for geared extruder set to false
#define INVERT_E1_DIR false    // for direct drive extruder v9 set to true, for geared extruder set to false
#define INVERT_E2_DIR false   // for direct drive extruder v9 set to true, for geared extruder set to false

// ENDSTOP SETTINGS:
// Sets direction of endstops when homing; 1=MAX, -1=MIN
#define X_HOME_DIR -1
#define Y_HOME_DIR -1
#define Z_HOME_DIR -1

#define min_software_endstops true // If true, axis won't move to coordinates less than HOME_POS.
#define max_software_endstops true  // If true, axis won't move to coordinates greater than the defined lengths below.

// Travel limits after homing
#define X_MAX_POS 148
#define X_MIN_POS 0
#define Y_MAX_POS 150
#define Y_MIN_POS 0
#define Z_MAX_POS 86
#define Z_MIN_POS 0

#define X_MAX_LENGTH (X_MAX_POS - X_MIN_POS)
#define Y_MAX_LENGTH (Y_MAX_POS - Y_MIN_POS)
#define Z_MAX_LENGTH (Z_MAX_POS - Z_MIN_POS)
Re: Endstops ignored, crash?
March 22, 2015 04:43AM
Hi,

May pay to check this in Configuration_adv.h

Line 90 - have the following inactive e.g.. //#define ENDSTOP_ONLY_FOR_HOMING


Line 312 - you may wish to have this active if printing from SD cards e.g. #define ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLE (Need to enable from LCD to stop printing if wanted for every time you go to print something).
Re: Endstops ignored, crash?
March 22, 2015 03:33PM
Quote
RepRot
Hi,

May pay to check this in Configuration_adv.h

Line 90 - have the following inactive e.g.. //#define ENDSTOP_ONLY_FOR_HOMING


Line 312 - you may wish to have this active if printing from SD cards e.g. #define ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLE (Need to enable from LCD to stop printing if wanted for every time you go to print something).

I found the first one yesterday but forgot to update here, I don't have an SD card reader or LCD. But thanks! It appears commenting out #define ENDSTOP_ONLY_FOR_HOMING does what I want, but I haven't had a chance to test it properly yet.
Sorry, only registered users may post in this forum.

Click here to login