Welcome! Log In Create A New Profile

Advanced

Why are max endstops disabled in marlin?

Posted by NathanaelXYZ 
Why are max endstops disabled in marlin?
August 15, 2014 02:06PM
edit: The code formatting appears to be broken.

I'm tinkering with a coreXZ version of Marlin, based off of the already included coreXY code. I noticed that max endstops are forced off if coreXY is enabled, but I need both min and max endstops on the z axis so I can home to max and then use a z-probe to auto bed level. In the stepper.cpp file, however, I noticed endstops are tested like this:

    #ifndef COREXY
    if ((out_bits & (1<Edited 2 time(s). Last edit at 08/15/2014 02:11PM by NathanaelXYZ.
Re: Why are max endstops disabled in marlin?
August 16, 2014 08:22AM
Quote
NathanaelXYZ
edit: The code formatting appears to be broken.

I'm tinkering with a coreXZ version of Marlin, based off of the already included coreXY code. I noticed that max endstops are forced off if coreXY is enabled, but I need both min and max endstops on the z axis so I can home to max and then use a z-probe to auto bed level. In the stepper.cpp file, however, I noticed endstops are tested like this:

    #ifndef COREXY
    if ((out_bits & (1<
		

-=( blog )=- -=( thingiverse )=- -=( 3Dindustries )=- -=( Aluhotend - mostly metal hotend)=--=( Facebook )=-

Re: Why are max endstops disabled in marlin?
February 10, 2015 12:31PM
Can I recycle this old thread to ask if anyone has enabled MAX endstops with a CoreXY set up.

My MIN stops are all working. I've tried setting the same variables for MAXs as for MINs that I can find.

Any suggestions?

Thanks.

A
Re: Why are max endstops disabled in marlin?
February 11, 2015 12:47AM
Hi Alan,

I have all the endstops enabled with my Openbeam coreXY.

From what I can remember....

Apart from the settings in Configuration.h e.g.
Line 337 - have the following inactive e.g //#define DISABLE_MAX_ENDSTOPS
Line 338 - have the following inactive e.g //#define DISABLE_MAX_ENDSTOPS

Line 375 - have the following set e.g #define X MAX_POS 200
Line 376 - have the following set e.g #define X MIN_POS 200
Line 377 - have the following set e.g #define Y MAX_POS 200
Line 378 - have the following set e.g #define Y MIN_POS 200
Line 379 - have the following set e.g #define Z MAX_POS 200
Line 380 - have the following set e.g #define Y MIN_POS 200

You need to check in Configuration_adv.h
Line 90 - have the following inactive e.g.. //#define ENDSTOP_ONLY_FOR_HOMING
Line 312 - you may wish to have this active if printing from SD cards e.g. #define ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLE (Need to enable from LCD to stop printing if wanted for every time you go to print something).



Also I found that you are using switches that you may need to set the home position to a negative number as when homing that the hotend moves slowly. However when printing the switches can get hit when coming close to a min or max switch and bounce the switch causing a false reading.

I have liked using all the min and max endstops- no more hotends hitting and making lots of nasty noises.

Cheers Bruce..
Note: I will be offline for next 2 weeks..
Re: Why are max endstops disabled in marlin?
February 11, 2015 06:16AM
Nice work Bruce!

All endstops now working!

It was only the last line " #define ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLE " that I'd missed

- and it works whether it is enabled or not in the LCD menu.


Cheers for the help. Much appreciated.

Alan
Re: Why are max endstops disabled in marlin?
February 11, 2015 03:00PM
Hi Alan,

Great you got the endstops working.

Something you may find good is to add some extra LCD menu commands.....


Come across the below in the forums which helped me a lot..... There was a item about using an opto stop to pause print when filament runs out.

-------------------------------------------------------------------------------------------------------------------------------------------------------------------

Adding home x to the LCD is easy. All you need to do is find the following in ultralcd.cpp

MENU_ITEM(gcode, MSG_AUTO_HOME, PSTR("G28"));

Then add this after

MENU_ITEM(gcode, "Auto Home X", PSTR("G28 X0"));
------------------------------------------------------------------------------------------------------------------------------------------------------

This helped me to added two new LCD menus for my Openbeam Core XY reprap, Homing just the X and Y axis and also one for moving my Z axis to its max position (200mm) for removing printed parts.
eg.. added:
MENU_ITEM(gcode, "Auto Home XY", PSTR("G28 X0 Y0"));
MENU_ITEM(gcode, "Lower Z Axis", PSTR("G1 Z200"));

Most of the existing Marlin menu items are referenced to the lauguage.h sketch which allows for change of lauguage.
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------


I am currently working on adding a filament cooling fan (Blower fan type) to see if I can improve PLA printing. Plan to fit this to my head assy as it won't add a lot of weight. Using a 0.3mm noozle and you can't print too fast anyway.

Cheers.. Bruce
Re: Why are max endstops disabled in marlin?
February 12, 2015 02:43PM
Thanks for the tips Bruce. They're useful.
I'll use the 'Lower Z to max' command. Will be handy.

Your openbeam machine looks very nicely constructed, I must say.

I'm still w.i.p on a v slot build. I'm nearly there.

Hope I can pick your brains some more when I get it closer to printing.

All the best.
Alan
Re: Why are max endstops disabled in marlin?
February 24, 2015 07:09AM
I note the following;

If one axis is on its MAX endstop, the other axis can't be moved until the first axis is taken from the endstop,

Although MIN and MAX both work for independent carriage moves, - I've had a situation where I've issued multiple moves from Pronterface. Maybe one of the motors skipped, not sure, but the axis has crashed into its stop and tried to screech its way beyond. A quirk of CoreXY needing 2 motors for one axis move perhaps.

In the Marlin release notes there was a very recent addition (13 Feb.15) - CoreXY homing routine fixed. Maybe it has addressed the issue.

Bruce, I see in your printer build post you mention; " . . One thing I found that it was best to set the X home position to about minus 3 . . ."

(At the risk of sounding dumb...) Could you clarify how/ where to do that?

Thanks.

Regards

Alan
Re: Why are max endstops disabled in marlin?
February 24, 2015 07:43AM
Quote
alan richard
I note the following;

If one axis is on its MAX endstop, the other axis can't be moved until the first axis is taken from the endstop,

Although MIN and MAX both work for independent carriage moves, - I've had a situation where I've issued multiple moves from Pronterface. Maybe one of the motors skipped, not sure, but the axis has crashed into its stop and tried to screech its way beyond. A quirk of CoreXY needing 2 motors for one axis move perhaps.

In the Marlin release notes there was a very recent addition (13 Feb.15) - CoreXY homing routine fixed. Maybe it has addressed the issue.

Bruce, I see in your printer build post you mention; " . . One thing I found that it was best to set the X home position to about minus 3 . . ."

(At the risk of sounding dumb...) Could you clarify how/ where to do that?

Thanks.

Regards

Alan



i found this as well, the reason i found was because the command G28 isn't buffered, i changed this in my fork of marlin and suddenly the Max endstops functioned as reliably as the Min endstops , they have probably done somthing similar in the latest release or somthing vastly more complicated i probably won't find out due to the lack of hardware pwm,

you can do it in gcode by issuing a M400 directly after and before a G28




-=( blog )=- -=( thingiverse )=- -=( 3Dindustries )=- -=( Aluhotend - mostly metal hotend)=--=( Facebook )=-



Re: Why are max endstops disabled in marlin?
February 25, 2015 11:16AM
Thanks - I'll have a think about that.
So that's 'wait to finish command' after a 'home command.'

Is that for the 'stuck on a MAX endstop' issue?

Ta

a
Re: Why are max endstops disabled in marlin?
February 26, 2015 06:03PM
Quote
alan richard
Thanks - I'll have a think about that.
So that's 'wait to finish command' after a 'home command.'

Is that for the 'stuck on a MAX endstop' issue?

Ta

a

it seems to work for mine, i eventually modified my version of marlin the automatically buffer a g28 command so i don't need to use M400




-=( blog )=- -=( thingiverse )=- -=( 3Dindustries )=- -=( Aluhotend - mostly metal hotend)=--=( Facebook )=-



Re: Why are max endstops disabled in marlin?
February 27, 2015 03:43AM
Hi Richard,
Just got back from 2 weeks holiday...

As far as end stops,
The way I see it.. The min endstop should only become active when you are homing the axis and after that it shouldn't become active when you are doing normal printing (Can't move to a negative position when printing)..
With the Max end stop it shouldn't normally become active.

When there is a movement error either the min or the max endstop may become active and this stops the hotend trying to move too far.
I use a LCD and it displays that an endstop was detected.
You can activating the LCD menu standard Marlin feature, you can cause the printer to stop.
-----------------------------------------------------------------------------------------------
To set home to position to -3 in Marlin firmware:

Configuration.h ------------------ Line 259

#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 203
#define X_MIN_POS -3
#define Y_MAX_POS 203
#define Y_MIN_POS -3
#define Z_MAX_POS 180
#define Z_MIN_POS 0


Cheers Bruce
Re: Why are max endstops disabled in marlin?
February 28, 2015 07:14AM
Thanks fellers.

Cheers Bruce for yet another clear simple explanation. Hope your holiday went well!

All the best

a
Re: Why are max endstops disabled in marlin?
March 03, 2015 05:38AM
Another Marlin update for CoreXY . . .

3 March 2015
Fix Endstop check for CoreXY bots.
The X_Axis could not home to min while Y_Max endstop was trigged.


-a
Re: Why are max endstops disabled in marlin?
May 12, 2015 02:58AM
Hi



i have XY core and im using max endstop on the x axis

with the previous marlin firmware i didnt have ant issue

i got the latest marlin yesterday

no when im pressing X home the system dosent move x axis and set it as a zero point from there i can move the x axis only to the negetive side

any suggestions please
Re: Why are max endstops disabled in marlin?
May 13, 2015 04:16PM
'Endstops only for homing' in configuration.adv.h??

-a
Re: Why are max endstops disabled in marlin?
May 23, 2015 04:50AM
Hello Alan

missed that one , thank bro =)

this is my beast

check this out
Re: Why are max endstops disabled in marlin?
May 24, 2015 07:59AM
thumbs up
Just a shot in the dark . . .

Nice machine. 'Tis a beast.

-a
Sorry, only registered users may post in this forum.

Click here to login