Marlin software endstop - or how to not cross the border

752 views
Skip to first unread message

Kai Dupke

unread,
Jul 12, 2014, 6:27:31 AM7/12/14
to mend...@googlegroups.com
Hi,

I updated my Marlin firmware and now have the issue that I can move an
axis off the building platform.

I min Y till it hit min endstop, then I increase Y but it will go beyond
the configured 280mm.

My idea was to have a physical min endstop and a software max endstop.

Any ideas what in the config below might be wrong? Or is the assumption
that triggering the min sets the internal counter to 0 wrong?

(removed all but Y-Axis)

> //=============================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 endstop settings: Individual pullups. will be ignored if ENDSTOPPULLUPS is defined
> // #define ENDSTOPPULLUP_YMAX
> // #define ENDSTOPPULLUP_YMIN
> #endif
>
> #ifdef ENDSTOPPULLUPS
> #define ENDSTOPPULLUP_YMAX
> #define ENDSTOPPULLUP_YMIN
> #endif
>
> // The pullups are needed if you directly connect a mechanical endswitch between the signal and ground pins.
> const bool Y_MIN_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.
> //#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 Y_ENABLE_ON 0
>
> // Disables axis when it's not being used.
> #define DISABLE_Y false
>
> #define INVERT_Y_DIR false // for Mendel set to true, for Orca set to false
>
> // ENDSTOP SETTINGS:
> // Sets direction of endstops when homing; 1=MAX, -1=MIN
> #define Y_HOME_DIR -1
>
> #define min_software_endstops false // 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 Y_MAX_POS 280
> #define Y_MIN_POS 0
>
> #define Y_MAX_LENGTH (Y_MAX_POS - Y_MIN_POS)



greetings kai

Kai Dupke

unread,
Jul 12, 2014, 6:59:33 AM7/12/14
to mend...@googlegroups.com
On 07/12/2014 12:25 PM, Kai Dupke wrote:
> Or is the assumption
> that triggering the min sets the internal counter to 0 wrong?

G28 does set the counter, just hitting the end stop during moving does
not set the zero position of the axis.

Problem solved,
greetings kai

yu yang

unread,
Oct 17, 2014, 9:56:29 AM10/17/14
to mend...@googlegroups.com, mend...@koma.han.de
how did you solve this? i defined Y_MAX_POS 200, but the bed can go beyond 200 while x/z will stay within threshold.  Prusa I3 /Megs2560/Ramp1.4.
Reply all
Reply to author
Forward
0 new messages