Welcome! Log In Create A New Profile

Advanced

Need some help.

Posted by regpye 
Need some help.
October 02, 2013 06:15AM
I have a problem with a Ramps 1.4 installation. Tried all I can to sort it out and almost there, however I have exhausted any ideas on what to do next.

This is a new install, all movements are working fine except for one. All movements are in the correct directions.
The problem is that the Y axis will not home. If I manually home the Y axis by moving the bed to the home position iy will trigger the endstop,
I am able to move the Y axis normally after that in both directions.
The endstops are all triggering as they should, it is just the Y axis will not move in either direction until it has been manually homed.

I am sure it is something simple, but it eludes me at this stage.

Any help would be most appreciated.


[regpye.com.au]
"Experience is the mother of all knowledge." --Leonardo da Vinci
Re: Need some help.
October 02, 2013 07:25PM
Tried inverting the Y axis end-stop in firmware? It sounds like the end-stop is working backwards (not moving when not triggered & moving then triggered).

Also, look at the output of M119, as this will tell you the end-stop status.
Re: Need some help.
October 02, 2013 10:24PM
Thanks for the reply Cefiar ,
Yes I have tried both of those suggestions and I also have tested the endstop status using M119 (I have a button in Pronterface to testing often for set-ups)
After manually homing, I am able to make the Y carriage move back and forth, but it will still not home. After leaving the home position, the endstop status returns to "open" and the Y axis will still move back and forth as normal.

This one has got me beat, I have assembled many printers and never had this happen before.


[regpye.com.au]
"Experience is the mother of all knowledge." --Leonardo da Vinci
Re: Need some help.
October 02, 2013 11:26PM
OK here is an update, more problems.
I made some changes and turned on MAX_ENDSTOPS again as I had turned it off as I don't usually use it.

Homing now works (sort of) in the Y axis.
I am able to send to the home position and trigger the endstop status as shown below.
Problem is that the Y motor doesn't turn off and if I turn off all motors and try to move the Y axis in either direction it will not move.
Reporting endstop status
x_min: open
x_max: TRIGGERED
y_min: TRIGGERED
y_max: TRIGGERED
z_min: open
z_max: open

If I manually move the Y axis after homing, I get the following stop statuis.
Reporting endstop status
x_min: open
x_max: TRIGGERED
y_min: open
y_max: TRIGGERED
z_min: open
z_max: open

After that I am not able to move in either direction in the Y axis. It will however home if I use the home button.
The X axis that has the same hardware and firmware settings is working fine.


[regpye.com.au]
"Experience is the mother of all knowledge." --Leonardo da Vinci
Re: Need some help.
October 03, 2013 12:56AM
Have you looked at the underside of the RAMPS board to see if there are any solder bridges?

The fact that when you have nothing triggered the X max and Y max stops are triggered to me indicates either you have a solder bridge, a bent pin, or your Arduino has issues.
Re: Need some help.
October 03, 2013 11:21PM
I have checked under the board now and found no problems. I checked all the pins too, all are straight.
I am sure that the problem will be in the code of the firmware, because I have had the Y axis moving at one stage and wouldn't home. Now it is homing and not moving after homing.
During the homing I have noticed that the motor does not stop after triggering the end stop as it should do. It eventually times out after a few moments, possibly the chip shuts it off due to overloading??
Although the Y stop shows that it has triggered, maybe there is something not right with the code for switching off the motor and registering that it has reached home??? Maybe something in pins.h ??


[regpye.com.au]
"Experience is the mother of all knowledge." --Leonardo da Vinci
Re: Need some help.
October 04, 2013 02:17AM
Are you using Sprinter?


_______________________________________
Waitaki 3D Printer
Re: Need some help.
October 04, 2013 07:33AM
Hi waitaki,
No I am using Marlin.
I have sort of proved the problem is in the coding, I have just finished building a second identical machine and programmed it with the same code.
Same problem exists, so somewhere I have pulled a boo boo in the firmware setup.

Section in configuration.h that has the relevant part for the stops;

//=============================Mechanical Settings===========================
//===========================================================================

// Uncomment the following line to enable CoreXY kinematics
// #define COREXY

// 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_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool Y_MIN_ENDSTOP_INVERTING = false; // 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 = false; // set to true to invert the logic of the endstop.
const bool Y_MAX_ENDSTOP_INVERTING = false; // 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 true
#define DISABLE_E false // For all extruders

#define INVERT_X_DIR false // 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 true // for Mendel set to false, for Orca set to true
#define INVERT_E0_DIR true // 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.



Relevant section from pin.h;

* Arduino Mega pin assignment
*
****************************************************************************************/
#if MOTHERBOARD == 3 || MOTHERBOARD == 33 || MOTHERBOARD == 34 || MOTHERBOARD == 35 || MOTHERBOARD == 77 || MOTHERBOARD == 67
#define KNOWN_BOARD 1

//////////////////FIX THIS//////////////
#ifndef __AVR_ATmega1280__
#ifndef __AVR_ATmega2560__
#error Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu.
#endif
#endif


// uncomment one of the following lines for RAMPS v1.3 or v1.0, comment both for v1.2 or 1.1
#define RAMPS_V_1_3
// #define RAMPS_V_1_0


#if MOTHERBOARD == 33 || MOTHERBOARD == 34 || MOTHERBOARD == 35 || MOTHERBOARD == 77 || MOTHERBOARD == 67

#define LARGE_FLASH true

#if MOTHERBOARD == 77
#define X_STEP_PIN 54
#define X_DIR_PIN 55
#define X_ENABLE_PIN 38
#define X_MIN_PIN 3
#define X_MAX_PIN 2 //-1 //Max endstops default to disabled "-1", set to commented value to enable.

#define Y_STEP_PIN 60
#define Y_DIR_PIN 61
#define Y_ENABLE_PIN 56
#define Y_MIN_PIN 14
#define Y_MAX_PIN -1 //15

#define Z_STEP_PIN 46
#define Z_DIR_PIN 48
#define Z_ENABLE_PIN 62 //63
#define Z_MIN_PIN 18
#define Z_MAX_PIN 19 //-1

#define Z2_STEP_PIN 36
#define Z2_DIR_PIN 34
#define Z2_ENABLE_PIN 30

#define E0_STEP_PIN 26
#define E0_DIR_PIN 28
#define E0_ENABLE_PIN 24

#define E1_STEP_PIN 36
#define E1_DIR_PIN 34
#define E1_ENABLE_PIN 30

#define SDPOWER -1
#define SDSS 53 //25
#define LED_PIN 13

#define BEEPER 33

#else

#define X_STEP_PIN 54
#define X_DIR_PIN 55
#define X_ENABLE_PIN 38
#define X_MIN_PIN 3
#define X_MAX_PIN 2

#define Y_STEP_PIN 60
#define Y_DIR_PIN 61
#define Y_ENABLE_PIN 56
#define Y_MIN_PIN 14
#define Y_MAX_PIN 15

#define Z_STEP_PIN 46
#define Z_DIR_PIN 48
#define Z_ENABLE_PIN 62
#define Z_MIN_PIN 18
#define Z_MAX_PIN 19

#define Z2_STEP_PIN 36
#define Z2_DIR_PIN 34
#define Z2_ENABLE_PIN 30

#define E0_STEP_PIN 26
#define E0_DIR_PIN 28
#define E0_ENABLE_PIN 24

#define E1_STEP_PIN 36
#define E1_DIR_PIN 34
#define E1_ENABLE_PIN 30

#define SDPOWER -1
#define SDSS 53
#define LED_PIN 13
#endif

#if MOTHERBOARD == 33 || MOTHERBOARD == 35 || MOTHERBOARD == 67
#define FAN_PIN 9 // (Sprinter config)
#else
#define FAN_PIN 4 // IO pin. Buffer needed
#endif

#if MOTHERBOARD == 77
#define FAN_PIN 8
#endif

#if MOTHERBOARD == 35
#define CONTROLLERFAN_PIN 10 //Pin used for the fan to cool controller
#endif

#define PS_ON_PIN 12

