Welcome! Log In Create A New Profile

Advanced

printing upside down and back to front

Posted by regpye 
printing upside down and back to front
April 07, 2013 01:05AM
Please help anyone if you know how to correct this problem.

I just finished building a machine and it is working fine, except that I noticed that it is printing upside down and back to front.
With most items they are symmetrical, so it goes unnoticed and doesn't matter, BUT, I went to print a handed part and that is when I found the problem.

Checking Printerface which I use for controlling the printer, all movements are correct using the manual control and the homing is in the lower left hand corner same as it shows on the screen. All axis move in the correct directions.
When I make a handed part (I used a letter R for a test) the part shows correctly in Pronterface, but when it is printed it is an upside down mirror image of the letter R.

I have tried changing the physical direction of the motors and reversing in the firmware. Changed the location of the endstops, reversing the homing positions and used every conceivable combination I can think of the correct the problem.

Can anyone steer me in the right direction please.??
Re: printing upside down and back to front
April 07, 2013 03:45AM
Lets be clear here...
If you printed lets say, the Eiffel tower, would it print with the pointed bit on the glass and the base in the air?
Re: printing upside down and back to front
April 07, 2013 03:55AM
Actually Yes, that would be correct., if I am printing a letter R, the top of the R would be facing the lower edge of the bed and the leg of the R would be facing the left hand side rather than the right hand side (if viewed as the letter R should be viewed).
In the print layout window of Pronterface, the letter R would be showing the correct way up and also the correct way around, just like this R
The best way I can describe it would be that if I were able to turn the print bed over and print, it would be the right way around.

Edited 1 time(s). Last edit at 04/07/2013 04:08AM by regpye.
Re: printing upside down and back to front
April 07, 2013 05:24AM
Here are some shots of the problem, hope it makes it a bit clearer.

The actual print (very poor quality photo, but it shows the problem)
What is printed

How it looks in Pronterface
Re: printing upside down and back to front
April 07, 2013 05:59AM
Hi,

You need to tell us more, what firmware you are using.
Post your settings (firmware settings)
This way someone may be able to help you.

Regards
Jan


======================================
[3dprinting4u.wordpress.com]
Re: printing upside down and back to front
April 07, 2013 06:09AM
//===========================================================================
//=============================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 = false; // set to true to invert the logic of the endstops.
const bool Y_ENDSTOPS_INVERTING = false; // 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 true
#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 false // for Mendel set to true, for Orca set to false ---- changed from false must reverse wiring on Y motor
#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 205
#define X_MIN_POS 0
#define Y_MAX_POS 205
#define Y_MIN_POS 0
#define Z_MAX_POS 130
#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:
#define MANUAL_X_HOME_POS 0
#define MANUAL_Y_HOME_POS 0
#define MANUAL_Z_HOME_POS 0

//// 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, 4*60, 0} // set the homing speeds (mm/min)

// default settings

#define DEFAULT_AXIS_STEPS_PER_UNIT {80,80,2560,120.5212} // 53.333 for 5xl 12T, 80 fpr GT2 22T
#define DEFAULT_MAX_FEEDRATE {500, 500, 5, 45} // (mm/sec)
#define DEFAULT_MAX_ACCELERATION {9000,9000,100,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 3000 // X, Y, Z and E max acceleration in mm/s^2 for printing moves
#define DEFAULT_RETRACT_ACCELERATION 3000 // X, Y, Z and E max acceleration in mm/s^2 for r retracts

//
#define DEFAULT_XYJERK 20.0 // (mm/sec)
#define DEFAULT_ZJERK 0.4 // (mm/sec)
#define DEFAULT_EJERK 5.0 // (mm/sec)

//===========================================================================
Re: printing upside down and back to front
April 07, 2013 10:31AM
#define X_HOME_DIR -1
#define Y_HOME_DIR 1
#define Z_HOME_DIR -1

This is weird, where are your end-stops fitted?
It might also help to post what printer you build, and what guide you used (if any).
Re: printing upside down and back to front
April 07, 2013 01:26PM
This happens a lot, your Y axis is inverted. Either set INVERT_Y_DIR or reverse the motor wiring.

You will then find your endstop is in the wrong place winking smiley So move your endstop OR set Y_HOME_DIR to -1.
Re: printing upside down and back to front
April 07, 2013 06:45PM
Thanks bobc and banjer for the help.

I have tried all of that and I have put an endstop at each end to make it easier to swap while doing testing. I have also done the same on the X axis too. Have inverted in the settings and also reversed the motor wiring a few times.
If I get the print the correct way about then the movements in Pronterface are wrong. (up is down and down is up on the Y axis)

I will go through it all again today and try your instructions again to make sure and then report back.

