Welcome! Log In Create A New Profile

Advanced

Mirror Imaged Printsad smiley

Posted by heli_madken 
Mirror Imaged Printsad smiley
July 07, 2017 07:26AM
New to this forum so big hello!

Wonder if you could help me, for fun I have designed and built my own 3D printer using a Ramps 1.4, latest Marlin firmware and Repetier host. I am relatively new to Marlin. The printer has the bed moving in the X direction and the extruder moves along Y

Everything went together exceptionally well with few issues and my first calibration prints were great in terms of quality and speed.

So on to my first real print which is the arm for a spool holder I designed.

Again everything appeared to go well until I realised the print was a mirror image of the part. Mirroring the object in Repetier before printing gives me a perfect part.

So I guess both X and Y axis are reversed so tried both inverting the motors in firmware (eg. INVERT_X_DIR) and by swapping over the connection.

Either way I have a problem in that homing ceases to work, currently it works seamlessly.

Changing the direction of the motor simply sends it in the opposite direction to the endstop switch

Changing - #define X_MIN_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop. to 'True' makes the motor move a few mm and stop, I am guessing this simply changes COM to signal and NC to ground

Changing - #define X_HOME_DIR -1 to 1 I get an error message that wants me to un-comment - #define USE_XMAX_PLUG and then I guess it is looking for a signal interrupt on this board connection so it doesn't work..

This is how the relevant sections in configuration.h look at present -

#define USE_XMIN_PLUG
#define USE_YMIN_PLUG
#define USE_ZMIN_PLUG
//#define USE_XMAX_PLUG
//#define USE_YMAX_PLUG
//#define USE_ZMAX_PLUG

#define X_MIN_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Y_MIN_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Z_MIN_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define X_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Y_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Z_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Z_MIN_PROBE_ENDSTOP_INVERTING false // set to true to invert the logic of the probe.

#define INVERT_X_DIR true
#define INVERT_Y_DIR true
#define INVERT_Z_DIR false

#define X_HOME_DIR -1
#define Y_HOME_DIR -1
#define Z_HOME_DIR -1

#define X_MIN_POS 0
#define Y_MIN_POS 0
#define Z_MIN_POS 0
#define X_MAX_POS 230
#define Y_MAX_POS 230
#define Z_MAX_POS 210

#define MIN_SOFTWARE_ENDSTOPS
#define MAX_SOFTWARE_ENDSTOPS

Looking around a lot of forums talk about #define ENDSTOPS_ONLY_FOR_HOMING as a solution but this setting doesnt seem to be in this version of Marlin

Short of physically moving the endstops to the other end of each axis (I could do but it will be a lot of work) is there anything I am missing

Any help would be appreciated

Ken
Re: Mirror Imaged Printsad smiley
July 07, 2017 07:53AM
Trying to answer my own question and found this post -

Quote
0backbone0
Hi,

you don't have to move the Endstop.
If you invert the Axis, and changed the Homing Direction, you just have to change the wiring on the Ramps board.
There are actualy two set's of Pins for each Endstop, one for Min, and one for Max. Simply switch it to opposite one and you
should be good to go.

So is it a matter of -

//#define USE_XMIN_PLUG
//#define USE_YMIN_PLUG
#define USE_ZMIN_PLUG
#define USE_XMAX_PLUG
#define USE_YMAX_PLUG
//#define USE_ZMAX_PLUG

#define INVERT_X_DIR false
#define INVERT_Y_DIR false
#define INVERT_Z_DIR false

#define X_HOME_DIR 1
#define Y_HOME_DIR 1
#define Z_HOME_DIR -1

#define X_MIN_POS 230 (or perhaps -230?)
#define Y_MIN_POS 230 (or perhaps - 230?)
#define Z_MIN_POS 0
#define X_MAX_POS 0
#define Y_MAX_POS 0
#define Z_MAX_POS 210

And physically connecting the endstops to the max pins
Re: Mirror Imaged Printsad smiley
July 08, 2017 01:54AM
Hi,

Still struggling with this nothing seems to be working to resolve the issue, am I going to have to move the endstops?

