My Z axis moves in the correct directions using manual control. If it's moving up (away from the bed and away from the endstop) I can trigger the endstop with my finger and it will stop. If I home the z axis (down towards the bed and endstop) it just keeps going crashing into the bed.
Here is my configuration.h:
<p class="MsoNormal">// ################ Endstop configuration
#####################<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">#define ENDSTOP_PULLUP_X_MIN true<o:p></o:p></p>
<p class="MsoNormal">#define ENDSTOP_X_MIN_INVERTING false<o:p></o:p></p>
<p class="MsoNormal">#define MIN_HARDWARE_ENDSTOP_X true<o:p></o:p></p>
<p class="MsoNormal">#define ENDSTOP_PULLUP_Y_MIN true<o:p></o:p></p>
<p class="MsoNormal">#define ENDSTOP_Y_MIN_INVERTING false<o:p></o:p></p>
<p class="MsoNormal">#define MIN_HARDWARE_ENDSTOP_Y true<o:p></o:p></p>
<p class="MsoNormal">#define ENDSTOP_PULLUP_Z_MIN true<o:p></o:p></p>
<p class="MsoNormal">#define ENDSTOP_Z_MIN_INVERTING false<o:p></o:p></p>
<p class="MsoNormal">#define MIN_HARDWARE_ENDSTOP_Z true<o:p></o:p></p>
<p class="MsoNormal">#define ENDSTOP_PULLUP_X_MAX true<o:p></o:p></p>
<p class="MsoNormal">#define ENDSTOP_X_MAX_INVERTING true<o:p></o:p></p>
<p class="MsoNormal">#define MAX_HARDWARE_ENDSTOP_X false<o:p></o:p></p>
<p class="MsoNormal">#define ENDSTOP_PULLUP_Y_MAX true<o:p></o:p></p>
<p class="MsoNormal">#define ENDSTOP_Y_MAX_INVERTING true<o:p></o:p></p>
<p class="MsoNormal">#define MAX_HARDWARE_ENDSTOP_Y false<o:p></o:p></p>
<p class="MsoNormal">#define ENDSTOP_PULLUP_Z_MAX true<o:p></o:p></p>
<p class="MsoNormal">#define ENDSTOP_Z_MAX_INVERTING true<o:p></o:p></p>
<p class="MsoNormal">#define MAX_HARDWARE_ENDSTOP_Z false<o:p></o:p></p>
<p class="MsoNormal">#define max_software_endstop_r true<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">#define min_software_endstop_x false<o:p></o:p></p>
<p class="MsoNormal">#define min_software_endstop_y false<o:p></o:p></p>
<p class="MsoNormal">#define min_software_endstop_z false<o:p></o:p></p>
<p class="MsoNormal">#define max_software_endstop_x true<o:p></o:p></p>
<p class="MsoNormal">#define max_software_endstop_y true<o:p></o:p></p>
<p class="MsoNormal">#define max_software_endstop_z true<o:p></o:p></p>
<p class="MsoNormal">#define ENDSTOP_X_BACK_MOVE 5<o:p></o:p></p>
<p class="MsoNormal">#define ENDSTOP_Y_BACK_MOVE 5<o:p></o:p></p>
<p class="MsoNormal">#define ENDSTOP_Z_BACK_MOVE 2<o:p></o:p></p>
<p class="MsoNormal">#define ENDSTOP_X_RETEST_REDUCTION_FACTOR 3<o:p></o:p></p>
<p class="MsoNormal">#define ENDSTOP_Y_RETEST_REDUCTION_FACTOR 3<o:p></o:p></p>
<p class="MsoNormal">#define ENDSTOP_Z_RETEST_REDUCTION_FACTOR 3<o:p></o:p></p>
<p class="MsoNormal">#define ENDSTOP_X_BACK_ON_HOME 1<o:p></o:p></p>
<p class="MsoNormal">#define ENDSTOP_Y_BACK_ON_HOME 1<o:p></o:p></p>
<p class="MsoNormal">#define ENDSTOP_Z_BACK_ON_HOME 1<o:p></o:p></p>
<p class="MsoNormal">#define ALWAYS_CHECK_ENDSTOPS 1<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">// ################# XYZ movements ###################<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">#define X_ENABLE_ON 0<o:p></o:p></p>
<p class="MsoNormal">#define Y_ENABLE_ON 0<o:p></o:p></p>
<p class="MsoNormal">#define Z_ENABLE_ON 0<o:p></o:p></p>
<p class="MsoNormal">#define DISABLE_X 0<o:p></o:p></p>
<p class="MsoNormal">#define DISABLE_Y 0<o:p></o:p></p>
<p class="MsoNormal">#define DISABLE_Z 0<o:p></o:p></p>
<p class="MsoNormal">#define DISABLE_E 0<o:p></o:p></p>
<p class="MsoNormal">#define INVERT_X_DIR 0<o:p></o:p></p>
<p class="MsoNormal">#define INVERT_Y_DIR 0<o:p></o:p></p>
<p class="MsoNormal">#define INVERT_Z_DIR 0<o:p></o:p></p>
<p class="MsoNormal">#define X_HOME_DIR -1<o:p></o:p></p>
<p class="MsoNormal">#define Y_HOME_DIR -1<o:p></o:p></p>
<p class="MsoNormal">#define Z_HOME_DIR 1<o:p></o:p></p>
<p class="MsoNormal">#define X_MAX_LENGTH 180<o:p></o:p></p>
<p class="MsoNormal">#define Y_MAX_LENGTH 180<o:p></o:p></p>
<p class="MsoNormal">#define Z_MAX_LENGTH 120<o:p></o:p></p>
<p class="MsoNormal">#define X_MIN_POS 0<o:p></o:p></p>
<p class="MsoNormal">#define Y_MIN_POS 0<o:p></o:p></p>
<p class="MsoNormal">#define Z_MIN_POS 0<o:p></o:p></p>
<p class="MsoNormal">#define DISTORTION_CORRECTION 0<o:p></o:p></p>
<p class="MsoNormal">#define DISTORTION_CORRECTION_POINTS 5<o:p></o:p></p>
<p class="MsoNormal">#define DISTORTION_CORRECTION_R 100<o:p></o:p></p>
<p class="MsoNormal">#define DISTORTION_PERMANENT 1<o:p></o:p></p>
<p class="MsoNormal">#define DISTORTION_UPDATE_FREQUENCY 15<o:p></o:p></p>
<p class="MsoNormal">#define DISTORTION_START_DEGRADE 0.5<o:p></o:p></p>
<p class="MsoNormal">#define DISTORTION_END_HEIGHT 1<o:p></o:p></p>
<p class="MsoNormal">#define DISTORTION_EXTRAPOLATE_CORNERS 0<o:p></o:p></p>
<p class="MsoNormal">#define DISTORTION_XMIN 10<o:p></o:p></p>
<p class="MsoNormal">#define DISTORTION_YMIN 10<o:p></o:p></p>
<p class="MsoNormal">#define DISTORTION_XMAX 190<o:p></o:p></p>
<p class="MsoNormal">#define DISTORTION_YMAX 190<o:p></o:p></p><p class="MsoNormal">M119 shows: endstops hit: x_min:L y_min:L z_min:L When I trigger the z endstop z_min changes to H</p><p class="MsoNormal">My printer is a reprap Prusa Mendel i2. Mega 2560 with RAMPS 1.4. Computer is running Win 8.1. Latest Repetier firmware and host 1.6.1.</p><p class="MsoNormal">How can I get the z axis to stop when it hits the endstop?</p>