{"action":"created","issue":{"url":"https://api.github.com/repos/MarlinFirmware/Marlin/issues/3786","repository_url":"https://api.github.com/repos/MarlinFirmware/Marlin","labels_url":"https://api.github.com/repos/MarlinFirmware/Marlin/issues/3786/labels{/name}","comments_url":"https://api.github.com/repos/MarlinFirmware/Marlin/issues/3786/comments","events_url":"https://api.github.com/repos/MarlinFirmware/Marlin/issues/3786/events","html_url":"https://github.com/MarlinFirmware/Marlin/issues/3786","id":155499734,"number":3786,"title":"Idea: Endstop / Homeswitch / Probe","user":{"login":"AnHardt","id":211931,"avatar_url":"https://avatars.githubusercontent.com/u/211931?v=3","gravatar_id":"","url":"https://api.github.com/users/AnHardt","html_url":"https://github.com/AnHardt","followers_url":"https://api.github.com/users/AnHardt/followers","following_url":"https://api.github.com/users/AnHardt/following{/other_user}","gists_url":"https://api.github.com/users/AnHardt/gists{/gist_id}","starred_url":"https://api.github.com/users/AnHardt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AnHardt/subscriptions","organizations_url":"https://api.github.com/users/AnHardt/orgs","repos_url":"https://api.github.com/users/AnHardt/repos","events_url":"https://api.github.com/users/AnHardt/events{/privacy}","received_events_url":"https://api.github.com/users/AnHardt/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/MarlinFirmware/Marlin/labels/Discussion:%20Design%20Concept","name":"Discussion: Design Concept","color":"fbca04"},{"url":"https://api.github.com/repos/MarlinFirmware/Marlin/labels/Discussion:%20Developers","name":"Discussion: Developers","color":"FF77AA"},{"url":"https://api.github.com/repos/MarlinFirmware/Marlin/labels/Improvement","name":"Improvement","color":"009800"},{"url":"https://api.github.com/repos/MarlinFirmware/Marlin/labels/Needs:%20Feedback","name":"Needs: Feedback","color":"fbca04"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":5,"created_at":"2016-05-18T13:21:36Z","updated_at":"2016-05-18T23:28:01Z","closed_at":null,"body":"Maybe we can make progress with sorting out the endstop/probe/homeswitch problems when we try to define them for us..\r\n\r\n* Endstop (hardware): A security device to stop the axis movement before something gets demaged. \r\n * A hit should never occur. If so either the according software endstop is off and we tried to move too far, or we lost steps. An error should be thrown.\r\n * The action to stop the axis is a hard one - we lose steps. Homing the axis thereafter is required.\r\n * Hitting an endstop is not homing - _when homing we have a defined speed and direction when the Homeswitch is hit._\r\n * Does not need any special procedure or position to work.\r\n * An axis can _and should_ have two of them. _Two NC switches in series on one pin would be enough for security._\r\n* Endstop (software): A security device to prevent the carriage from hitting an hardware endstop, or a limit where we do not have a hardware endstop.\r\n * Clip a move before it is executed - so a smooth approach to the limit can be made.\r\n * Should prevent extrusion when at the limit.\r\n * Printing a warning is adequate.\r\n * Need homing before they can work.\r\n * Should be always on after homing.\r\n * Need to be off during homing (probing?) if the homeswitch is also an endstop.\r\n* Homeswitch: A measurement device to find a defined position of an axis.\r\n * Needs a special procedure to succeed.\r\n * Can be accomplished by the need for a special order to home the axis, or special positions of another axis.\r\n * Only one of them per axis makes sense.\r\n * When not in the homing procedure a homeswitch should be ignored.\r\n * Can measure only one point (homeposition).\r\n * Can share the physical switch with an hardware endstop. In that case the endstop functionality has to be switched off for the homing procedure.\r\n* Probe: A measurement device, similar to a homeswitch, but further accomplished by a deploy/stow procedure.\r\n * Cannot be used as a hardware endstop.\r\n * Can measure multiple points.\r\n * Should be ignored while stowed.\r\n * Can be used as a homeswitch if you can find a safe way/sequence to deploy/stow the probe without knowing the exact position - or you take the risk.\r\n * Can share the physical switch with an hardware endstop. In that case the endstop functionality has to be switched off for the probe procedure.\r\n * Can share the physical switch with a homeswitch. In that case the homing functionality has to be switched off for the probe procedure.\r\n * A machine could have may of them. In Marlin we concentrate on only one - a Z-Min-Probe.\r\n* Pin: A device where one or more other devices are connected to the board.\r\n\r\nTry to find loopholes, exceptions, errors, ... . Feel free to add more statements.\r\n\r\n__EDITED 1 times__"},"comment":{"url":"https://api.github.com/repos/MarlinFirmware/Marlin/issues/comments/220187918","html_url":"https://github.com/MarlinFirmware/Marlin/issues/3786#issuecomment-220187918","issue_url":"https://api.github.com/repos/MarlinFirmware/Marlin/issues/3786","id":220187918,"user":{"login":"thinkyhead","id":698003,"avatar_url":"https://avatars.githubusercontent.com/u/698003?v=3","gravatar_id":"","url":"https://api.github.com/users/thinkyhead","html_url":"https://github.com/thinkyhead","followers_url":"https://api.github.com/users/thinkyhead/followers","following_url":"https://api.github.com/users/thinkyhead/following{/other_user}","gists_url":"https://api.github.com/users/thinkyhead/gists{/gist_id}","starred_url":"https://api.github.com/users/thinkyhead/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thinkyhead/subscriptions","organizations_url":"https://api.github.com/users/thinkyhead/orgs","repos_url":"https://api.github.com/users/thinkyhead/repos","events_url":"https://api.github.com/users/thinkyhead/events{/privacy}","received_events_url":"https://api.github.com/users/thinkyhead/received_events","type":"User","site_admin":false},"created_at":"2016-05-18T23:28:01Z","updated_at":"2016-05-18T23:28:01Z","body":"> why do we still speak of \"software\" and \"hardware\" endstops?\r\n\r\nThe \"software endstops\" are just a set of stored numbers. Simply the min and max X, Y, and Z positions. The `clamp_to_software_endstops` function prevents planner moves from going past these limits. They don't need to have any relation to a hardware switch. A machine with no endstop switches at all (e.g., the QuadRap) may still have \"software endstops.\"\r\n\r\nCurrently, if you disable `ENDSTOPS_ONLY_FOR_HOMING` the machine is supposed to abort printing if an endstop switch gets triggered. I'm not sure, but it's possible that if that is the case, you must make sure to move the carriage and bed so no endstops are triggered before you start a print, or the print might abort right away."}}