Welcome! Log In Create A New Profile

Advanced

Homing procedures with Marlin / Pronterface / Ramps 1.4?

Posted by Nigel_NZ 
Homing procedures with Marlin / Pronterface / Ramps 1.4?
April 28, 2012 08:59PM
Hi, I'm in the process of setting up my machine using Marlin firmware, Pronterface / Slicer,

Arduino Mega 1280 with Ramps 1.4 board wired to Gecko G251 stepper motor drivers
Nema 23 3A Stepper motors on X,Y,Z and E axes

What I'm trying to do at the moment is configure the homing procedure and limit switches. I previously had Sprinter firmware and in Pronterface I could click Z, Y, or Z home buttons and the machine would home itself at each limit switch. In the Marlin firmware clicking the same buttons all that seems to happen is that the zero point becomes the the current position.

How do i run a similar homing procedure to the Sprinter firmware? Or can someone point me in the right direction for some information about the homing procedure?


Cheers,

Nigel.
Re: Homing procedures with Marlin / Pronterface / Ramps 1.4?
April 28, 2012 10:24PM
does this sound like a similar problem?
Quote
me
I am having the same issues having switched from Sprinter to Marlin. When I click home it moves and immediately stops. I have opto stops with a gen 6 electronics, I have tried putting cardboard inbetween sensors, ive tried switching the logic of the opto stops....

In pronter face my positive direction is correct but home and negative are not working. If you got it to work, can you possibly post your "mechanical" section in the configuration.h file so I can compare? I have speant hours and am stumped by this.

Even though I had gen six electronics and opto stops the issue might be similar. It sounds like you are having the same problem I did. My issues were the contsantboolendstopinverting, and the home direction. You might have to play with them to be a little different since every printer is a little different then other ones. It took me a while of playing with these settings to get it to work right. If this isnt your issue someone else will have to step up smiling smiley

Sending M119 in pronterface is useful too, it will tell the positions of the limit swites (L or H) good luck!

// Endstop Settings
//#define ENDSTOPPULLUPS // Comment this out (using // at the start of the line) to disable the endstop pullup resistors

// 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 = false; // 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 true
#define DISABLE_Y true
#define DISABLE_Z true
#define DISABLE_E true

#define INVERT_X_DIR false // 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 false // 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 false //If true, axis won't move to coordinates greater than the defined lengths below.
#define X_MAX_LENGTH 180
#define Y_MAX_LENGTH 180
#define Z_MAX_LENGTH 40

// The position of the homing switches. Use MAX_LENGTH * -0.5 if the center should be 0, 0, 0
#define X_HOME_POS 0
#define Y_HOME_POS 0
#define 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 {20*60, 20*60, 1*60, 0} // set the homing speeds (mm/min)

// default settings


Ryan
Quality Engineer & Hobbyist
thingsandtrains.blogspot.com
Re: Homing procedures with Marlin / Pronterface / Ramps 1.4?
April 30, 2012 11:53AM
I'm using the same combination and made some observations:
- In the marlin firmware on powerup, it assumes it is at 0,0,0. This means you can move in the + direction off this origin, but can move below it, even if you haven't hit limit switches.
- The home buttons in pronterface (I'm using the experimental windows build) will move the printer into the -ve space until it hits the limit switches, which resets the zero point (origin).

What version of pronterface are you using?

-Rob A>
Re: Homing procedures with Marlin / Pronterface / Ramps 1.4?
May 21, 2012 04:44AM
Hi, sorry for the late reply I've finally managed to get back to working on the machine.


What you have described is exactly what I want, to be able to click the home button and all three axes find their home position at the limits of their travel. All that happens when I click the homing buttons now are the machine zero's each axis at the current position - no homing procedure is executed.

I'm not entirely sure what version of pronterface I'm using? I'm using it on Windows XP. The download folder is 'kliment-Printrun-d731aaf'. Do you think you could send me a link to the version you are using so I can try it, or emailing me the actual file?


Cheers,

Nigel.
Re: Homing procedures with Marlin / Pronterface / Ramps 1.4?
May 21, 2012 05:05AM
You can download the newest version from GitHub.


Bob Morrison
Wörth am Rhein, Germany
"Luke, use the source!"
BLOG - PHOTOS - Thingiverse
Re: Homing procedures with Marlin / Pronterface / Ramps 1.4?
May 21, 2012 11:57AM
In addition to what I mentioned previously, in pronterface if you type M119 it shows how your endstops are currently reading. It is also useful to use M114 which will tell you the current position as the computer sees it. Like RobA said, it defaults to 0 when starting it up. Comfirm this with the M114 command.

Good luck!


Ryan
Quality Engineer & Hobbyist
thingsandtrains.blogspot.com
Re: Homing procedures with Marlin / Pronterface / Ramps 1.4?
May 21, 2012 01:50PM
Marlin 1.0 should work just like Sprinter. When I hit home all axis in Marlin, all of the axis move to the home position.

Jim K.
Re: Homing procedures with Marlin / Pronterface / Ramps 1.4?
October 05, 2013 05:29AM
What you are describing sounds like u have the following set to true in the firmware (Configuration.h):

#define min_software_endstops true


//If true, axis won't move to coordinates less than HOME_POS. So your printer wont home if it thinks its already at 0,0,0
Setting it to false should fix your problem. smiling smiley
Sorry, only registered users may post in this forum.

Click here to login