Skip to content

[FR] [SAFETY] extended Endstop handling (endstop mux), lowering of possible damages #28110

@DaLiV

Description

@DaLiV

Is your feature request related to a problem? Please describe.

On new version compilations problems that "not fully enabled bltouch probing" lead to need reset machine as that goes over all hits (bl-touch+stallguard+switch) but try to run further Z axis.
as there for "touch" probe need set axis sensor to "High" ... but default switch is "Low"

as sample - will be broken cable of some BL-Touch - Z-Axis goes further, but if machine has second "simple-switch" end-stop - then second safety point will stop uncontrollable movement. currently as they are in contradict - both can not be enabled simultaneously.

so quite important point

Are you looking for hardware support?

No response

Describe the feature you want

Currently we have code for each end-stop type slightly different handled and some of them are mutually exclusive.
Most machines initially has "Switch" end-stops - most safe, surely exist Pull-Up and Pull-Down versions, and Pull-up with "Hit=Low" more safest.
Some of printers has some Touch sensors. Their behavior "Hit=High"
Some of printers rely on TMC stallguard. here also behavior "Hit=High"

So while last 2 are not contradict each to other , but in contradict with safest "Hit-Low"

seems best way to rewrite code so that acts accordingly to sensor individual settings on "hit" run some "callback" "Endstop_Was_Hit" - and in that case will be possible to use different end-stops with lowering of hardware damaging risks (if hit ANY of them - that means andstop is HIT). + possible menu "Endstops" "- Switch - On/OFF" "- xTouch - On/OFF" "- Stallguard - On/OFF" as mask for which take in account after initial configurations or if need ignore some for any single time = M120 M121 commands can be extended with params accordingly to Endstop types existing in machine. sure - state of endstops will be then like "bitmask" for each endstop (8 bit enough , hit - set related to attached type bit, state reports/checks - compare to "not eq 0" ) .

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions