Novice in DIY 3d Printer. X, Y and Z homing and calibration


After I have finished building my first DIY 3d printer which is very similar to Felix Printer because I like the design, I decided to use the Repetier Firmware + Repetier-Host for the first time but I'm having trouble homing and calibrating the X, Y and Z axis. I can move these axis left and right(X), forward and backward(Y), up and down(Z) using Manual Control but I'm so confused how to set the Home position and calibrate these axis. I am also lost on how to properly use the Endstops. For much better explanation of how does my printer looks like and the current position of my endstops, here I provided some images to look at.

This is my X axis endstop located at left (It's triggered), I have also an endstop on the right side:

This is the Y axis endstop (It's triggered):

Z axis endstop at the bottom (This is the endstop that is working or enabled):

Z axis endstop at the top (This is disabled even though it's triggered, I have switch the endstop wires on my RAMPS 1.4):

Other images of the printer:

These are my current EEPROM settings:

The value of X and Y axis steps per mm is based on the Belt Calculator as well as the Z axis Lead Screw (M8).
Here is my Configuration settings of Endstops from the Configuration.h in the arduino sketch.
/* By default all endstops are pulled up to HIGH. You need a pull-up if you
use a mechanical endstop connected with GND. Set value to false for no pull-up
on this endstop.
#define ENDSTOP_PULLUP_X_MIN false
#define ENDSTOP_PULLUP_Y_MIN false
#define ENDSTOP_PULLUP_Z_MIN false
#define ENDSTOP_PULLUP_X_MAX true // true
#define ENDSTOP_PULLUP_Y_MAX true // true
#define ENDSTOP_PULLUP_Z_MAX false

//set to true to invert the logic of the endstops
#define ENDSTOP_X_MIN_INVERTING true // true
#define ENDSTOP_Y_MIN_INVERTING true // true
#define ENDSTOP_Z_MIN_INVERTING true // true
#define ENDSTOP_Z_MAX_INVERTING true // true

// Set the values true where you have a hardware endstop. The Pin number is taken from pins.h.

#define MIN_HARDWARE_ENDSTOP_Z false // false
#define MAX_HARDWARE_ENDSTOP_Z true // true

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

// Disables axis when it's not being used.
#define DISABLE_X false
#define DISABLE_Y false
#define DISABLE_Z false
#define DISABLE_E false
/* If you want to keep z motor running on stepper timeout, remove comments below.
  This may be useful if your z bed moves when motors are disabled. Will still
  turn z off when heaters get also disabled. 

// Inverting motor direction. Only in case of pure cartesian printers, this
// is also the axis you invert!
#define INVERT_X_DIR true
#define INVERT_Y_DIR true
#define INVERT_Z_DIR true

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

Could anyone please tell me the correct settings for my endstop, I have read and watched lots of tutorial but none of them helped me to get over my problem, I have spent quite some time trying to figure out how to properly calibrate the X, Y and Z axis until I decided to post here in Repetier Forum.

One more thing is, when the X axis triggered the left endstop and I try to send "G28 X0" or Home, the X is set to 0.00. When I try to send again a G-Code for example "G28 X70", the motor moves to the right but the movement is too small as 1mm, it's like nothing happens but I heared the sound of the motor. Same thing in Z axis, if I try to send "G28 Z100", there's no movement but just a very long beep then nothing happens. If someone here could please point me out to the right way of calibrating the X, Y and Z axis, I will highly appreciate that.

I'm using Arduino Mega2560 + RAMPS 1.4 Motherboard.

Thank you so much guys, have a nice day.

Sign In or Register to comment.