#if defined(REPRAP_DISCOUNT_SMART_CONTROLLER) || defined(G3D_PANEL)
#define KILL_PIN 41
#else
#define KILL_PIN -1
#endif

#if MOTHERBOARD == 35
#define HEATER_0_PIN 8
#else
#define HEATER_0_PIN 10 // EXTRUDER 1
#endif

#if MOTHERBOARD == 33 || MOTHERBOARD == 67
#define HEATER_1_PIN -1
#else
#define HEATER_1_PIN 9 // EXTRUDER 2 (FAN On Sprinter)
#endif

#define HEATER_2_PIN -1

#if MOTHERBOARD == 77
#define HEATER_0_PIN 10
#define HEATER_1_PIN 12
#define HEATER_2_PIN 6
#endif

#define TEMP_0_PIN 13 // ANALOG NUMBERING
#define TEMP_1_PIN 15 // ANALOG NUMBERING
#define TEMP_2_PIN -1 // ANALOG NUMBERING

#if MOTHERBOARD == 35
#define HEATER_BED_PIN -1 // NO BED
#else
#if MOTHERBOARD == 77
#define HEATER_BED_PIN 9 // BED
#else
#define HEATER_BED_PIN 8 // BED
#endif
#endif
#define TEMP_BED_PIN 14 // ANALOG NUMBERING



#ifdef NUM_SERVOS
#define SERVO0_PIN 11

#if NUM_SERVOS > 1
#define SERVO1_PIN 6
#endif

#if NUM_SERVOS > 2
#define SERVO2_PIN 5
#endif

#if NUM_SERVOS > 3
#define SERVO3_PIN 4
#endif
#endif

#ifdef ULTRA_LCD

#ifdef NEWPANEL
#define LCD_PINS_RS 16
#define LCD_PINS_ENABLE 17
#define LCD_PINS_D4 23
#define LCD_PINS_D5 25
#define LCD_PINS_D6 27
#define LCD_PINS_D7 29

#ifdef REPRAP_DISCOUNT_SMART_CONTROLLER
#define BEEPER 37

#define BTN_EN1 31
#define BTN_EN2 33
#define BTN_ENC 35

#define SDCARDDETECT 49
#elif defined(LCD_I2C_PANELOLU2)
#define BTN_EN1 47 //reverse if the encoder turns the wrong way.
#define BTN_EN2 43
#define BTN_ENC 32
#define SDSS 53
#define SDCARDDETECT -1
#define KILL_PIN 41
#elif defined(LCD_I2C_VIKI)
#define BTN_EN1 22 //reverse if the encoder turns the wrong way.
#define BTN_EN2 7
#define BTN_ENC -1
#define SDSS 53
#define SDCARDDETECT 49
#else
//arduino pin which triggers an piezzo beeper
#define BEEPER 33 // Beeper on AUX-4


[regpye.com.au]
"Experience is the mother of all knowledge." --Leonardo da Vinci
Re: Need some help.
October 04, 2013 09:09PM
I don't use Marlin but I noticed this ....

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

Are you sure this should be 1 and not -1?


_______________________________________
Waitaki 3D Printer
Re: Need some help.
October 05, 2013 12:23AM
Thanks for the feedback Waitaki .
Yes I am sure about that, it simply reverses the direction of the homing. I have been using that on all my other builds with no problem as I have the homing switch at that end.
I can say that I have now proved that the problem is somewhere in the coding because I have just finished assembling a third machine that has the same code and hardware. Same problem, Y will home, not turn off the motor and wont travel in either direction after homing.


