First 3d Printer Homing Problemdrinking smileydrinking smiley
February 04, 2016 11:50PM
Hello All,

I just put together my first 3d Printer. A Micromake delta 3d printer with the linear slide rails and a heated bed.

I copied the Configuration.h file from the Micromake thread and its attached.

Every time I home the printer two of the towers home fine (X and Z) and then one (X) just skips on the stepper when it gets to the top. Because of this I really can't move onto any of the next steps like bed leveling or even do a test print since it doesn't know where the bed is.

Can you please help???...

Some notes:
Regular ol' mechanical endstops
Using Repeater Host on a Mac
I've used "M119"s to verify that the board sees the stops being switched (when they're not pressed the feedback says L and when they are pressed they say H)

It says this right now - (with all three towers maxed out)
< 10:47:25 PM: x_max:H y_max:H z_max:H
- but when it homed the x kept trying and trying to go higher.

Thanks for the help!! I'm dying to get this thing going!
Paul

Edited 2 time(s). Last edit at 02/05/2016 12:45AM by PaulM.
Attachments:
open | download - Configuration.h (25.3 KB)
Anonymous User
Re: First 3d Printer Homing Problemdrinking smileydrinking smiley
February 05, 2016 04:00AM
You should start with checking endstop-status using M119 G-Code. - Maybe one of your Switches is wired wrong, defective, or configured wrong (sorry your configuration.h is missing line breaks - so it is nearly impossible to read) - Take Special care, if you might have max and min endstops mixed up!

Edited 2 time(s). Last edit at 02/05/2016 04:02AM by Sir_Death.
Re: First 3d Printer Homing Problemdrinking smileydrinking smiley
February 05, 2016 02:16PM
Thanks Sir Death,

I should have double checked the attachment. My bad.

So I spent a lot more time with M119s and I found out that I did have one endstop a smidge higher than the other two, but it was clicking. Adjusting it made me accidentally come on an odd scenario. When I adjusted the end stop that was given me a hard time and then homed another axis ran into the same issues. (Mash the endstop and keep going and going), but this one had been working fine every other time, but this got me to thinking if it was just an issue of timing. I did an extra couple M119s to confirm that all the towers endstops were in fact still working. I turned off power to the steppers and manually/physically adjusted the extruder such that when homing the each endstop would hit at a different time, first one then the other then the last. and OMG!! it finally stopped. It homed correctly!! I can't believe I hadn't run into this scenario before, but still.

Is there a setting that I have wrong or is there a way to home in a way that basically does one tower at a time??

Here's the segment of my configuration.h

//===========================================================================
//=============================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 = false; // 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 = false; // 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 false
#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 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 true // 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 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 90
#define X_MIN_POS -90
#define Y_MAX_POS 90
#define Y_MIN_POS -90
#define Z_MAX_POS MANUAL_Z_HOME_POS
#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:
// 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 267.59 // 272.79 // For delta: Distance between nozzle and print surface after homing.

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

// default settings

#define DEFAULT_AXIS_STEPS_PER_UNIT {100, 100, 100, 150}
#define DEFAULT_MAX_FEEDRATE {200, 200, 200, 200} // (mm/sec)
#define DEFAULT_MAX_ACCELERATION {9000,9000,9000,9000} // 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 retracts

// Offset of the extruders (uncomment if using more than one and relying on firmware to position when changing).
// The offset has to be X=0, Y=0 for the extruder 0 hotend (default extruder).
// For the other hotends it is their distance from the extruder 0 hotend.
// #define EXTRUDER_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
// #define EXTRUDER_OFFSET_Y {0.0, 5.00} // (in mm) for each extruder, offset of the hotend on the Y axis

// The speed change that does not require acceleration (i.e. the software might assume it can be done instantaneously)
#define DEFAULT_XYJERK 20.0 // (mm/sec)
#define DEFAULT_ZJERK 20.0 // (mm/sec)
#define DEFAULT_EJERK 20.0 // (mm/sec)


Thanks all for your help. I feel like I'm so close to getting going.

Paul
Re: First 3d Printer Homing Problemdrinking smileydrinking smiley
February 05, 2016 06:20PM
Nothing looks particularly out of place in the configuration.h to me.

But I'm wondering if there was either a typo in your first description, or else if that's the problem. You said:

Quote
PaulM
Every time I home the printer two of the towers home fine (X and Z) and then one (X) just skips on the stepper when it gets to the top.

So did you mean to put a "Y" in there anywhere, or is it the X and Z that home, with the X then starting up again?

If the latter, I wonder if your Y axis motor pins are mis-defined, so that it runs the X axis instead of the Y.

Maybe check your pins.h and see if both X and Y are defined to the same pins?
Re: First 3d Printer Homing Problemdrinking smileydrinking smiley
February 07, 2016 02:27PM
Thanks Maso, You're right, it was a typo. The Y was reading correctly. What I think was happening was that my carriage wasn't hitting my endstop switch reliably, but my finger was. So using the M119s showed correct functionality it was my carriage not adjusting correctly. I finally understood to adjust the endstop so the carriage hits it better and now it's finally working.

Thanks all for the help. and... I'm a dummy!! Haha.

Paul
Sorry, only registered users may post in this forum.

Click here to login