<p>try uncommenting the following lines to enable endstop detection on all pins for troubleshooting.</p>

<pre><code>//#define USE_XMAX_PLUG false
//#define USE_YMAX_PLUG false
//#define USE_ZMAX_PLUG false
</code></pre>

<p>This way the M119 will show any changes.</p>

<p>The only thing I can think of is that either the switch is plugged into the wrong pin on the ramps board (Max instead of Min) or the switch doesn't require the pullup (your could try commenting that back as a second test as well)</p>

CC BY-SA 3.0
2016-11-26T00:47:16.303Z
It turned out to be a combination of those lines being commented out and the end stops were connected to the wrong two pins. On solidoodles board the + and - are reversed for the endstop connectors by default.
Airfield20
CC BY-SA 3.0
2016-11-12T00:59:46.650Z
2016-11-12T00:59:46.650Z
SteveP
<p>After fighting with this for a while, I found out on the end stop pins, if coming from another setup like mine, you need to switch the ground pin to the center of the connector and the 5 volt pin to the pin it is reading, for example 1.29 pin on skr 1.4.</p>
<p>Once you do that then it will read the status of the pin.</p>

CC BY-SA 4.0
2022-04-23T04:20:58.303Z
I moved the ground pins to the center of the connectors and works perfectly Upgraded to the SKR 1.4 Turbo and couldn't figure out why nothing in the firmware would work.
David M.
CC BY-SA 4.0
2023-05-19T10:49:01.260Z
Thank you so much to the person who said to move the ground pin on end stop. I’ve been researching for a whole day now and finally stumbled upon your comment. Very helpful and fixed every issue I was having with my mini skr board.
Savanna Benzel
CC BY-SA 4.0
2021-07-11T16:47:26.000Z
2021-07-11T17:01:43.647Z
2021-07-11T17:01:43.647Z
Richard Ryan
<p>Yesterday I has same error with board MKS Robin Nano with Marlin 2.0.6.</p>
<p>Try to find and uncomment this definition:</p>
<pre><code>#define ENDSTOP_INTERRUPTS_FEATURE
</code></pre>
<p>Failure was in disabled endstop interrupts and broken part of code, which going to home and unchecks endstop status between steps. But if you activated endstop before sending homing command - it will work as needed.</p>

CC BY-SA 4.0
2021-01-19T13:37:41.010Z
2021-01-19T15:17:33.430Z
2021-01-19T15:17:33.430Z
uw5ego
<p>I have an old Solidoodle 2 that I bought broken from a garage sale that I am converting to use RAMPS 1.4 with Marlin Firmware. All the motors work correctly, I am just having issues getting the endstops to work.<br><br> </p>

<p>I am using a regular limit switch with NC going to the signal pin and the other to ground. I have this switch plugged into first header column for X-min. My endstop configuration is currently:<br></p>

<pre><code>//=========================================================================== 
//============================== Endstop Settings ===========================
//===========================================================================

// @section homing

// Specify here all the endstop connectors that are connected to any endstop or probe.
// Almost all printers will be using one per axis. Probes will use one or more of the
// extra connectors. Leave undefined any used for non-endstop and non-probe purposes.
#define USE_XMIN_PLUG true
#define USE_YMIN_PLUG true
#define USE_ZMIN_PLUG true
//#define USE_XMAX_PLUG false
//#define USE_YMAX_PLUG false
//#define USE_ZMAX_PLUG false

// coarse Endstop Settings
#define ENDSTOPPULLUPS // Comment this out (using // at the start of the line) to disable the endstop pullup resistors

#if DISABLED(ENDSTOPPULLUPS)
  // fine endstop 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
  //#define ENDSTOPPULLUP_ZMIN_PROBE
#endif

// Mechanical endstop with COM to ground and NC to Signal uses "false" here (most common setup).
#define X_MIN_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.
#define Y_MIN_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Z_MIN_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define X_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Y_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Z_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Z_MIN_PROBE_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
</code></pre>

<p>I have X-min enabled and inverted. When I send an M119 (endstop status code) I recieve:</p>

<pre><code>Send: M119
Recv: Reporting endstop status
Recv: x_min: open
Recv: y_min: TRIGGERED
Recv: z_min: TRIGGERED
</code></pre>

<p>And then when I press down the X endstop with my hand I get:</p>

<pre><code>Send: M119
Recv: Reporting endstop status
Recv: x_min: open
Recv: y_min: TRIGGERED
Recv: z_min: TRIGGERED
</code></pre>

