Welcome! Log In Create A New Profile

Advanced

Endstop issues

Posted by Astra 
Endstop issues
September 04, 2014 11:11AM
Okay, new problem in this ongoing saga :

Prusa i3, RAMPS, Arduino, Nema 17, Mech Endstop v1.0, Repetier-Host v0.95D

I followed the instructions for controlling the motors, had to invert the X axis in Config.h, but no problem otherwise.
Then I tried to check the Endstops using homing on Repetier and X and Z don't work. Meaning that the motors keep running after they've hit the endstop... This does not happen to Y for some reason.

I then tried using the M119 command, which gives the status of the Endstops (open/triggered). If I press on X, Z, launch the command, they register as open instead of triggered as they should. Again, Y is not concerned, he's Triggered, the darling.

I have this in the Config.h :


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

#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_ENDSTOPS_INVERTING = true; // set to true to invert the logic of the endstops.
const bool Y_ENDSTOPS_INVERTING = true; // set to true to invert the logic of the endstops.
const bool Z_ENDSTOPS_INVERTING = true; // set to true to invert the logic of the endstops.
//#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 INVERT_X_DIR true // for Mendel set to false, for Orca set to true
#define INVERT_Y_DIR true // for Mendel set to true, for Orca set to false
#define INVERT_Z_DIR false // 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 180
#define X_MIN_POS 0
#define Y_MAX_POS 180
#define Y_MIN_POS 0
#define Z_MAX_POS 180
#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)

// The position of the homing switches
//#define MANUAL_HOME_POSITIONS // If defined, MANUAL_*_HOME_POS below will be used
//#define BED_CENTER_AT_0_0 // If defined, the center of the bed is at (X=0, Y=0)

//Manual homing switch locations:
// For deltabots this means top and center of the cartesian print volume.
#define MANUAL_X_HOME_POS 0
#define MANUAL_Y_HOME_POS 0
#define MANUAL_Z_HOME_POS 0
//#define MANUAL_Z_HOME_POS 402 // For delta: Distance between nozzle and print surface after homing.

//// MOVEMENT SETTINGS
#define NUM_AXIS 4 // The axis order in all axis related arrays is X, Y, Z, E
#define HOMING_FEEDRATE {50*60, 50*60, 2*60, 0} // set the homing speeds (mm/min)


If anyone knows how to fix this, I'll be much obliged.

Edited 1 time(s). Last edit at 09/04/2014 11:11AM by Astra.
Re: Endstop issues
September 04, 2014 11:37AM
In your configure.h all of the endstops are defined as NO - switch contacts are normally open and when hit they close. So first I would check the 2 pins you are using going to the RAMPS. Unplug them from the RAMPS and check with a multi-meter. You only need 2 wires going to the RAMPS and they go on the S and the -

In your configure.h the Y and Z are defined to use the MIN pins on the RAMPS and the X is defined to use the MAX pins, make sure they are plugged into the correct pins on the RAMPS

Hope this helps
Steve
Attachments:
open | download - RAMPS-Min.jpg (129.2 KB)
open | download - RAMPS-MAX.jpg (129.6 KB)
Re: Endstop issues
September 04, 2014 03:02PM
Thanks for responding.

I checked and the Endstops switch from 5V to 0V, I'll check what happens if I go from NO to NC. The wiring is correct, no mistake there.

Quote
SteveRoy
In your configure.h the Y and Z are defined to use the MIN pins on the RAMPS and the X is defined to use the MAX pins, make sure they are plugged into the correct pins on the RAMPS

Are you referring to these lines :

// 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

Because that's just the direction in which the motors move when homing, isn't it ? I changed the X because the extruder was moving away from the EndStop

EDIT:
Replacing true with false in :
const bool X_ENDSTOPS_INVERTING = false; // set to true to invert the logic of the endstops.
Did not work. Now, the endstop is triggered whether it's accualy triggered or not..

EDIT n°2 :
I switched the X and Y cable. When I triggered the X endstop, Y was noted as triggered. When I triggered the Y endstop, nothing happened.

Edited 2 time(s). Last edit at 09/04/2014 03:18PM by Astra.
Re: Endstop issues
September 05, 2014 02:40AM
Please stop using the shotgun effect and changing everything in the hope you might hit the right thing... it wont work!

check the following.

Firmware:

You have to set your reprap mother board to the correct type. #define MOTHERBOARD 33 for a normal ramps

motors
move x in -ve direction head should move left, +ve direction head should move right.
move y in -ve direction bed should move back, +ve direction should move bed forward.
move z in -ve direction head should move down, +ve direction head should move up.

make sure these are correct (may not be able to move in negative direction until endstops work)

Endstop direction.

If your X end stop is on the left it is a min endstop, if its on the right its a max endstop.
if your Y end stop is at the back it a min endstop, if its on the front its a max endstop.
if your Z end stop is it the bottom its a min endstop, if its at the top its a max endstop.

You have said

// 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

so your X endstop is on the right hand side and plugged into the X max endstop plug?

Switch type endstops
#define ENDSTOPPULLUPS needs to be set.
The switches should be wired from C and NC on the switch to S and - on the ramps.
Make sure if its a min endstop its on the min ramps pins and if its a max endstop it on the max ramps pins

Also Check your ramps is fully seated on the mega

If m119 shows its changing, but it triggered when its not and vice versa then change ENDSTOPS_INVERTING from true to false or false to true, ie opposite of what is it set to now.

If your still having issues, you may have a faulty ramps or mega.
You can move the endstop to other pins reasonably easily, so if t just 1 dead pin, it can be bypassed. (by editing pins.h) more info later if you need it.

Edited 1 time(s). Last edit at 09/05/2014 02:42AM by Dust.
Re: Endstop issues
September 05, 2014 04:25AM
Quote
Dust
You have to set your reprap mother board to the correct type. #define MOTHERBOARD 33 for a normal ramps

That was already in the config, but good to know

Quote
Dust
You have said

// 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

My mistake, the correct config is actually -1 all around

Quote
Dust
Switch type endstops
#define ENDSTOPPULLUPS needs to be set.
The switches should be wired from C and NC on the switch to S and - on the ramps.
Make sure if its a min endstop its on the min ramps pins and if its a max endstop it on the max ramps pins

Also Check your ramps is fully seated on the mega

I had done both.

Quote
Dust
If m119 shows its changing, but it triggered when its not and vice versa then change ENDSTOPS_INVERTING from true to false or false to true, ie opposite of what is it set to now.

No, my problem was that there was no change at all.

Quote
Dust
If your still having issues, you may have a faulty ramps or mega.

At 80 Euros to replace everything, it better not...

Quote
Dust
You can move the endstop to other pins reasonably easily, so if t just 1 dead pin, it can be bypassed. (by editing pins.h) more info later if you need it.

Okay, here's the thing : this morning, I restarted everything, launched Repertier and X started working for some reason. I hadn't done any marlin upload, it just works now. Z was still unresponsive.
So I did change pins. Z min is now on Xmax and everything works.

Thank you for the reply
Sorry, only registered users may post in this forum.

Click here to login