Welcome! Log In Create A New Profile

Advanced

[SOLVED] X & Y don't work ONLY during printing

Posted by paul.crown 
[SOLVED] X & Y don't work ONLY during printing
October 10, 2015 01:14AM
Greetings,

I have constructed my first Prusa i3 Rework. I used the Ardino IDE to upload Marlin firmware. Using Prontoface, I can move X, Y, and Z 1, 10, and 100 mm. I can home all axis and the end-stops work properly. I can heat up the extruder and manually extrude 5 mm.

When I load an STL or gcode file and select print, the extruder goes to 0,0,0 and extrudes PLA 1.75mm filament. Z axis moves while it is extruding, but not X or Y axis, other than to go to 0,0.

In Summary: everything works manually with Prontoface, but when printing after going to 0,0,0 only Z axis moves.

Can anyone give me an idea what disables X and Y differently when printing, but allows them to work fine manually?

Thank you.

Edited 1 time(s). Last edit at 10/10/2015 01:25PM by paul.crown.
Re: X & Y don't work ONLY during printing
October 10, 2015 03:14AM
That problem is related to configuration mismatch.
The printer ignores XY-commands, because they collide with software_min/max_endstop = true .
In other words, you have to check the endstop logic and the meaning in firmware, so that the printer doesn´t "think" it's printing out of boundaries anymore.

Are your endstops mounted as min or max? Where is 0,0,0 on your bed?
Are your endstops configured in firmware as min or max? Otherwise the output is mirrored.

If you change an endstop logic, don't forget to plug the switch in the right port on RAMPS.
-Olaf
Re: X & Y don't work ONLY during printing
October 10, 2015 11:55AM
Thanks for your reply. Endstop logic mismatch makes sense as the source of the problem, I was convinced that it is correct since manual movements in Prontoface worked.

Quote
o_lampe
Are your endstops mounted as min or max? Where is 0,0,0 on your bed?
Are your endstops configured in firmware as min or max?

X endstop is max; y endstop is max; z endstop is min.

To test this I select X home; and the extruder is carried to the right and stops within 5 mm of the edge of the bed. I now can't move X +1 +10 or +100; I can only move X -1 -10 or -100. In fact, I can move X -100 twice, then it stops within 5 mm of the edge of the bed and won't move any further. Now, I can move X +1 +10 or +100 in which case X +100 twice brings back to home. I repeat this test in like manner with Y.

0,0,0 on my bed is x is max; y is max, z is min; front right corner.

Hmmm...I'm starting to see; should 0,0,0 be the center of the bed?

Firmware settings:

// 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
#define INVERT_Y_DIR false    // 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 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.

// Travel limits after homing
#define X_MAX_POS 0
#define X_MIN_POS -170
#define Y_MAX_POS 0
#define Y_MIN_POS -170
#define Z_MAX_POS 180
#define Z_MIN_POS 0

...

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

I changed the following, and at least got the printing to move to the center of the board.

// 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 85
#define MANUAL_Y_HOME_POS 85
#define MANUAL_Z_HOME_POS 0

Now when I select print, the extruder moves all the way to the right, the bed moves all the way back, and then the extruder drops all the way down to just above the bed; then in a quick motion the extruder moves back to the left halfway, and the bed moves forward halfway. Printing then begins in the center of the board, but only Z is moving; no X or Y movement.

Can you suggest what of my configuration above is incorrect regarding X and Y endstops?

Thank you.
Re: X & Y don't work ONLY during printing
October 10, 2015 12:06PM
Where is your endstops located? What is the start of your gcode?

Edited 1 time(s). Last edit at 10/10/2015 12:20PM by Putzer.
Re: X & Y don't work ONLY during printing
October 10, 2015 12:10PM
Quote
Putzer
Where is your endstops located?

X = max; right of the bed.
Y = max; behind the bed.
Z = min; bed surface.
Re: X & Y don't work ONLY during printing
October 10, 2015 12:25PM
Y=max probably be min and Y home direction -1. Max home position should probably be positive for both x and y.
Re: X & Y don't work ONLY during printing
October 10, 2015 12:30PM
Obviously, o_lampe is correct.

I turned off endstop checking (dangerous, I know), and I can now print.

#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.

So, then, I am asking for how I should have configured the firmware for my setup (with endstops enabled)?

Thanks for any input.
Re: X & Y don't work ONLY during printing
October 10, 2015 01:24PM
Putzer,

Thanks. That got it. I moved X and Y to min, and had to invert X and Y directions; then I could use positive numbers for X and Y Max.

#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 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.

// Travel limits after homing
#define X_MAX_POS 170
#define X_MIN_POS 0
#define Y_MAX_POS 170
#define Y_MIN_POS 0
#define Z_MAX_POS 180
#define Z_MIN_POS 0

Thanks again.
Re: X & Y don't work ONLY during printing
October 10, 2015 06:46PM
Now make sure you aren't printing mirrored :-) when I had this issue I did similar to you then later figured out I was printing mirrored on X.


Newbie with Folgertech 2020 i3.
Re: X & Y don't work ONLY during printing
October 11, 2015 03:30AM
Good to hear you got it sorted!

For future readers:
The 0,0,0 position can only be the front left or the rear right edge of a Cartesian print bed.

Many people choose the rear right edge, because then the printed part is easier to access when the bed is homed.
-Olaf
Sorry, only registered users may post in this forum.

Click here to login