<p>-No change. There is no mechanical failure with the switches, I've tested it with a continuity tester. I have even shorted the signal and ground pins on the Ramps board with a jumper wire and I still haven't seen any change.</p>

<p>Where is the fault at?</p>

<marlin><ramps-1.4><endstop>
Endstops will not trigger using Marlin Firmware
Airfield20
# Endstops will not trigger using Marlin Firmware

(Asked by: username_0 on 2016-10-29)

I have an old Solidoodle 2 that I bought broken from a garage sale that I am converting to use RAMPS 1.4 with Marlin Firmware. All the motors work correctly, I am just having issues getting the endstops to work. 
I am using a regular limit switch with NC going to the signal pin and the other to ground. I have this switch plugged into first header column for X-min. My endstop configuration is currently:
//=========================================================================== 
//============================== Endstop Settings ===========================
//===========================================================================

// @section homing

// Specify here all the endstop connectors that are connected to any endstop or probe.
// Almost all printers will be using one per axis. Probes will use one or more of the
// extra connectors. Leave undefined any used for non-endstop and non-probe purposes.
#define USE_XMIN_PLUG true
#define USE_YMIN_PLUG true
#define USE_ZMIN_PLUG true
//#define USE_XMAX_PLUG false
//#define USE_YMAX_PLUG false
//#define USE_ZMAX_PLUG false

// coarse Endstop Settings
#define ENDSTOPPULLUPS // Comment this out (using // at the start of the line) to disable the endstop pullup resistors

#if DISABLED(ENDSTOPPULLUPS)
  // fine endstop 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
  //#define ENDSTOPPULLUP_ZMIN_PROBE
#endif

// Mechanical endstop with COM to ground and NC to Signal uses "false" here (most common setup).
#define X_MIN_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.
#define Y_MIN_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Z_MIN_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define X_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Y_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Z_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Z_MIN_PROBE_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.

I have X-min enabled and inverted. When I send an M119 (endstop status code) I recieve:
Send: M119
Recv: Reporting endstop status
Recv: x_min: open
Recv: y_min: TRIGGERED
Recv: z_min: TRIGGERED

And then when I press down the X endstop with my hand I get:
Send: M119
Recv: Reporting endstop status
Recv: x_min: open
Recv: y_min: TRIGGERED
Recv: z_min: TRIGGERED

-No change. There is no mechanical failure with the switches, I've tested it with a continuity tester. I have even shorted the signal and ground pins on the Ramps board with a jumper wire and I still haven't seen any change.
Where is the fault at?

**Tags:** marlin, ramps-1.4, endstop

---

## 3 answers

### Answer by username_1 on 2016-11-12. Score: 4 | Accepted answer

try uncommenting the following lines to enable endstop detection on all pins for troubleshooting.
//#define USE_XMAX_PLUG false
//#define USE_YMAX_PLUG false
//#define USE_ZMAX_PLUG false

This way the M119 will show any changes.
The only thing I can think of is that either the switch is plugged into the wrong pin on the ramps board (Max instead of Min) or the switch doesn't require the pullup (your could try commenting that back as a second test as well)

> **Comments:**
> **username_0**: It turned out to be a combination of those lines being commented out and the end stops were connected to the wrong two pins. On solidoodles board the + and - are reversed for the endstop connectors by default.  

---

### Answer by username_2 on 2021-07-11. Score: 1

After fighting with this for a while, I found out on the end stop pins, if coming from another setup like mine, you need to switch the ground pin to the center of the connector and the 5 volt pin to the pin it is reading, for example 1.29 pin on skr 1.4.

Once you do that then it will read the status of the pin.

> **Comments:**
> **username_3**: I moved the ground pins to the center of the connectors and works perfectly Upgraded to the SKR 1.4 Turbo and couldn't figure out why nothing in the firmware would work.  
> **username_4**: Thank you so much to the person who said to move the ground pin on end stop. I’ve been researching for a whole day now and finally stumbled upon your comment. Very helpful and fixed every issue I was having with my mini skr board.  

---

### Answer by username_5 on 2021-01-19. Score: 0

Yesterday I has same error with board MKS Robin Nano with Marlin 2.0.6.
Try to find and uncomment this definition:
#define ENDSTOP_INTERRUPTS_FEATURE

Failure was in disabled endstop interrupts and broken part of code, which going to home and unchecks endstop status between steps. But if you activated endstop before sending homing command - it will work as needed.


---