[regpye.com.au]
"Experience is the mother of all knowledge." --Leonardo da Vinci
Re: Need some help.
October 05, 2013 04:46AM
I have recognized the same when hitting the ref switch on -y everything works fine - when doing the same with y the switch is ignored but
when moving the ref back by hand ( -y) is recognized in as a Zero position ( if you haven't disabled the "no steps below Zero config" I positioned my Ref Switch at the ymax end ( short before so I'm able to choose the park Position above and so home with - y ignoring it for Endsop ( just reference and applying an Offset pos on the axis - it works but is someway a Limitation when it comes to different designs!!! )

I 'm just at your step of Progress ( short before finishng the mechanics - and we will see what instalation of the Z Axis Steppers will bring

X&Y are fine and the first print with cold heat bed and without z movement is finished!
Re: Need some help.
October 05, 2013 05:32AM
I have changed some settings and now I have a different problem.
I can move in either direction in the Y axis, but I can't get it to home in Y. All other functions are perfect.

I really can't understand what is going on. The X axis is very similar in hardware and software settings, and yet there is no problem with the X axis.
The Z axis is using a hall effect sensor, so it is a little different, but giving no problems whatever.


[regpye.com.au]
"Experience is the mother of all knowledge." --Leonardo da Vinci
Re: Need some help.
October 05, 2013 05:34AM
Strange eh Reg?

I guess in your position I would blow Sprinter in there and see how that goes - maybe that would yield some clues.


_______________________________________
Waitaki 3D Printer
Re: Need some help.
October 05, 2013 06:05PM
Same Problem, but with the switches comming from the wrong side and they are ignored- ( does anyone know if there could be a trick with the Endstop Pullups setting to solve this problem???)

//===========================================================================
//=============================Mechanical Settings===========================
//===========================================================================

// Uncomment the following line to enable CoreXY kinematics
// #define COREXY

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

// 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 false // for Mendel set to false, for Orca set to true OK
#define INVERT_Y_DIR false // for Mendel set to true, for Orca set to false!!!OK
#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 //Here I wanted to use 1 instead in respect to the Parking Position - But then the switch is ignored
#define Y_HOME_DIR -1Here I wanted to use 1 instead in respect to the Parking Position - But then the switch is ignored

#define Z_HOME_DIR 1 //Here I wanted to use -1 instead in respect to the Parking Position - But then the switch is ignored


#define min_software_endstops false //If true, axis won't move to coordinates less than HOME_POS.
#define max_software_endstops false //If true, axis won't move to coordinates greater than the defined lengths below.
// Travel limits after homing
#define X_MAX_POS 170OK

#define X_MIN_POS 0OK

#define Y_MAX_POS 203OK

#define Y_MIN_POS 0OK

#define Z_MAX_POS 200OK

#define Z_MIN_POS 0OK


#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:
#define MANUAL_X_HOME_POS 85OK

#define MANUAL_Y_HOME_POS 184OK

#define MANUAL_Z_HOME_POS 4OK


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

// default settings

#define DEFAULT_AXIS_STEPS_PER_UNIT {78.7402,78.7402,261.8182*16,700*1.1,700*1.1} // default steps per unit for DIY
#define DEFAULT_MAX_FEEDRATE {100, 100,2, 25,25} // (mm/sec)
#define DEFAULT_MAX_ACCELERATION {5000,5000,100,10000,10000} // X, Y, Z, E maximum start speed for accelerated moves. E default values are good for skeinforge 40+, for older versions raise them a lot.

#define DEFAULT_ACCELERATION 2000 // X, Y, Z and E max acceleration in mm/s^2 for printing moves
#define DEFAULT_RETRACT_ACCELERATION 2000 // X, Y, Z and E max acceleration in mm/s^2 for r retracts

Edited 1 time(s). Last edit at 10/05/2013 06:06PM by Optimist.
Re: Need some help.
October 05, 2013 07:23PM
In the first it seemed that the problem would just occur in one direction so I thought it would be a good idea to flip the stepper connectors to invert the direction but as soon as I invert the axis in software or change the homing direction the problem occurs again!
Re: Need some help.
October 08, 2013 05:10AM
I fixed my problem.
Used a later version of Marlin and re-programmed.
Had to manually reverse the Y axis as it wouldn't work properly by changing the directions in software, so I simply flipped the motor leads over.
All working well now.


[regpye.com.au]
"Experience is the mother of all knowledge." --Leonardo da Vinci
Re: Need some help.
October 09, 2013 01:14PM
Could you please tell which version of Marlin you have and where to download???
Re: Need some help.
October 09, 2013 08:40PM
I downloaded from this site Marlin


[regpye.com.au]
"Experience is the mother of all knowledge." --Leonardo da Vinci
Sorry, only registered users may post in this forum.

Click here to login