Thanks for any help
Re: Mirror Imaged Printsad smiley
July 08, 2017 02:52AM
You need to define your +X and +Y directions to give a right hand coordinate system. This means that looking down from the top, the +Y direction is 90 degrees anticlockwise from the +X direction. The usual choice is to make X=0 Y=0 the front left of the bed, then +X is to the right and +Y is to the back. Once you have made this choice, that defines which is your X motor and which is your Y motor, similarly which are your X and Y endstop switches and whether they are at the low or high end of their axes. Then all you need to do is connect them appropriately and configure the firmware correctly.



Large delta printer [miscsolutions.wordpress.com], E3D tool changer, Robotdigg SCARA printer, Crane Quad and Ormerod

Disclosure: I design Duet electronics and work on RepRapFirmware, [duet3d.com].
Re: Mirror Imaged Printsad smiley
July 08, 2017 05:21AM
"The printer has the bed moving in the X direction and the extruder moves along Y"

an interesting configuration

You don’t mention where you endstop physically are....

firstly get direction of movement correct.
Since X the bed moves this is the most counter intuitive.
When you click X+ the bed should move left (ie head moves right relative to the bed)
When you click X- the bed should move right (ie head moves left relative to the bed)

On Y the extruder moves so..
Y+ should move the extuder towards the back)
Y- should move the extruder towards the front)

Play with changing the following to true, until its correct
#define INVERT_X_DIR false
#define INVERT_Y_DIR false

Now tell it where you endstops are..

X endstops
If its at the left it a max endstop use #define X_HOME_DIR 1 and check its plugged into the max endstop plug
if its at the right its a min endstop use #define X_HOME_DIR -1 and check its plugged into the min endstop plug

Y endstops,
If it at the front its a min endstop use #define Y_HOME_DIR -1 and check its plugged into the min endstop plug
If it at the back its a max endstop use #define Y_HOME_DIR 1 and check its plugged into the max endstop plug

edit your
#define USE_XMIN_PLUG
#define USE_YMIN_PLUG
#define USE_ZMIN_PLUG
//#define USE_XMAX_PLUG
//#define USE_YMAX_PLUG
//#define USE_ZMAX_PLUG

to match what your actually using.

Edited 1 time(s). Last edit at 07/08/2017 05:24AM by Dust.
Re: Mirror Imaged Printsad smiley
July 08, 2017 05:32AM
Thanks for your help Dust and DC42 much appreciated

Looking at the printer from the front the X endstop is on the right and the Y at the rear

One question, in Repetier Host you can invert the controls via the printer configuration screen, I take it these should remain unchecked to complete the test?
Re: Mirror Imaged Printsad smiley
July 08, 2017 09:51AM
Nearly there, axis are moving in the correct direction and home.

I think only the Y axis was reversed, so I have connected the endstop to the Max endstop pins and my configuration looks like this -

#define USE_XMIN_PLUG
//#define USE_YMIN_PLUG
#define USE_ZMIN_PLUG
//#define USE_XMAX_PLUG
#define USE_YMAX_PLUG
//#define USE_ZMAX_PLUG

#define INVERT_X_DIR false
#define INVERT_Y_DIR true
#define INVERT_Z_DIR true

#define X_HOME_DIR -1
#define Y_HOME_DIR 1
#define Z_HOME_DIR -1

#define X_MIN_POS 0
#define Y_MIN_POS 0
#define Z_MIN_POS 0
#define X_MAX_POS 230
#define Y_MAX_POS 230
#define Z_MAX_POS 210

What happens now is, after homing if I try to bring the Y carriage forward (- direction) nothing happens, however if I go backwards (+ direction) effectively against the end stop nothing happens except the readout for the Y position responds and reads 50mm for example, then I can move the carriage forward by the same amount.

Its as if the bed is at position 0,230,0 in some way, I have tried changing #define Y_MIN_POS 0 in various ways eg 230 or -230 but this doesnt work
Re: Mirror Imaged Printsad smiley
July 08, 2017 10:27AM
I think I have it, in repetier itself under Printer Settings - Printer Shape you can specify Home positions, I have 0,230,0 and now everythign homes and moves as it should, just set off a print and I 'think' it is coming out as it should but will know more later, thank you so much for all your help

I cant pretend to understand what i have done though but I am learning grinning smiley
Sorry, only registered users may post in this forum.

Click here to login