This is more than weird, it is frustrating.
Machine is based on a Prusa Air2, with a very lot of build changes, but the general layout is the same.
Now got endstops at each end of the X and Y axis so that I don't have to keep moving them all the time, just swap at the Printrboard as needed.
Re: printing upside down and back to front
April 07, 2013 07:10PM
I think when commissioning a machine for the first time, its best to adopt a simplistic approach to get up and running. Having multiple end stops etc will just complicate things.
Re: printing upside down and back to front
April 07, 2013 07:18PM
The multiple endstops were only added after the problem was found. They were added to save time in swapping things around all the time, because I have been trying to work this problem out for a while now.

No-one seems to know how to fix it yet, as I have tried just about all I can think of to get both the machine printing correctly and also have the movements in Pronterface work correctly at the same time.

Edited 1 time(s). Last edit at 04/07/2013 07:43PM by regpye.
Re: printing upside down and back to front
April 07, 2013 08:06PM
Set the machine up so that it prints correctly, then describe exactly what motions you get from pronterface vs what motions you expect.

One common source of confusion is that the Y table moves backwards, since the table is moving relative to the head rather than the head moving relative to the work.

Beyond that, if the machine is printing correct parts then X and Y are either both correct or both wrong.
Re: printing upside down and back to front
April 07, 2013 08:11PM
Using the following configuration the print is the correct way up and not a mirror image. That part is now working fine, BUT, Pronterface now has the -Y and +Y back to front, up is down, down is up.

#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 ---- changed from false must reverse wiring on Y motor
#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

I really need to sort this out because it is very confusing and also dangerous to have the machine respond in the wrong direction from Pronterface.

Any other ideas anyone??
Re: printing upside down and back to front
April 07, 2013 08:16PM
i think you need to look at it from a tool head perspective, which is kind of hard when the tool head does not move but is stationary at least on y axis. the part below is in reference to the tool head moving. so if the table moves down, the tool head moves up. does this help at all?
Re: printing upside down and back to front
April 07, 2013 08:24PM
The print is now correct. The movements in the Pronterface window are not correct.
X axis is OK and works the way it shows on the screen. The Y axis is no OK, it works opposite to the screen.

It seems that I either have the print mirrored or the Y axis in the control software is backwards. Don't seem to be able to get both correct at the same time.

There has to be a solution.
Re: printing upside down and back to front
April 07, 2013 08:41PM
does the final part preview look the same on pronterface as your printed part?
Re: printing upside down and back to front
April 07, 2013 08:43PM
Yes, the part shown on the screen and the part printed on the print bed are identical. No problem there.
It is just that the movements in Pronterface work backwards on the printer for the Y axis.
Re: printing upside down and back to front
April 07, 2013 09:02PM
Thanks Andrew,
I have the machine setup and printing correctly, but Pronterface operates backwards on the Y axis.
The Y axis moves in a negative direction when the Y positive is pressed and in a positive direction when the negative button is pressed.
Re: printing upside down and back to front
April 07, 2013 10:13PM
Printer and software appear to be working as they should. Sorry to recommend a class on cnc programming may be of help here. There is a method in the way tool-head motion is described. It is always the tool head that moves in software. Pronterface is showing you the way the tool head moves to the part.
Re: printing upside down and back to front
April 08, 2013 12:01AM
Thanks jamesdanielv ,
Going by what you are saying, the X axis is wrong then?? Because that moves in the direction that the arrows show in Pronterface, but the Y axis moves the opposite way. Doesn't make sense to me. Part prints OK and is the right way up.
Re: printing upside down and back to front
April 08, 2013 12:32AM
regpye Wrote:
-------------------------------------------------------
> The print is now correct. The movements in the
> Pronterface window are not correct.
> X axis is OK and works the way it shows on the
> screen. The Y axis is no OK, it works opposite to
> the screen.
>
> It seems that I either have the print mirrored or
> the Y axis in the control software is backwards.
> Don't seem to be able to get both correct at the
> same time.
>
> There has to be a solution.

Pronterface is showing the position of the motion of the hot-end relative to the print bed. Not the motion of the bed its self.

It took me a while to figure this out on my first machine also.

Think of the centre of the circle as the hot-end tip.

When you press up, the hot-end moves up the plate, (towards the back). As it is the bed that moves in a Prusa and other designs, it had to move down, (towards the front) to position the head where you said.

On printers where the bed moves down (Z) and the head moves x/y it looks as expected.

Hope this helps.

Edited 1 time(s). Last edit at 04/08/2013 12:34AM by Komb'.


Komb'
Glankonian Protoforms
Re: printing upside down and back to front
April 08, 2013 01:04AM
OK,
I think I understand now.
It is setup correctly (even though confusing)
The bed doesn't move for the X axis, so it appears to move in the right direction. The Y axis the bed moves to suit the position of the head, so that is correct as well, but appears wrong when viewing it from the control window. Maybe the control window in Pronterface should be changed to reflect this?? (just a thought)

Thanks all you guys for the help.
Re: printing upside down and back to front
April 08, 2013 01:27AM
it would be nice if the fact page on pronterface explained this.
Sorry, only registered users may post in this forum.

Click here to login