Browse Source

Merge pull request #7979 from thinkyhead/bf2_granular_sw_endstops

[2.0.x] Software endstop options by axis
Scott Lahteine 7 years ago
parent
commit
af2397d581
62 changed files with 1035 additions and 185 deletions
  1. 22
    2
      Marlin/Configuration.h
  2. 3
    8
      Marlin/src/HAL/HAL_AVR/HAL_AVR.h
  3. 5
    7
      Marlin/src/HAL/HAL_AVR/HAL_pinsDebug_AVR.h
  4. 3
    3
      Marlin/src/HAL/HAL_AVR/MarlinSerial.h
  5. 5
    8
      Marlin/src/HAL/HAL_AVR/SanityCheck_AVR_8_bit.h
  6. 7
    2
      Marlin/src/HAL/HAL_AVR/ServoTimers.h
  7. 3
    3
      Marlin/src/HAL/HAL_AVR/fastio_1280.h
  8. 3
    3
      Marlin/src/HAL/HAL_AVR/fastio_1281.h
  9. 3
    3
      Marlin/src/HAL/HAL_AVR/fastio_168.h
  10. 3
    3
      Marlin/src/HAL/HAL_AVR/fastio_644.h
  11. 3
    3
      Marlin/src/HAL/HAL_AVR/fastio_AT90USB.h
  12. 3
    3
      Marlin/src/HAL/HAL_AVR/fastio_AVR.h
  13. 3
    3
      Marlin/src/HAL/HAL_AVR/math_AVR.h
  14. 5
    4
      Marlin/src/HAL/HAL_AVR/pinsDebug_AVR_8_bit.h
  15. 5
    0
      Marlin/src/HAL/HAL_AVR/pinsDebug_Teensyduino.h
  16. 3
    3
      Marlin/src/HAL/HAL_AVR/pinsDebug_plus_70.h
  17. 3
    3
      Marlin/src/HAL/HAL_AVR/spi_pins.h
  18. 3
    3
      Marlin/src/HAL/HAL_AVR/watchdog_AVR.h
  19. 22
    2
      Marlin/src/config/default/Configuration.h
  20. 22
    2
      Marlin/src/config/examples/AlephObjects/TAZ4/Configuration.h
  21. 22
    2
      Marlin/src/config/examples/AliExpress/CL-260/Configuration.h
  22. 22
    2
      Marlin/src/config/examples/Anet/A6/Configuration.h
  23. 22
    2
      Marlin/src/config/examples/Anet/A8/Configuration.h
  24. 22
    2
      Marlin/src/config/examples/BQ/Hephestos/Configuration.h
  25. 22
    2
      Marlin/src/config/examples/BQ/Hephestos_2/Configuration.h
  26. 22
    2
      Marlin/src/config/examples/BQ/WITBOX/Configuration.h
  27. 22
    2
      Marlin/src/config/examples/Cartesio/Configuration.h
  28. 22
    2
      Marlin/src/config/examples/Creality/CR-10/Configuration.h
  29. 22
    2
      Marlin/src/config/examples/Felix/Configuration.h
  30. 22
    2
      Marlin/src/config/examples/Felix/DUAL/Configuration.h
  31. 22
    2
      Marlin/src/config/examples/Folger Tech/i3-2020/Configuration.h
  32. 22
    2
      Marlin/src/config/examples/Geeetech/GT2560/Configuration.h
  33. 22
    2
      Marlin/src/config/examples/Geeetech/I3_Pro_X-GT2560/Configuration.h
  34. 22
    2
      Marlin/src/config/examples/Infitary/i3-M508/Configuration.h
  35. 22
    2
      Marlin/src/config/examples/Malyan/M150/Configuration.h
  36. 22
    2
      Marlin/src/config/examples/Mks/Sbase/Configuration.h
  37. 22
    2
      Marlin/src/config/examples/RepRapWorld/Megatronics/Configuration.h
  38. 22
    2
      Marlin/src/config/examples/RigidBot/Configuration.h
  39. 22
    2
      Marlin/src/config/examples/SCARA/Configuration.h
  40. 22
    2
      Marlin/src/config/examples/Sanguinololu/Configuration.h
  41. 22
    2
      Marlin/src/config/examples/TinyBoy2/Configuration.h
  42. 22
    2
      Marlin/src/config/examples/Velleman/K8200/Configuration.h
  43. 22
    2
      Marlin/src/config/examples/Velleman/K8400/Configuration.h
  44. 22
    2
      Marlin/src/config/examples/Velleman/K8400/Dual-head/Configuration.h
  45. 22
    2
      Marlin/src/config/examples/adafruit/ST7565/Configuration.h
  46. 22
    2
      Marlin/src/config/examples/delta/FLSUN/auto_calibrate/Configuration.h
  47. 22
    2
      Marlin/src/config/examples/delta/FLSUN/kossel_mini/Configuration.h
  48. 22
    2
      Marlin/src/config/examples/delta/generic/Configuration.h
  49. 22
    2
      Marlin/src/config/examples/delta/kossel_mini/Configuration.h
  50. 22
    2
      Marlin/src/config/examples/delta/kossel_pro/Configuration.h
  51. 22
    2
      Marlin/src/config/examples/delta/kossel_xl/Configuration.h
  52. 22
    2
      Marlin/src/config/examples/gCreate/gMax1.5+/Configuration.h
  53. 22
    2
      Marlin/src/config/examples/makibox/Configuration.h
  54. 22
    2
      Marlin/src/config/examples/stm32f103ret6/Configuration.h
  55. 22
    2
      Marlin/src/config/examples/tvrrug/Round2/Configuration.h
  56. 22
    2
      Marlin/src/config/examples/wt150/Configuration.h
  57. 18
    1
      Marlin/src/inc/Conditionals_post.h
  58. 19
    0
      Marlin/src/inc/SanityCheck.h
  59. 28
    10
      Marlin/src/lcd/ultralcd.cpp
  60. 17
    18
      Marlin/src/module/motion.cpp
  61. 1
    1
      Marlin/src/pins/pins_RAMPS.h
  62. 31
    15
      Marlin/src/pins/pins_TEENSY35_36.h

+ 22
- 2
Marlin/Configuration.h View File

785
 #define Y_MAX_POS Y_BED_SIZE
785
 #define Y_MAX_POS Y_BED_SIZE
786
 #define Z_MAX_POS 200
786
 #define Z_MAX_POS 200
787
 
787
 
788
-// If enabled, axes won't move below MIN_POS in response to movement commands.
788
+/**
789
+ * Software Endstops
790
+ *
791
+ * - Prevent moves outside the set machine bounds.
792
+ * - Individual axes can be disabled, if desired.
793
+ * - X and Y only apply to Cartesian robots.
794
+ * - Use 'M211' to set software endstops on/off or report current state
795
+ */
796
+
797
+// Min software endstops constrain movement within minimum coordinate bounds
789
 #define MIN_SOFTWARE_ENDSTOPS
798
 #define MIN_SOFTWARE_ENDSTOPS
790
-// If enabled, axes won't move above MAX_POS in response to movement commands.
799
+#if ENABLED(MIN_SOFTWARE_ENDSTOPS)
800
+  #define MIN_SOFTWARE_ENDSTOP_X
801
+  #define MIN_SOFTWARE_ENDSTOP_Y
802
+  #define MIN_SOFTWARE_ENDSTOP_Z
803
+#endif
804
+
805
+// Max software endstops constrain movement within maximum coordinate bounds
791
 #define MAX_SOFTWARE_ENDSTOPS
806
 #define MAX_SOFTWARE_ENDSTOPS
807
+#if ENABLED(MAX_SOFTWARE_ENDSTOPS)
808
+  #define MAX_SOFTWARE_ENDSTOP_X
809
+  #define MAX_SOFTWARE_ENDSTOP_Y
810
+  #define MAX_SOFTWARE_ENDSTOP_Z
811
+#endif
792
 
812
 
793
 /**
813
 /**
794
  * Filament Runout Sensor
814
  * Filament Runout Sensor

+ 3
- 8
Marlin/src/HAL/HAL_AVR/HAL_AVR.h View File

26
  */
26
  */
27
 
27
 
28
 
28
 
29
-#ifndef _HAL_AVR_H
30
-#define _HAL_AVR_H
29
+#ifndef _HAL_AVR_H_
30
+#define _HAL_AVR_H_
31
 
31
 
32
 // --------------------------------------------------------------------------
32
 // --------------------------------------------------------------------------
33
 // Includes
33
 // Includes
153
 
153
 
154
 #define HAL_READ_ADC ADC
154
 #define HAL_READ_ADC ADC
155
 
155
 
156
-
157
-// --------------------------------------------------------------------------
158
-//
159
-// --------------------------------------------------------------------------
160
-
161
-#endif // _HAL_AVR_H
156
+#endif // _HAL_AVR_H_

+ 5
- 7
Marlin/src/HAL/HAL_AVR/HAL_pinsDebug_AVR.h View File

20
  *
20
  *
21
  */
21
  */
22
 
22
 
23
-#ifndef HAL_PINSDEBUG_AVR_H
23
+#ifndef _HAL_PINSDEBUG_AVR_H_
24
+#define _HAL_PINSDEBUG_AVR_H_
25
+
26
+#include "../../inc/MarlinConfig.h"
24
 
27
 
25
 void HAL_print_analog_pin(char buffer[], int8_t pin) {
28
 void HAL_print_analog_pin(char buffer[], int8_t pin) {
26
   sprintf(buffer, "(A%2d)  ", int(pin - analogInputToDigitalPin(0)));
29
   sprintf(buffer, "(A%2d)  ", int(pin - analogInputToDigitalPin(0)));
110
 
113
 
111
 };
114
 };
112
 
115
 
113
-#define AVR_ATmega2560_FAMILY_PLUS_70 (MOTHERBOARD == BOARD_BQ_ZUM_MEGA_3D \
114
-|| MOTHERBOARD == BOARD_MIGHTYBOARD_REVE \
115
-|| MOTHERBOARD == BOARD_MINIRAMBO \
116
-|| MOTHERBOARD == BOARD_SCOOVO_X9H)
117
-
118
 #if AVR_AT90USB1286_FAMILY
116
 #if AVR_AT90USB1286_FAMILY
119
   // Working with Teensyduino extension so need to re-define some things
117
   // Working with Teensyduino extension so need to re-define some things
120
   #include "pinsDebug_Teensyduino.h"
118
   #include "pinsDebug_Teensyduino.h"
590
   }
588
   }
591
 }
589
 }
592
 
590
 
593
-#endif //HAL_PINSDEBUG_AVR_H
591
+#endif // _HAL_PINSDEBUG_AVR_H_

+ 3
- 3
Marlin/src/HAL/HAL_AVR/MarlinSerial.h View File

29
  * Modified 01 October 2017 by Eduardo José Tagle (added XON/XOFF)
29
  * Modified 01 October 2017 by Eduardo José Tagle (added XON/XOFF)
30
  */
30
  */
31
 
31
 
32
-#ifndef MARLINSERIAL_H
33
-#define MARLINSERIAL_H
32
+#ifndef _MARLINSERIAL_H_
33
+#define _MARLINSERIAL_H_
34
 
34
 
35
 #include "../../inc/MarlinConfig.h"
35
 #include "../../inc/MarlinConfig.h"
36
 
36
 
181
   extern HardwareSerial bluetoothSerial;
181
   extern HardwareSerial bluetoothSerial;
182
 #endif
182
 #endif
183
 
183
 
184
-#endif // MARLINSERIAL_H
184
+#endif // _MARLINSERIAL_H_

+ 5
- 8
Marlin/src/HAL/HAL_AVR/SanityCheck_AVR_8_bit.h View File

20
  *
20
  *
21
  */
21
  */
22
 
22
 
23
-/**
24
- * Test AVR specific configuration values for errors at compile-time.
25
- */
23
+#ifndef _SANITYCHECK_AVR_8_BIT_H_
24
+#define _SANITYCHECK_AVR_8_BIT_H_
26
 
25
 
27
 /**
26
 /**
28
- * Require gcc 4.7 or newer (first included with Arduino 1.6.8) for C++11 features.
27
+ * Test AVR specific configuration values for errors at compile-time.
29
  */
28
  */
30
 
29
 
31
-
32
 /**
30
 /**
33
  * Digipot requirement
31
  * Digipot requirement
34
  */
32
  */
39
   #endif
37
   #endif
40
 #endif
38
 #endif
41
 
39
 
42
-
43
-
44
 /**
40
 /**
45
  * Sanity checks for Spindle / Laser
41
  * Sanity checks for Spindle / Laser
46
  */
42
  */
47
-
48
 #if ENABLED(SPINDLE_LASER_ENABLE)
43
 #if ENABLED(SPINDLE_LASER_ENABLE)
49
   #if !PIN_EXISTS(SPINDLE_LASER_ENABLE)
44
   #if !PIN_EXISTS(SPINDLE_LASER_ENABLE)
50
     #error "SPINDLE_LASER_ENABLE requires SPINDLE_LASER_ENABLE_PIN."
45
     #error "SPINDLE_LASER_ENABLE requires SPINDLE_LASER_ENABLE_PIN."
100
     #endif
95
     #endif
101
   #endif
96
   #endif
102
 #endif // SPINDLE_LASER_ENABLE
97
 #endif // SPINDLE_LASER_ENABLE
98
+
99
+#endif // _SANITYCHECK_AVR_8_BIT_H_

+ 7
- 2
Marlin/src/HAL/HAL_AVR/ServoTimers.h View File

21
  */
21
  */
22
 
22
 
23
 /*
23
 /*
24
-  Servo.h - Interrupt driven Servo library for Arduino using 16 bit timers- Version 2
24
+  ServoTimers.h - Interrupt driven Servo library for Arduino using 16 bit timers- Version 2
25
   Copyright (c) 2009 Michael Margolis.  All right reserved.
25
   Copyright (c) 2009 Michael Margolis.  All right reserved.
26
 
26
 
27
   This library is free software; you can redistribute it and/or
27
   This library is free software; you can redistribute it and/or
39
   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
39
   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
40
 */
40
 */
41
 
41
 
42
-/*
42
+#ifndef _SERVOTIMERS_H_
43
+#define _SERVOTIMERS_H_
44
+
45
+/**
43
  * Defines for 16 bit timers used with  Servo library
46
  * Defines for 16 bit timers used with  Servo library
44
  *
47
  *
45
  * If _useTimerX is defined then TimerX is a 16 bit timer on the current board
48
  * If _useTimerX is defined then TimerX is a 16 bit timer on the current board
88
   #endif
91
   #endif
89
   _Nbr_16timers
92
   _Nbr_16timers
90
 } timer16_Sequence_t;
93
 } timer16_Sequence_t;
94
+
95
+#endif // _SERVOTIMERS_H_

+ 3
- 3
Marlin/src/HAL/HAL_AVR/fastio_1280.h View File

28
  *   Marlin   00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
28
  *   Marlin   00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
29
  */
29
  */
30
 
30
 
31
-#ifndef _FASTIO_1280
32
-#define _FASTIO_1280
31
+#ifndef _FASTIO_1280_H_
32
+#define _FASTIO_1280_H_
33
 
33
 
34
 #include "fastio_AVR.h"
34
 #include "fastio_AVR.h"
35
 
35
 
1112
 #define PL7_DDR     DDRL
1112
 #define PL7_DDR     DDRL
1113
 #define PL7_PWM     NULL
1113
 #define PL7_PWM     NULL
1114
 
1114
 
1115
-#endif // _FASTIO_1280
1115
+#endif // _FASTIO_1280_H_

+ 3
- 3
Marlin/src/HAL/HAL_AVR/fastio_1281.h View File

28
  *   Marlin   00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
28
  *   Marlin   00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
29
  */
29
  */
30
 
30
 
31
-#ifndef _FASTIO_1281
32
-#define _FASTIO_1281
31
+#ifndef _FASTIO_1281_H_
32
+#define _FASTIO_1281_H_
33
 
33
 
34
 #include "fastio_AVR.h"
34
 #include "fastio_AVR.h"
35
 
35
 
717
 #define PG5_DDR     DDRG
717
 #define PG5_DDR     DDRG
718
 #define PG5_PWM     &OCR0B
718
 #define PG5_PWM     &OCR0B
719
 
719
 
720
-#endif // _FASTIO_1281
720
+#endif // _FASTIO_1281_H_

+ 3
- 3
Marlin/src/HAL/HAL_AVR/fastio_168.h View File

28
  *   Marlin   08 09 10 11 12 13 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
28
  *   Marlin   08 09 10 11 12 13 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
29
  */
29
  */
30
 
30
 
31
-#ifndef _FASTIO_168
32
-#define _FASTIO_168
31
+#ifndef _FASTIO_168_H_
32
+#define _FASTIO_168_H_
33
 
33
 
34
 #include "fastio_AVR.h"
34
 #include "fastio_AVR.h"
35
 
35
 
359
 #define PD7_DDR     DDRD
359
 #define PD7_DDR     DDRD
360
 #define PD7_PWM     NULL
360
 #define PD7_PWM     NULL
361
 
361
 
362
-#endif // _FASTIO_168
362
+#endif // _FASTIO_168_H_

+ 3
- 3
Marlin/src/HAL/HAL_AVR/fastio_644.h View File

28
  *   Marlin   00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
28
  *   Marlin   00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
29
  */
29
  */
30
 
30
 
31
-#ifndef _FASTIO_644
32
-#define _FASTIO_644
31
+#ifndef _FASTIO_644_H_
32
+#define _FASTIO_644_H_
33
 
33
 
34
 #include "fastio_AVR.h"
34
 #include "fastio_AVR.h"
35
 
35
 
528
 #define PD7_DDR     DDRD
528
 #define PD7_DDR     DDRD
529
 #define PD7_PWM     OCR2A
529
 #define PD7_PWM     OCR2A
530
 
530
 
531
-#endif // _FASTIO_644
531
+#endif // _FASTIO_644_H_

+ 3
- 3
Marlin/src/HAL/HAL_AVR/fastio_AT90USB.h View File

29
  *            The pins 46 and 47 are not supported by Teensyduino, but are supported below as E2 and E3
29
  *            The pins 46 and 47 are not supported by Teensyduino, but are supported below as E2 and E3
30
  */
30
  */
31
 
31
 
32
-#ifndef _FASTIO_AT90USB
33
-#define _FASTIO_AT90USB
32
+#ifndef _FASTIO_AT90USB_H_
33
+#define _FASTIO_AT90USB_H_
34
 
34
 
35
 #include "fastio_AVR.h"
35
 #include "fastio_AVR.h"
36
 
36
 
699
 #define TIMER3B 4
699
 #define TIMER3B 4
700
 #define TIMER3C 3
700
 #define TIMER3C 3
701
 
701
 
702
-#endif // _FASTIO_AT90USB
702
+#endif // _FASTIO_AT90USB_H_

+ 3
- 3
Marlin/src/HAL/HAL_AVR/fastio_AVR.h View File

26
  * Contributed by Triffid_Hunter. Modified by Kliment and the Marlin team.
26
  * Contributed by Triffid_Hunter. Modified by Kliment and the Marlin team.
27
  */
27
  */
28
 
28
 
29
-#ifndef _FASTIO_ARDUINO_H
30
-#define _FASTIO_ARDUINO_H
29
+#ifndef _FASTIO_ARDUINO_H_
30
+#define _FASTIO_ARDUINO_H_
31
 
31
 
32
 #include <avr/io.h>
32
 #include <avr/io.h>
33
 #include "../../core/macros.h"
33
 #include "../../core/macros.h"
323
 // finally - the macro that tells us if a pin is an available hardware PWM
323
 // finally - the macro that tells us if a pin is an available hardware PWM
324
 #define USEABLE_HARDWARE_PWM(p) (PWM_PINS(p) && !PWM_CHK(p))
324
 #define USEABLE_HARDWARE_PWM(p) (PWM_PINS(p) && !PWM_CHK(p))
325
 
325
 
326
-#endif // _FASTIO_ARDUINO_H
326
+#endif // _FASTIO_ARDUINO_H_

+ 3
- 3
Marlin/src/HAL/HAL_AVR/math_AVR.h View File

20
  *
20
  *
21
  */
21
  */
22
 
22
 
23
-#ifndef MATH_AVR_H
24
-#define MATH_AVR_H
23
+#ifndef _MATH_AVR_H_
24
+#define _MATH_AVR_H_
25
 
25
 
26
 /**
26
 /**
27
  * Optimized math functions for AVR
27
  * Optimized math functions for AVR
109
                )
109
                )
110
 
110
 
111
 
111
 
112
-#endif
112
+#endif // _MATH_AVR_H_

+ 5
- 4
Marlin/src/HAL/HAL_AVR/pinsDebug_AVR_8_bit.h View File

24
  * PWM print routines for Atmel 8 bit AVR CPUs
24
  * PWM print routines for Atmel 8 bit AVR CPUs
25
  */
25
  */
26
 
26
 
27
+#ifndef _PINSDEBUG_AVR_8_BIT_
28
+#define _PINSDEBUG_AVR_8_BIT_
27
 
29
 
28
-#define AVR_ATmega2560_FAMILY_PLUS_70 (MOTHERBOARD == BOARD_BQ_ZUM_MEGA_3D \
29
-|| MOTHERBOARD == BOARD_MIGHTYBOARD_REVE \
30
-|| MOTHERBOARD == BOARD_MINIRAMBO \
31
-|| MOTHERBOARD == BOARD_SCOOVO_X9H)
30
+#include "../../inc/MarlinConfig.h"
32
 
31
 
33
 #if AVR_AT90USB1286_FAMILY
32
 #if AVR_AT90USB1286_FAMILY
34
   // Working with Teensyduino extension so need to re-define some things
33
   // Working with Teensyduino extension so need to re-define some things
399
 #endif
398
 #endif
400
 
399
 
401
 #define GET_PIN_INFO(pin) do{}while(0)
400
 #define GET_PIN_INFO(pin) do{}while(0)
401
+
402
+#endif // _PINSDEBUG_AVR_8_BIT_

+ 5
- 0
Marlin/src/HAL/HAL_AVR/pinsDebug_Teensyduino.h View File

20
  *
20
  *
21
  */
21
  */
22
 
22
 
23
+#ifndef _PINSDEBUG_TEENSYSUINO_H_
24
+#define _PINSDEBUG_TEENSYSUINO_H_
25
+
23
 //
26
 //
24
 //  some of the pin mapping functions of the Teensduino extension to the Arduino IDE
27
 //  some of the pin mapping functions of the Teensduino extension to the Arduino IDE
25
 //  do not function the same as the other Arduino extensions
28
 //  do not function the same as the other Arduino extensions
108
                                              // disable the PWMs so we can use it as is
111
                                              // disable the PWMs so we can use it as is
109
 
112
 
110
 // portModeRegister(pin) is OK
113
 // portModeRegister(pin) is OK
114
+
115
+#endif // _PINSDEBUG_TEENSYSUINO_H_

+ 3
- 3
Marlin/src/HAL/HAL_AVR/pinsDebug_plus_70.h View File

25
  *  structurs for 2560 family boards that use morre than 70 pins
25
  *  structurs for 2560 family boards that use morre than 70 pins
26
  */
26
  */
27
 
27
 
28
-#ifndef __PINSDEBUG_PLUS_70_H__
29
-#define __PINSDEBUG_PLUS_70_H__
28
+#ifndef _PINSDEBUG_PLUS_70_H_
29
+#define _PINSDEBUG_PLUS_70_H_
30
 
30
 
31
 #undef NUM_DIGITAL_PINS
31
 #undef NUM_DIGITAL_PINS
32
 #if MOTHERBOARD == BOARD_BQ_ZUM_MEGA_3D
32
 #if MOTHERBOARD == BOARD_BQ_ZUM_MEGA_3D
338
  */
338
  */
339
 
339
 
340
 
340
 
341
-#endif // __PINSDEBUG_PLUS_70_H__
341
+#endif // _PINSDEBUG_PLUS_70_H_

+ 3
- 3
Marlin/src/HAL/HAL_AVR/spi_pins.h View File

20
  *
20
  *
21
  */
21
  */
22
 
22
 
23
-#ifndef SPI_PINS_H_
24
-#define SPI_PINS_H_
23
+#ifndef _SPI_PINS_H_
24
+#define _SPI_PINS_H_
25
 
25
 
26
 /**
26
 /**
27
  * Define SPI Pins: SCK, MISO, MOSI, SS
27
  * Define SPI Pins: SCK, MISO, MOSI, SS
67
 #endif
67
 #endif
68
 
68
 
69
 
69
 
70
-#endif /* SPI_PINS_H_ */
70
+#endif // _SPI_PINS_H_

+ 3
- 3
Marlin/src/HAL/HAL_AVR/watchdog_AVR.h View File

20
  *
20
  *
21
  */
21
  */
22
 
22
 
23
-#ifndef WATCHDOG_AVR_H
24
-#define WATCHDOG_AVR_H
23
+#ifndef _WATCHDOG_AVR_H_
24
+#define _WATCHDOG_AVR_H_
25
 
25
 
26
 #include <avr/wdt.h>
26
 #include <avr/wdt.h>
27
 
27
 
32
 // first watchdog_init or AVR will go into emergency procedures.
32
 // first watchdog_init or AVR will go into emergency procedures.
33
 inline void watchdog_reset() { wdt_reset(); }
33
 inline void watchdog_reset() { wdt_reset(); }
34
 
34
 
35
-#endif // WATCHDOG_AVR_H
35
+#endif // _WATCHDOG_AVR_H_

+ 22
- 2
Marlin/src/config/default/Configuration.h View File

785
 #define Y_MAX_POS Y_BED_SIZE
785
 #define Y_MAX_POS Y_BED_SIZE
786
 #define Z_MAX_POS 200
786
 #define Z_MAX_POS 200
787
 
787
 
788
-// If enabled, axes won't move below MIN_POS in response to movement commands.
788
+/**
789
+ * Software Endstops
790
+ *
791
+ * - Prevent moves outside the set machine bounds.
792
+ * - Individual axes can be disabled, if desired.
793
+ * - X and Y only apply to Cartesian robots.
794
+ * - Use 'M211' to set software endstops on/off or report current state
795
+ */
796
+
797
+// Min software endstops constrain movement within minimum coordinate bounds
789
 #define MIN_SOFTWARE_ENDSTOPS
798
 #define MIN_SOFTWARE_ENDSTOPS
790
-// If enabled, axes won't move above MAX_POS in response to movement commands.
799
+#if ENABLED(MIN_SOFTWARE_ENDSTOPS)
800
+  #define MIN_SOFTWARE_ENDSTOP_X
801
+  #define MIN_SOFTWARE_ENDSTOP_Y
802
+  #define MIN_SOFTWARE_ENDSTOP_Z
803
+#endif
804
+
805
+// Max software endstops constrain movement within maximum coordinate bounds
791
 #define MAX_SOFTWARE_ENDSTOPS
806
 #define MAX_SOFTWARE_ENDSTOPS
807
+#if ENABLED(MAX_SOFTWARE_ENDSTOPS)
808
+  #define MAX_SOFTWARE_ENDSTOP_X
809
+  #define MAX_SOFTWARE_ENDSTOP_Y
810
+  #define MAX_SOFTWARE_ENDSTOP_Z
811
+#endif
792
 
812
 
793
 /**
813
 /**
794
  * Filament Runout Sensor
814
  * Filament Runout Sensor

+ 22
- 2
Marlin/src/config/examples/AlephObjects/TAZ4/Configuration.h View File

805
 #define Y_MAX_POS Y_BED_SIZE
805
 #define Y_MAX_POS Y_BED_SIZE
806
 #define Z_MAX_POS 250
806
 #define Z_MAX_POS 250
807
 
807
 
808
-// If enabled, axes won't move below MIN_POS in response to movement commands.
808
+/**
809
+ * Software Endstops
810
+ *
811
+ * - Prevent moves outside the set machine bounds.
812
+ * - Individual axes can be disabled, if desired.
813
+ * - X and Y only apply to Cartesian robots.
814
+ * - Use 'M211' to set software endstops on/off or report current state
815
+ */
816
+
817
+// Min software endstops constrain movement within minimum coordinate bounds
809
 #define MIN_SOFTWARE_ENDSTOPS
818
 #define MIN_SOFTWARE_ENDSTOPS
810
-// If enabled, axes won't move above MAX_POS in response to movement commands.
819
+#if ENABLED(MIN_SOFTWARE_ENDSTOPS)
820
+  #define MIN_SOFTWARE_ENDSTOP_X
821
+  #define MIN_SOFTWARE_ENDSTOP_Y
822
+  #define MIN_SOFTWARE_ENDSTOP_Z
823
+#endif
824
+
825
+// Max software endstops constrain movement within maximum coordinate bounds
811
 #define MAX_SOFTWARE_ENDSTOPS
826
 #define MAX_SOFTWARE_ENDSTOPS
827
+#if ENABLED(MAX_SOFTWARE_ENDSTOPS)
828
+  #define MAX_SOFTWARE_ENDSTOP_X
829
+  #define MAX_SOFTWARE_ENDSTOP_Y
830
+  #define MAX_SOFTWARE_ENDSTOP_Z
831
+#endif
812
 
832
 
813
 /**
833
 /**
814
  * Filament Runout Sensor
834
  * Filament Runout Sensor

+ 22
- 2
Marlin/src/config/examples/AliExpress/CL-260/Configuration.h View File

785
 #define Y_MAX_POS Y_BED_SIZE
785
 #define Y_MAX_POS Y_BED_SIZE
786
 #define Z_MAX_POS 260
786
 #define Z_MAX_POS 260
787
 
787
 
788
-// If enabled, axes won't move below MIN_POS in response to movement commands.
788
+/**
789
+ * Software Endstops
790
+ *
791
+ * - Prevent moves outside the set machine bounds.
792
+ * - Individual axes can be disabled, if desired.
793
+ * - X and Y only apply to Cartesian robots.
794
+ * - Use 'M211' to set software endstops on/off or report current state
795
+ */
796
+
797
+// Min software endstops constrain movement within minimum coordinate bounds
789
 #define MIN_SOFTWARE_ENDSTOPS
798
 #define MIN_SOFTWARE_ENDSTOPS
790
-// If enabled, axes won't move above MAX_POS in response to movement commands.
799
+#if ENABLED(MIN_SOFTWARE_ENDSTOPS)
800
+  #define MIN_SOFTWARE_ENDSTOP_X
801
+  #define MIN_SOFTWARE_ENDSTOP_Y
802
+  #define MIN_SOFTWARE_ENDSTOP_Z
803
+#endif
804
+
805
+// Max software endstops constrain movement within maximum coordinate bounds
791
 #define MAX_SOFTWARE_ENDSTOPS
806
 #define MAX_SOFTWARE_ENDSTOPS
807
+#if ENABLED(MAX_SOFTWARE_ENDSTOPS)
808
+  #define MAX_SOFTWARE_ENDSTOP_X
809
+  #define MAX_SOFTWARE_ENDSTOP_Y
810
+  #define MAX_SOFTWARE_ENDSTOP_Z
811
+#endif
792
 
812
 
793
 /**
813
 /**
794
  * Filament Runout Sensor
814
  * Filament Runout Sensor

+ 22
- 2
Marlin/src/config/examples/Anet/A6/Configuration.h View File

904
 #define X_MAX_POS X_BED_SIZE
904
 #define X_MAX_POS X_BED_SIZE
905
 #define Y_MAX_POS Y_BED_SIZE
905
 #define Y_MAX_POS Y_BED_SIZE
906
 
906
 
907
-// If enabled, axes won't move below MIN_POS in response to movement commands.
907
+/**
908
+ * Software Endstops
909
+ *
910
+ * - Prevent moves outside the set machine bounds.
911
+ * - Individual axes can be disabled, if desired.
912
+ * - X and Y only apply to Cartesian robots.
913
+ * - Use 'M211' to set software endstops on/off or report current state
914
+ */
915
+
916
+// Min software endstops constrain movement within minimum coordinate bounds
908
 #define MIN_SOFTWARE_ENDSTOPS
917
 #define MIN_SOFTWARE_ENDSTOPS
909
-// If enabled, axes won't move above MAX_POS in response to movement commands.
918
+#if ENABLED(MIN_SOFTWARE_ENDSTOPS)
919
+  #define MIN_SOFTWARE_ENDSTOP_X
920
+  #define MIN_SOFTWARE_ENDSTOP_Y
921
+  #define MIN_SOFTWARE_ENDSTOP_Z
922
+#endif
923
+
924
+// Max software endstops constrain movement within maximum coordinate bounds
910
 #define MAX_SOFTWARE_ENDSTOPS
925
 #define MAX_SOFTWARE_ENDSTOPS
926
+#if ENABLED(MAX_SOFTWARE_ENDSTOPS)
927
+  #define MAX_SOFTWARE_ENDSTOP_X
928
+  #define MAX_SOFTWARE_ENDSTOP_Y
929
+  #define MAX_SOFTWARE_ENDSTOP_Z
930
+#endif
911
 
931
 
912
 /**
932
 /**
913
  * Filament Runout Sensor
933
  * Filament Runout Sensor

+ 22
- 2
Marlin/src/config/examples/Anet/A8/Configuration.h View File

791
 #define Y_MAX_POS Y_BED_SIZE
791
 #define Y_MAX_POS Y_BED_SIZE
792
 #define Z_MAX_POS 240
792
 #define Z_MAX_POS 240
793
 
793
 
794
-// If enabled, axes won't move below MIN_POS in response to movement commands.
794
+/**
795
+ * Software Endstops
796
+ *
797
+ * - Prevent moves outside the set machine bounds.
798
+ * - Individual axes can be disabled, if desired.
799
+ * - X and Y only apply to Cartesian robots.
800
+ * - Use 'M211' to set software endstops on/off or report current state
801
+ */
802
+
803
+// Min software endstops constrain movement within minimum coordinate bounds
795
 #define MIN_SOFTWARE_ENDSTOPS
804
 #define MIN_SOFTWARE_ENDSTOPS
796
-// If enabled, axes won't move above MAX_POS in response to movement commands.
805
+#if ENABLED(MIN_SOFTWARE_ENDSTOPS)
806
+  #define MIN_SOFTWARE_ENDSTOP_X
807
+  #define MIN_SOFTWARE_ENDSTOP_Y
808
+  #define MIN_SOFTWARE_ENDSTOP_Z
809
+#endif
810
+
811
+// Max software endstops constrain movement within maximum coordinate bounds
797
 #define MAX_SOFTWARE_ENDSTOPS
812
 #define MAX_SOFTWARE_ENDSTOPS
813
+#if ENABLED(MAX_SOFTWARE_ENDSTOPS)
814
+  #define MAX_SOFTWARE_ENDSTOP_X
815
+  #define MAX_SOFTWARE_ENDSTOP_Y
816
+  #define MAX_SOFTWARE_ENDSTOP_Z
817
+#endif
798
 
818
 
799
 /**
819
 /**
800
  * Filament Runout Sensor
820
  * Filament Runout Sensor

+ 22
- 2
Marlin/src/config/examples/BQ/Hephestos/Configuration.h View File

776
 #define Y_MAX_POS Y_BED_SIZE
776
 #define Y_MAX_POS Y_BED_SIZE
777
 #define Z_MAX_POS 180
777
 #define Z_MAX_POS 180
778
 
778
 
779
-// If enabled, axes won't move below MIN_POS in response to movement commands.
779
+/**
780
+ * Software Endstops
781
+ *
782
+ * - Prevent moves outside the set machine bounds.
783
+ * - Individual axes can be disabled, if desired.
784
+ * - X and Y only apply to Cartesian robots.
785
+ * - Use 'M211' to set software endstops on/off or report current state
786
+ */
787
+
788
+// Min software endstops constrain movement within minimum coordinate bounds
780
 #define MIN_SOFTWARE_ENDSTOPS
789
 #define MIN_SOFTWARE_ENDSTOPS
781
-// If enabled, axes won't move above MAX_POS in response to movement commands.
790
+#if ENABLED(MIN_SOFTWARE_ENDSTOPS)
791
+  #define MIN_SOFTWARE_ENDSTOP_X
792
+  #define MIN_SOFTWARE_ENDSTOP_Y
793
+  #define MIN_SOFTWARE_ENDSTOP_Z
794
+#endif
795
+
796
+// Max software endstops constrain movement within maximum coordinate bounds
782
 #define MAX_SOFTWARE_ENDSTOPS
797
 #define MAX_SOFTWARE_ENDSTOPS
798
+#if ENABLED(MAX_SOFTWARE_ENDSTOPS)
799
+  #define MAX_SOFTWARE_ENDSTOP_X
800
+  #define MAX_SOFTWARE_ENDSTOP_Y
801
+  #define MAX_SOFTWARE_ENDSTOP_Z
802
+#endif
783
 
803
 
784
 /**
804
 /**
785
  * Filament Runout Sensor
805
  * Filament Runout Sensor

+ 22
- 2
Marlin/src/config/examples/BQ/Hephestos_2/Configuration.h View File

786
 #define Y_MAX_POS Y_BED_SIZE
786
 #define Y_MAX_POS Y_BED_SIZE
787
 #define Z_MAX_POS 210
787
 #define Z_MAX_POS 210
788
 
788
 
789
-// If enabled, axes won't move below MIN_POS in response to movement commands.
789
+/**
790
+ * Software Endstops
791
+ *
792
+ * - Prevent moves outside the set machine bounds.
793
+ * - Individual axes can be disabled, if desired.
794
+ * - X and Y only apply to Cartesian robots.
795
+ * - Use 'M211' to set software endstops on/off or report current state
796
+ */
797
+
798
+// Min software endstops constrain movement within minimum coordinate bounds
790
 #define MIN_SOFTWARE_ENDSTOPS
799
 #define MIN_SOFTWARE_ENDSTOPS
791
-// If enabled, axes won't move above MAX_POS in response to movement commands.
800
+#if ENABLED(MIN_SOFTWARE_ENDSTOPS)
801
+  #define MIN_SOFTWARE_ENDSTOP_X
802
+  #define MIN_SOFTWARE_ENDSTOP_Y
803
+  #define MIN_SOFTWARE_ENDSTOP_Z
804
+#endif
805
+
806
+// Max software endstops constrain movement within maximum coordinate bounds
792
 #define MAX_SOFTWARE_ENDSTOPS
807
 #define MAX_SOFTWARE_ENDSTOPS
808
+#if ENABLED(MAX_SOFTWARE_ENDSTOPS)
809
+  #define MAX_SOFTWARE_ENDSTOP_X
810
+  #define MAX_SOFTWARE_ENDSTOP_Y
811
+  #define MAX_SOFTWARE_ENDSTOP_Z
812
+#endif
793
 
813
 
794
 /**
814
 /**
795
  * Filament Runout Sensor
815
  * Filament Runout Sensor

+ 22
- 2
Marlin/src/config/examples/BQ/WITBOX/Configuration.h View File

776
 #define Y_MAX_POS Y_BED_SIZE
776
 #define Y_MAX_POS Y_BED_SIZE
777
 #define Z_MAX_POS 200
777
 #define Z_MAX_POS 200
778
 
778
 
779
-// If enabled, axes won't move below MIN_POS in response to movement commands.
779
+/**
780
+ * Software Endstops
781
+ *
782
+ * - Prevent moves outside the set machine bounds.
783
+ * - Individual axes can be disabled, if desired.
784
+ * - X and Y only apply to Cartesian robots.
785
+ * - Use 'M211' to set software endstops on/off or report current state
786
+ */
787
+
788
+// Min software endstops constrain movement within minimum coordinate bounds
780
 #define MIN_SOFTWARE_ENDSTOPS
789
 #define MIN_SOFTWARE_ENDSTOPS
781
-// If enabled, axes won't move above MAX_POS in response to movement commands.
790
+#if ENABLED(MIN_SOFTWARE_ENDSTOPS)
791
+  #define MIN_SOFTWARE_ENDSTOP_X
792
+  #define MIN_SOFTWARE_ENDSTOP_Y
793
+  #define MIN_SOFTWARE_ENDSTOP_Z
794
+#endif
795
+
796
+// Max software endstops constrain movement within maximum coordinate bounds
782
 #define MAX_SOFTWARE_ENDSTOPS
797
 #define MAX_SOFTWARE_ENDSTOPS
798
+#if ENABLED(MAX_SOFTWARE_ENDSTOPS)
799
+  #define MAX_SOFTWARE_ENDSTOP_X
800
+  #define MAX_SOFTWARE_ENDSTOP_Y
801
+  #define MAX_SOFTWARE_ENDSTOP_Z
802
+#endif
783
 
803
 
784
 /**
804
 /**
785
  * Filament Runout Sensor
805
  * Filament Runout Sensor

+ 22
- 2
Marlin/src/config/examples/Cartesio/Configuration.h View File

784
 #define Y_MAX_POS Y_BED_SIZE
784
 #define Y_MAX_POS Y_BED_SIZE
785
 #define Z_MAX_POS 400
785
 #define Z_MAX_POS 400
786
 
786
 
787
-// If enabled, axes won't move below MIN_POS in response to movement commands.
787
+/**
788
+ * Software Endstops
789
+ *
790
+ * - Prevent moves outside the set machine bounds.
791
+ * - Individual axes can be disabled, if desired.
792
+ * - X and Y only apply to Cartesian robots.
793
+ * - Use 'M211' to set software endstops on/off or report current state
794
+ */
795
+
796
+// Min software endstops constrain movement within minimum coordinate bounds
788
 #define MIN_SOFTWARE_ENDSTOPS
797
 #define MIN_SOFTWARE_ENDSTOPS
789
-// If enabled, axes won't move above MAX_POS in response to movement commands.
798
+#if ENABLED(MIN_SOFTWARE_ENDSTOPS)
799
+  #define MIN_SOFTWARE_ENDSTOP_X
800
+  #define MIN_SOFTWARE_ENDSTOP_Y
801
+  #define MIN_SOFTWARE_ENDSTOP_Z
802
+#endif
803
+
804
+// Max software endstops constrain movement within maximum coordinate bounds
790
 #define MAX_SOFTWARE_ENDSTOPS
805
 #define MAX_SOFTWARE_ENDSTOPS
806
+#if ENABLED(MAX_SOFTWARE_ENDSTOPS)
807
+  #define MAX_SOFTWARE_ENDSTOP_X
808
+  #define MAX_SOFTWARE_ENDSTOP_Y
809
+  #define MAX_SOFTWARE_ENDSTOP_Z
810
+#endif
791
 
811
 
792
 /**
812
 /**
793
  * Filament Runout Sensor
813
  * Filament Runout Sensor

+ 22
- 2
Marlin/src/config/examples/Creality/CR-10/Configuration.h View File

795
 #define Y_MAX_POS Y_BED_SIZE
795
 #define Y_MAX_POS Y_BED_SIZE
796
 #define Z_MAX_POS 400
796
 #define Z_MAX_POS 400
797
 
797
 
798
-// If enabled, axes won't move below MIN_POS in response to movement commands.
798
+/**
799
+ * Software Endstops
800
+ *
801
+ * - Prevent moves outside the set machine bounds.
802
+ * - Individual axes can be disabled, if desired.
803
+ * - X and Y only apply to Cartesian robots.
804
+ * - Use 'M211' to set software endstops on/off or report current state
805
+ */
806
+
807
+// Min software endstops constrain movement within minimum coordinate bounds
799
 #define MIN_SOFTWARE_ENDSTOPS
808
 #define MIN_SOFTWARE_ENDSTOPS
800
-// If enabled, axes won't move above MAX_POS in response to movement commands.
809
+#if ENABLED(MIN_SOFTWARE_ENDSTOPS)
810
+  #define MIN_SOFTWARE_ENDSTOP_X
811
+  #define MIN_SOFTWARE_ENDSTOP_Y
812
+  #define MIN_SOFTWARE_ENDSTOP_Z
813
+#endif
814
+
815
+// Max software endstops constrain movement within maximum coordinate bounds
801
 #define MAX_SOFTWARE_ENDSTOPS
816
 #define MAX_SOFTWARE_ENDSTOPS
817
+#if ENABLED(MAX_SOFTWARE_ENDSTOPS)
818
+  #define MAX_SOFTWARE_ENDSTOP_X
819
+  #define MAX_SOFTWARE_ENDSTOP_Y
820
+  #define MAX_SOFTWARE_ENDSTOP_Z
821
+#endif
802
 
822
 
803
 /**
823
 /**
804
  * Filament Runout Sensor
824
  * Filament Runout Sensor

+ 22
- 2
Marlin/src/config/examples/Felix/Configuration.h View File

767
 #define Y_MAX_POS Y_BED_SIZE
767
 #define Y_MAX_POS Y_BED_SIZE
768
 #define Z_MAX_POS 235
768
 #define Z_MAX_POS 235
769
 
769
 
770
-// If enabled, axes won't move below MIN_POS in response to movement commands.
770
+/**
771
+ * Software Endstops
772
+ *
773
+ * - Prevent moves outside the set machine bounds.
774
+ * - Individual axes can be disabled, if desired.
775
+ * - X and Y only apply to Cartesian robots.
776
+ * - Use 'M211' to set software endstops on/off or report current state
777
+ */
778
+
779
+// Min software endstops constrain movement within minimum coordinate bounds
771
 #define MIN_SOFTWARE_ENDSTOPS
780
 #define MIN_SOFTWARE_ENDSTOPS
772
-// If enabled, axes won't move above MAX_POS in response to movement commands.
781
+#if ENABLED(MIN_SOFTWARE_ENDSTOPS)
782
+  #define MIN_SOFTWARE_ENDSTOP_X
783
+  #define MIN_SOFTWARE_ENDSTOP_Y
784
+  #define MIN_SOFTWARE_ENDSTOP_Z
785
+#endif
786
+
787
+// Max software endstops constrain movement within maximum coordinate bounds
773
 #define MAX_SOFTWARE_ENDSTOPS
788
 #define MAX_SOFTWARE_ENDSTOPS
789
+#if ENABLED(MAX_SOFTWARE_ENDSTOPS)
790
+  #define MAX_SOFTWARE_ENDSTOP_X
791
+  #define MAX_SOFTWARE_ENDSTOP_Y
792
+  #define MAX_SOFTWARE_ENDSTOP_Z
793
+#endif
774
 
794
 
775
 /**
795
 /**
776
  * Filament Runout Sensor
796
  * Filament Runout Sensor

+ 22
- 2
Marlin/src/config/examples/Felix/DUAL/Configuration.h View File

767
 #define Y_MAX_POS Y_BED_SIZE
767
 #define Y_MAX_POS Y_BED_SIZE
768
 #define Z_MAX_POS 235
768
 #define Z_MAX_POS 235
769
 
769
 
770
-// If enabled, axes won't move below MIN_POS in response to movement commands.
770
+/**
771
+ * Software Endstops
772
+ *
773
+ * - Prevent moves outside the set machine bounds.
774
+ * - Individual axes can be disabled, if desired.
775
+ * - X and Y only apply to Cartesian robots.
776
+ * - Use 'M211' to set software endstops on/off or report current state
777
+ */
778
+
779
+// Min software endstops constrain movement within minimum coordinate bounds
771
 #define MIN_SOFTWARE_ENDSTOPS
780
 #define MIN_SOFTWARE_ENDSTOPS
772
-// If enabled, axes won't move above MAX_POS in response to movement commands.
781
+#if ENABLED(MIN_SOFTWARE_ENDSTOPS)
782
+  #define MIN_SOFTWARE_ENDSTOP_X
783
+  #define MIN_SOFTWARE_ENDSTOP_Y
784
+  #define MIN_SOFTWARE_ENDSTOP_Z
785
+#endif
786
+
787
+// Max software endstops constrain movement within maximum coordinate bounds
773
 #define MAX_SOFTWARE_ENDSTOPS
788
 #define MAX_SOFTWARE_ENDSTOPS
789
+#if ENABLED(MAX_SOFTWARE_ENDSTOPS)
790
+  #define MAX_SOFTWARE_ENDSTOP_X
791
+  #define MAX_SOFTWARE_ENDSTOP_Y
792
+  #define MAX_SOFTWARE_ENDSTOP_Z
793
+#endif
774
 
794
 
775
 /**
795
 /**
776
  * Filament Runout Sensor
796
  * Filament Runout Sensor

+ 22
- 2
Marlin/src/config/examples/Folger Tech/i3-2020/Configuration.h View File

789
 #define Y_MAX_POS 182
789
 #define Y_MAX_POS 182
790
 #define Z_MAX_POS 175
790
 #define Z_MAX_POS 175
791
 
791
 
792
-// If enabled, axes won't move below MIN_POS in response to movement commands.
792
+/**
793
+ * Software Endstops
794
+ *
795
+ * - Prevent moves outside the set machine bounds.
796
+ * - Individual axes can be disabled, if desired.
797
+ * - X and Y only apply to Cartesian robots.
798
+ * - Use 'M211' to set software endstops on/off or report current state
799
+ */
800
+
801
+// Min software endstops curtail movement below minimum coordinate bounds
793
 //#define MIN_SOFTWARE_ENDSTOPS
802
 //#define MIN_SOFTWARE_ENDSTOPS
794
-// If enabled, axes won't move above MAX_POS in response to movement commands.
803
+#if ENABLED(MIN_SOFTWARE_ENDSTOPS)
804
+  #define MIN_SOFTWARE_ENDSTOP_X
805
+  #define MIN_SOFTWARE_ENDSTOP_Y
806
+  #define MIN_SOFTWARE_ENDSTOP_Z
807
+#endif
808
+
809
+// Max software endstops curtail movement above maximum coordinate bounds
795
 #define MAX_SOFTWARE_ENDSTOPS
810
 #define MAX_SOFTWARE_ENDSTOPS
811
+#if ENABLED(MAX_SOFTWARE_ENDSTOPS)
812
+  #define MAX_SOFTWARE_ENDSTOP_X
813
+  #define MAX_SOFTWARE_ENDSTOP_Y
814
+  #define MAX_SOFTWARE_ENDSTOP_Z
815
+#endif
796
 
816
 
797
 /**
817
 /**
798
  * Filament Runout Sensor
818
  * Filament Runout Sensor

+ 22
- 2
Marlin/src/config/examples/Geeetech/GT2560/Configuration.h View File

800
 #define Y_MAX_POS Y_BED_SIZE
800
 #define Y_MAX_POS Y_BED_SIZE
801
 #define Z_MAX_POS 200
801
 #define Z_MAX_POS 200
802
 
802
 
803
-// If enabled, axes won't move below MIN_POS in response to movement commands.
803
+/**
804
+ * Software Endstops
805
+ *
806
+ * - Prevent moves outside the set machine bounds.
807
+ * - Individual axes can be disabled, if desired.
808
+ * - X and Y only apply to Cartesian robots.
809
+ * - Use 'M211' to set software endstops on/off or report current state
810
+ */
811
+
812
+// Min software endstops constrain movement within minimum coordinate bounds
804
 #define MIN_SOFTWARE_ENDSTOPS
813
 #define MIN_SOFTWARE_ENDSTOPS
805
-// If enabled, axes won't move above MAX_POS in response to movement commands.
814
+#if ENABLED(MIN_SOFTWARE_ENDSTOPS)
815
+  #define MIN_SOFTWARE_ENDSTOP_X
816
+  #define MIN_SOFTWARE_ENDSTOP_Y
817
+  #define MIN_SOFTWARE_ENDSTOP_Z
818
+#endif
819
+
820
+// Max software endstops constrain movement within maximum coordinate bounds
806
 #define MAX_SOFTWARE_ENDSTOPS
821
 #define MAX_SOFTWARE_ENDSTOPS
822
+#if ENABLED(MAX_SOFTWARE_ENDSTOPS)
823
+  #define MAX_SOFTWARE_ENDSTOP_X
824
+  #define MAX_SOFTWARE_ENDSTOP_Y
825
+  #define MAX_SOFTWARE_ENDSTOP_Z
826
+#endif
807
 
827
 
808
 /**
828
 /**
809
  * Filament Runout Sensor
829
  * Filament Runout Sensor

+ 22
- 2
Marlin/src/config/examples/Geeetech/I3_Pro_X-GT2560/Configuration.h View File

785
 #define Y_MAX_POS Y_BED_SIZE
785
 #define Y_MAX_POS Y_BED_SIZE
786
 #define Z_MAX_POS 170
786
 #define Z_MAX_POS 170
787
 
787
 
788
-// If enabled, axes won't move below MIN_POS in response to movement commands.
788
+/**
789
+ * Software Endstops
790
+ *
791
+ * - Prevent moves outside the set machine bounds.
792
+ * - Individual axes can be disabled, if desired.
793
+ * - X and Y only apply to Cartesian robots.
794
+ * - Use 'M211' to set software endstops on/off or report current state
795
+ */
796
+
797
+// Min software endstops constrain movement within minimum coordinate bounds
789
 #define MIN_SOFTWARE_ENDSTOPS
798
 #define MIN_SOFTWARE_ENDSTOPS
790
-// If enabled, axes won't move above MAX_POS in response to movement commands.
799
+#if ENABLED(MIN_SOFTWARE_ENDSTOPS)
800
+  #define MIN_SOFTWARE_ENDSTOP_X
801
+  #define MIN_SOFTWARE_ENDSTOP_Y
802
+  #define MIN_SOFTWARE_ENDSTOP_Z
803
+#endif
804
+
805
+// Max software endstops constrain movement within maximum coordinate bounds
791
 #define MAX_SOFTWARE_ENDSTOPS
806
 #define MAX_SOFTWARE_ENDSTOPS
807
+#if ENABLED(MAX_SOFTWARE_ENDSTOPS)
808
+  #define MAX_SOFTWARE_ENDSTOP_X
809
+  #define MAX_SOFTWARE_ENDSTOP_Y
810
+  #define MAX_SOFTWARE_ENDSTOP_Z
811
+#endif
792
 
812
 
793
 /**
813
 /**
794
  * Filament Runout Sensor
814
  * Filament Runout Sensor

+ 22
- 2
Marlin/src/config/examples/Infitary/i3-M508/Configuration.h View File

789
 #define Y_MAX_POS Y_BED_SIZE
789
 #define Y_MAX_POS Y_BED_SIZE
790
 #define Z_MAX_POS 185
790
 #define Z_MAX_POS 185
791
 
791
 
792
-// If enabled, axes won't move below MIN_POS in response to movement commands.
792
+/**
793
+ * Software Endstops
794
+ *
795
+ * - Prevent moves outside the set machine bounds.
796
+ * - Individual axes can be disabled, if desired.
797
+ * - X and Y only apply to Cartesian robots.
798
+ * - Use 'M211' to set software endstops on/off or report current state
799
+ */
800
+
801
+// Min software endstops constrain movement within minimum coordinate bounds
793
 #define MIN_SOFTWARE_ENDSTOPS
802
 #define MIN_SOFTWARE_ENDSTOPS
794
-// If enabled, axes won't move above MAX_POS in response to movement commands.
803
+#if ENABLED(MIN_SOFTWARE_ENDSTOPS)
804
+  #define MIN_SOFTWARE_ENDSTOP_X
805
+  #define MIN_SOFTWARE_ENDSTOP_Y
806
+  #define MIN_SOFTWARE_ENDSTOP_Z
807
+#endif
808
+
809
+// Max software endstops constrain movement within maximum coordinate bounds
795
 #define MAX_SOFTWARE_ENDSTOPS
810
 #define MAX_SOFTWARE_ENDSTOPS
811
+#if ENABLED(MAX_SOFTWARE_ENDSTOPS)
812
+  #define MAX_SOFTWARE_ENDSTOP_X
813
+  #define MAX_SOFTWARE_ENDSTOP_Y
814
+  #define MAX_SOFTWARE_ENDSTOP_Z
815
+#endif
796
 
816
 
797
 /**
817
 /**
798
  * Filament Runout Sensor
818
  * Filament Runout Sensor

+ 22
- 2
Marlin/src/config/examples/Malyan/M150/Configuration.h View File

809
 #define Y_MAX_POS Y_BED_SIZE
809
 #define Y_MAX_POS Y_BED_SIZE
810
 #define Z_MAX_POS 180
810
 #define Z_MAX_POS 180
811
 
811
 
812
-// If enabled, axes won't move below MIN_POS in response to movement commands.
812
+/**
813
+ * Software Endstops
814
+ *
815
+ * - Prevent moves outside the set machine bounds.
816
+ * - Individual axes can be disabled, if desired.
817
+ * - X and Y only apply to Cartesian robots.
818
+ * - Use 'M211' to set software endstops on/off or report current state
819
+ */
820
+
821
+// Min software endstops constrain movement within minimum coordinate bounds
813
 #define MIN_SOFTWARE_ENDSTOPS
822
 #define MIN_SOFTWARE_ENDSTOPS
814
-// If enabled, axes won't move above MAX_POS in response to movement commands.
823
+#if ENABLED(MIN_SOFTWARE_ENDSTOPS)
824
+  #define MIN_SOFTWARE_ENDSTOP_X
825
+  #define MIN_SOFTWARE_ENDSTOP_Y
826
+  #define MIN_SOFTWARE_ENDSTOP_Z
827
+#endif
828
+
829
+// Max software endstops constrain movement within maximum coordinate bounds
815
 #define MAX_SOFTWARE_ENDSTOPS
830
 #define MAX_SOFTWARE_ENDSTOPS
831
+#if ENABLED(MAX_SOFTWARE_ENDSTOPS)
832
+  #define MAX_SOFTWARE_ENDSTOP_X
833
+  #define MAX_SOFTWARE_ENDSTOP_Y
834
+  #define MAX_SOFTWARE_ENDSTOP_Z
835
+#endif
816
 
836
 
817
 /**
837
 /**
818
  * Filament Runout Sensor
838
  * Filament Runout Sensor

+ 22
- 2
Marlin/src/config/examples/Mks/Sbase/Configuration.h View File

787
 #define Y_MAX_POS Y_BED_SIZE
787
 #define Y_MAX_POS Y_BED_SIZE
788
 #define Z_MAX_POS 200
788
 #define Z_MAX_POS 200
789
 
789
 
790
-// If enabled, axes won't move below MIN_POS in response to movement commands.
790
+/**
791
+ * Software Endstops
792
+ *
793
+ * - Prevent moves outside the set machine bounds.
794
+ * - Individual axes can be disabled, if desired.
795
+ * - X and Y only apply to Cartesian robots.
796
+ * - Use 'M211' to set software endstops on/off or report current state
797
+ */
798
+
799
+// Min software endstops curtail movement below minimum coordinate bounds
791
 //#define MIN_SOFTWARE_ENDSTOPS
800
 //#define MIN_SOFTWARE_ENDSTOPS
792
-// If enabled, axes won't move above MAX_POS in response to movement commands.
801
+#if ENABLED(MIN_SOFTWARE_ENDSTOPS)
802
+  #define MIN_SOFTWARE_ENDSTOP_X
803
+  #define MIN_SOFTWARE_ENDSTOP_Y
804
+  #define MIN_SOFTWARE_ENDSTOP_Z
805
+#endif
806
+
807
+// Max software endstops curtail movement above maximum coordinate bounds
793
 //#define MAX_SOFTWARE_ENDSTOPS
808
 //#define MAX_SOFTWARE_ENDSTOPS
809
+#if ENABLED(MAX_SOFTWARE_ENDSTOPS)
810
+  #define MAX_SOFTWARE_ENDSTOP_X
811
+  #define MAX_SOFTWARE_ENDSTOP_Y
812
+  #define MAX_SOFTWARE_ENDSTOP_Z
813
+#endif
794
 
814
 
795
 /**
815
 /**
796
  * Filament Runout Sensor
816
  * Filament Runout Sensor

+ 22
- 2
Marlin/src/config/examples/RepRapWorld/Megatronics/Configuration.h View File

785
 #define Y_MAX_POS Y_BED_SIZE
785
 #define Y_MAX_POS Y_BED_SIZE
786
 #define Z_MAX_POS 200
786
 #define Z_MAX_POS 200
787
 
787
 
788
-// If enabled, axes won't move below MIN_POS in response to movement commands.
788
+/**
789
+ * Software Endstops
790
+ *
791
+ * - Prevent moves outside the set machine bounds.
792
+ * - Individual axes can be disabled, if desired.
793
+ * - X and Y only apply to Cartesian robots.
794
+ * - Use 'M211' to set software endstops on/off or report current state
795
+ */
796
+
797
+// Min software endstops constrain movement within minimum coordinate bounds
789
 #define MIN_SOFTWARE_ENDSTOPS
798
 #define MIN_SOFTWARE_ENDSTOPS
790
-// If enabled, axes won't move above MAX_POS in response to movement commands.
799
+#if ENABLED(MIN_SOFTWARE_ENDSTOPS)
800
+  #define MIN_SOFTWARE_ENDSTOP_X
801
+  #define MIN_SOFTWARE_ENDSTOP_Y
802
+  #define MIN_SOFTWARE_ENDSTOP_Z
803
+#endif
804
+
805
+// Max software endstops constrain movement within maximum coordinate bounds
791
 #define MAX_SOFTWARE_ENDSTOPS
806
 #define MAX_SOFTWARE_ENDSTOPS
807
+#if ENABLED(MAX_SOFTWARE_ENDSTOPS)
808
+  #define MAX_SOFTWARE_ENDSTOP_X
809
+  #define MAX_SOFTWARE_ENDSTOP_Y
810
+  #define MAX_SOFTWARE_ENDSTOP_Z
811
+#endif
792
 
812
 
793
 /**
813
 /**
794
  * Filament Runout Sensor
814
  * Filament Runout Sensor

+ 22
- 2
Marlin/src/config/examples/RigidBot/Configuration.h View File

783
 #define Y_MAX_POS Y_BED_SIZE
783
 #define Y_MAX_POS Y_BED_SIZE
784
 #define Z_MAX_POS 254  // RigidBot regular and Big are 254mm
784
 #define Z_MAX_POS 254  // RigidBot regular and Big are 254mm
785
 
785
 
786
-// If enabled, axes won't move below MIN_POS in response to movement commands.
786
+/**
787
+ * Software Endstops
788
+ *
789
+ * - Prevent moves outside the set machine bounds.
790
+ * - Individual axes can be disabled, if desired.
791
+ * - X and Y only apply to Cartesian robots.
792
+ * - Use 'M211' to set software endstops on/off or report current state
793
+ */
794
+
795
+// Min software endstops constrain movement within minimum coordinate bounds
787
 #define MIN_SOFTWARE_ENDSTOPS
796
 #define MIN_SOFTWARE_ENDSTOPS
788
-// If enabled, axes won't move above MAX_POS in response to movement commands.
797
+#if ENABLED(MIN_SOFTWARE_ENDSTOPS)
798
+  #define MIN_SOFTWARE_ENDSTOP_X
799
+  #define MIN_SOFTWARE_ENDSTOP_Y
800
+  #define MIN_SOFTWARE_ENDSTOP_Z
801
+#endif
802
+
803
+// Max software endstops constrain movement within maximum coordinate bounds
789
 #define MAX_SOFTWARE_ENDSTOPS
804
 #define MAX_SOFTWARE_ENDSTOPS
805
+#if ENABLED(MAX_SOFTWARE_ENDSTOPS)
806
+  #define MAX_SOFTWARE_ENDSTOP_X
807
+  #define MAX_SOFTWARE_ENDSTOP_Y
808
+  #define MAX_SOFTWARE_ENDSTOP_Z
809
+#endif
790
 
810
 
791
 /**
811
 /**
792
  * Filament Runout Sensor
812
  * Filament Runout Sensor

+ 22
- 2
Marlin/src/config/examples/SCARA/Configuration.h View File

797
 #define Y_MAX_POS Y_BED_SIZE
797
 #define Y_MAX_POS Y_BED_SIZE
798
 #define Z_MAX_POS 225
798
 #define Z_MAX_POS 225
799
 
799
 
800
-// If enabled, axes won't move below MIN_POS in response to movement commands.
800
+/**
801
+ * Software Endstops
802
+ *
803
+ * - Prevent moves outside the set machine bounds.
804
+ * - Individual axes can be disabled, if desired.
805
+ * - X and Y only apply to Cartesian robots.
806
+ * - Use 'M211' to set software endstops on/off or report current state
807
+ */
808
+
809
+// Min software endstops constrain movement within minimum coordinate bounds
801
 #define MIN_SOFTWARE_ENDSTOPS
810
 #define MIN_SOFTWARE_ENDSTOPS
802
-// If enabled, axes won't move above MAX_POS in response to movement commands.
811
+#if ENABLED(MIN_SOFTWARE_ENDSTOPS)
812
+  #define MIN_SOFTWARE_ENDSTOP_X
813
+  #define MIN_SOFTWARE_ENDSTOP_Y
814
+  #define MIN_SOFTWARE_ENDSTOP_Z
815
+#endif
816
+
817
+// Max software endstops constrain movement within maximum coordinate bounds
803
 #define MAX_SOFTWARE_ENDSTOPS
818
 #define MAX_SOFTWARE_ENDSTOPS
819
+#if ENABLED(MAX_SOFTWARE_ENDSTOPS)
820
+  #define MAX_SOFTWARE_ENDSTOP_X
821
+  #define MAX_SOFTWARE_ENDSTOP_Y
822
+  #define MAX_SOFTWARE_ENDSTOP_Z
823
+#endif
804
 
824
 
805
 /**
825
 /**
806
  * Filament Runout Sensor
826
  * Filament Runout Sensor

+ 22
- 2
Marlin/src/config/examples/Sanguinololu/Configuration.h View File

816
 #define Y_MAX_POS Y_BED_SIZE
816
 #define Y_MAX_POS Y_BED_SIZE
817
 #define Z_MAX_POS 170
817
 #define Z_MAX_POS 170
818
 
818
 
819
-// If enabled, axes won't move below MIN_POS in response to movement commands.
819
+/**
820
+ * Software Endstops
821
+ *
822
+ * - Prevent moves outside the set machine bounds.
823
+ * - Individual axes can be disabled, if desired.
824
+ * - X and Y only apply to Cartesian robots.
825
+ * - Use 'M211' to set software endstops on/off or report current state
826
+ */
827
+
828
+// Min software endstops constrain movement within minimum coordinate bounds
820
 #define MIN_SOFTWARE_ENDSTOPS
829
 #define MIN_SOFTWARE_ENDSTOPS
821
-// If enabled, axes won't move above MAX_POS in response to movement commands.
830
+#if ENABLED(MIN_SOFTWARE_ENDSTOPS)
831
+  #define MIN_SOFTWARE_ENDSTOP_X
832
+  #define MIN_SOFTWARE_ENDSTOP_Y
833
+  #define MIN_SOFTWARE_ENDSTOP_Z
834
+#endif
835
+
836
+// Max software endstops constrain movement within maximum coordinate bounds
822
 #define MAX_SOFTWARE_ENDSTOPS
837
 #define MAX_SOFTWARE_ENDSTOPS
838
+#if ENABLED(MAX_SOFTWARE_ENDSTOPS)
839
+  #define MAX_SOFTWARE_ENDSTOP_X
840
+  #define MAX_SOFTWARE_ENDSTOP_Y
841
+  #define MAX_SOFTWARE_ENDSTOP_Z
842
+#endif
823
 
843
 
824
 /**
844
 /**
825
  * Filament Runout Sensor
845
  * Filament Runout Sensor

+ 22
- 2
Marlin/src/config/examples/TinyBoy2/Configuration.h View File

841
   #define Z_MAX_POS 158
841
   #define Z_MAX_POS 158
842
 #endif
842
 #endif
843
 
843
 
844
-// If enabled, axes won't move below MIN_POS in response to movement commands.
844
+/**
845
+ * Software Endstops
846
+ *
847
+ * - Prevent moves outside the set machine bounds.
848
+ * - Individual axes can be disabled, if desired.
849
+ * - X and Y only apply to Cartesian robots.
850
+ * - Use 'M211' to set software endstops on/off or report current state
851
+ */
852
+
853
+// Min software endstops constrain movement within minimum coordinate bounds
845
 #define MIN_SOFTWARE_ENDSTOPS
854
 #define MIN_SOFTWARE_ENDSTOPS
846
-// If enabled, axes won't move above MAX_POS in response to movement commands.
855
+#if ENABLED(MIN_SOFTWARE_ENDSTOPS)
856
+  #define MIN_SOFTWARE_ENDSTOP_X
857
+  #define MIN_SOFTWARE_ENDSTOP_Y
858
+  #define MIN_SOFTWARE_ENDSTOP_Z
859
+#endif
860
+
861
+// Max software endstops constrain movement within maximum coordinate bounds
847
 #define MAX_SOFTWARE_ENDSTOPS
862
 #define MAX_SOFTWARE_ENDSTOPS
863
+#if ENABLED(MAX_SOFTWARE_ENDSTOPS)
864
+  #define MAX_SOFTWARE_ENDSTOP_X
865
+  #define MAX_SOFTWARE_ENDSTOP_Y
866
+  #define MAX_SOFTWARE_ENDSTOP_Z
867
+#endif
848
 
868
 
849
 /**
869
 /**
850
  * Filament Runout Sensor
870
  * Filament Runout Sensor

+ 22
- 2
Marlin/src/config/examples/Velleman/K8200/Configuration.h View File

815
 #define Y_MAX_POS Y_BED_SIZE
815
 #define Y_MAX_POS Y_BED_SIZE
816
 #define Z_MAX_POS 200
816
 #define Z_MAX_POS 200
817
 
817
 
818
-// If enabled, axes won't move below MIN_POS in response to movement commands.
818
+/**
819
+ * Software Endstops
820
+ *
821
+ * - Prevent moves outside the set machine bounds.
822
+ * - Individual axes can be disabled, if desired.
823
+ * - X and Y only apply to Cartesian robots.
824
+ * - Use 'M211' to set software endstops on/off or report current state
825
+ */
826
+
827
+// Min software endstops constrain movement within minimum coordinate bounds
819
 #define MIN_SOFTWARE_ENDSTOPS
828
 #define MIN_SOFTWARE_ENDSTOPS
820
-// If enabled, axes won't move above MAX_POS in response to movement commands.
829
+#if ENABLED(MIN_SOFTWARE_ENDSTOPS)
830
+  #define MIN_SOFTWARE_ENDSTOP_X
831
+  #define MIN_SOFTWARE_ENDSTOP_Y
832
+  #define MIN_SOFTWARE_ENDSTOP_Z
833
+#endif
834
+
835
+// Max software endstops constrain movement within maximum coordinate bounds
821
 #define MAX_SOFTWARE_ENDSTOPS
836
 #define MAX_SOFTWARE_ENDSTOPS
837
+#if ENABLED(MAX_SOFTWARE_ENDSTOPS)
838
+  #define MAX_SOFTWARE_ENDSTOP_X
839
+  #define MAX_SOFTWARE_ENDSTOP_Y
840
+  #define MAX_SOFTWARE_ENDSTOP_Z
841
+#endif
822
 
842
 
823
 /**
843
 /**
824
  * Filament Runout Sensor
844
  * Filament Runout Sensor

+ 22
- 2
Marlin/src/config/examples/Velleman/K8400/Configuration.h View File

785
 #define Y_MAX_POS Y_BED_SIZE
785
 #define Y_MAX_POS Y_BED_SIZE
786
 #define Z_MAX_POS 190
786
 #define Z_MAX_POS 190
787
 
787
 
788
-// If enabled, axes won't move below MIN_POS in response to movement commands.
788
+/**
789
+ * Software Endstops
790
+ *
791
+ * - Prevent moves outside the set machine bounds.
792
+ * - Individual axes can be disabled, if desired.
793
+ * - X and Y only apply to Cartesian robots.
794
+ * - Use 'M211' to set software endstops on/off or report current state
795
+ */
796
+
797
+// Min software endstops constrain movement within minimum coordinate bounds
789
 #define MIN_SOFTWARE_ENDSTOPS
798
 #define MIN_SOFTWARE_ENDSTOPS
790
-// If enabled, axes won't move above MAX_POS in response to movement commands.
799
+#if ENABLED(MIN_SOFTWARE_ENDSTOPS)
800
+  #define MIN_SOFTWARE_ENDSTOP_X
801
+  #define MIN_SOFTWARE_ENDSTOP_Y
802
+  #define MIN_SOFTWARE_ENDSTOP_Z
803
+#endif
804
+
805
+// Max software endstops constrain movement within maximum coordinate bounds
791
 #define MAX_SOFTWARE_ENDSTOPS
806
 #define MAX_SOFTWARE_ENDSTOPS
807
+#if ENABLED(MAX_SOFTWARE_ENDSTOPS)
808
+  #define MAX_SOFTWARE_ENDSTOP_X
809
+  #define MAX_SOFTWARE_ENDSTOP_Y
810
+  #define MAX_SOFTWARE_ENDSTOP_Z
811
+#endif
792
 
812
 
793
 /**
813
 /**
794
  * Filament Runout Sensor
814
  * Filament Runout Sensor

+ 22
- 2
Marlin/src/config/examples/Velleman/K8400/Dual-head/Configuration.h View File

785
 #define Y_MAX_POS Y_BED_SIZE
785
 #define Y_MAX_POS Y_BED_SIZE
786
 #define Z_MAX_POS 190
786
 #define Z_MAX_POS 190
787
 
787
 
788
-// If enabled, axes won't move below MIN_POS in response to movement commands.
788
+/**
789
+ * Software Endstops
790
+ *
791
+ * - Prevent moves outside the set machine bounds.
792
+ * - Individual axes can be disabled, if desired.
793
+ * - X and Y only apply to Cartesian robots.
794
+ * - Use 'M211' to set software endstops on/off or report current state
795
+ */
796
+
797
+// Min software endstops constrain movement within minimum coordinate bounds
789
 #define MIN_SOFTWARE_ENDSTOPS
798
 #define MIN_SOFTWARE_ENDSTOPS
790
-// If enabled, axes won't move above MAX_POS in response to movement commands.
799
+#if ENABLED(MIN_SOFTWARE_ENDSTOPS)
800
+  #define MIN_SOFTWARE_ENDSTOP_X
801
+  #define MIN_SOFTWARE_ENDSTOP_Y
802
+  #define MIN_SOFTWARE_ENDSTOP_Z
803
+#endif
804
+
805
+// Max software endstops constrain movement within maximum coordinate bounds
791
 #define MAX_SOFTWARE_ENDSTOPS
806
 #define MAX_SOFTWARE_ENDSTOPS
807
+#if ENABLED(MAX_SOFTWARE_ENDSTOPS)
808
+  #define MAX_SOFTWARE_ENDSTOP_X
809
+  #define MAX_SOFTWARE_ENDSTOP_Y
810
+  #define MAX_SOFTWARE_ENDSTOP_Z
811
+#endif
792
 
812
 
793
 /**
813
 /**
794
  * Filament Runout Sensor
814
  * Filament Runout Sensor

+ 22
- 2
Marlin/src/config/examples/adafruit/ST7565/Configuration.h View File

785
 #define Y_MAX_POS Y_BED_SIZE
785
 #define Y_MAX_POS Y_BED_SIZE
786
 #define Z_MAX_POS 200
786
 #define Z_MAX_POS 200
787
 
787
 
788
-// If enabled, axes won't move below MIN_POS in response to movement commands.
788
+/**
789
+ * Software Endstops
790
+ *
791
+ * - Prevent moves outside the set machine bounds.
792
+ * - Individual axes can be disabled, if desired.
793
+ * - X and Y only apply to Cartesian robots.
794
+ * - Use 'M211' to set software endstops on/off or report current state
795
+ */
796
+
797
+// Min software endstops constrain movement within minimum coordinate bounds
789
 #define MIN_SOFTWARE_ENDSTOPS
798
 #define MIN_SOFTWARE_ENDSTOPS
790
-// If enabled, axes won't move above MAX_POS in response to movement commands.
799
+#if ENABLED(MIN_SOFTWARE_ENDSTOPS)
800
+  #define MIN_SOFTWARE_ENDSTOP_X
801
+  #define MIN_SOFTWARE_ENDSTOP_Y
802
+  #define MIN_SOFTWARE_ENDSTOP_Z
803
+#endif
804
+
805
+// Max software endstops constrain movement within maximum coordinate bounds
791
 #define MAX_SOFTWARE_ENDSTOPS
806
 #define MAX_SOFTWARE_ENDSTOPS
807
+#if ENABLED(MAX_SOFTWARE_ENDSTOPS)
808
+  #define MAX_SOFTWARE_ENDSTOP_X
809
+  #define MAX_SOFTWARE_ENDSTOP_Y
810
+  #define MAX_SOFTWARE_ENDSTOP_Z
811
+#endif
792
 
812
 
793
 /**
813
 /**
794
  * Filament Runout Sensor
814
  * Filament Runout Sensor

+ 22
- 2
Marlin/src/config/examples/delta/FLSUN/auto_calibrate/Configuration.h View File

909
 #define Y_MAX_POS DELTA_PRINTABLE_RADIUS
909
 #define Y_MAX_POS DELTA_PRINTABLE_RADIUS
910
 #define Z_MAX_POS MANUAL_Z_HOME_POS
910
 #define Z_MAX_POS MANUAL_Z_HOME_POS
911
 
911
 
912
-// If enabled, axes won't move below MIN_POS in response to movement commands.
912
+/**
913
+ * Software Endstops
914
+ *
915
+ * - Prevent moves outside the set machine bounds.
916
+ * - Individual axes can be disabled, if desired.
917
+ * - X and Y only apply to Cartesian robots.
918
+ * - Use 'M211' to set software endstops on/off or report current state
919
+ */
920
+
921
+// Min software endstops curtail movement below minimum coordinate bounds
913
 //#define MIN_SOFTWARE_ENDSTOPS
922
 //#define MIN_SOFTWARE_ENDSTOPS
914
-// If enabled, axes won't move above MAX_POS in response to movement commands.
923
+#if ENABLED(MIN_SOFTWARE_ENDSTOPS)
924
+  #define MIN_SOFTWARE_ENDSTOP_X
925
+  #define MIN_SOFTWARE_ENDSTOP_Y
926
+  #define MIN_SOFTWARE_ENDSTOP_Z
927
+#endif
928
+
929
+// Max software endstops curtail movement above maximum coordinate bounds
915
 #define MAX_SOFTWARE_ENDSTOPS
930
 #define MAX_SOFTWARE_ENDSTOPS
931
+#if ENABLED(MAX_SOFTWARE_ENDSTOPS)
932
+  #define MAX_SOFTWARE_ENDSTOP_X
933
+  #define MAX_SOFTWARE_ENDSTOP_Y
934
+  #define MAX_SOFTWARE_ENDSTOP_Z
935
+#endif
916
 
936
 
917
 /**
937
 /**
918
  * Filament Runout Sensor
938
  * Filament Runout Sensor

+ 22
- 2
Marlin/src/config/examples/delta/FLSUN/kossel_mini/Configuration.h View File

909
 #define Y_MAX_POS DELTA_PRINTABLE_RADIUS
909
 #define Y_MAX_POS DELTA_PRINTABLE_RADIUS
910
 #define Z_MAX_POS MANUAL_Z_HOME_POS
910
 #define Z_MAX_POS MANUAL_Z_HOME_POS
911
 
911
 
912
-// If enabled, axes won't move below MIN_POS in response to movement commands.
912
+/**
913
+ * Software Endstops
914
+ *
915
+ * - Prevent moves outside the set machine bounds.
916
+ * - Individual axes can be disabled, if desired.
917
+ * - X and Y only apply to Cartesian robots.
918
+ * - Use 'M211' to set software endstops on/off or report current state
919
+ */
920
+
921
+// Min software endstops constrain movement within minimum coordinate bounds
913
 #define MIN_SOFTWARE_ENDSTOPS
922
 #define MIN_SOFTWARE_ENDSTOPS
914
-// If enabled, axes won't move above MAX_POS in response to movement commands.
923
+#if ENABLED(MIN_SOFTWARE_ENDSTOPS)
924
+  #define MIN_SOFTWARE_ENDSTOP_X
925
+  #define MIN_SOFTWARE_ENDSTOP_Y
926
+  #define MIN_SOFTWARE_ENDSTOP_Z
927
+#endif
928
+
929
+// Max software endstops constrain movement within maximum coordinate bounds
915
 #define MAX_SOFTWARE_ENDSTOPS
930
 #define MAX_SOFTWARE_ENDSTOPS
931
+#if ENABLED(MAX_SOFTWARE_ENDSTOPS)
932
+  #define MAX_SOFTWARE_ENDSTOP_X
933
+  #define MAX_SOFTWARE_ENDSTOP_Y
934
+  #define MAX_SOFTWARE_ENDSTOP_Z
935
+#endif
916
 
936
 
917
 /**
937
 /**
918
  * Filament Runout Sensor
938
  * Filament Runout Sensor

+ 22
- 2
Marlin/src/config/examples/delta/generic/Configuration.h View File

896
 #define Y_MAX_POS DELTA_PRINTABLE_RADIUS
896
 #define Y_MAX_POS DELTA_PRINTABLE_RADIUS
897
 #define Z_MAX_POS MANUAL_Z_HOME_POS
897
 #define Z_MAX_POS MANUAL_Z_HOME_POS
898
 
898
 
899
-// If enabled, axes won't move below MIN_POS in response to movement commands.
899
+/**
900
+ * Software Endstops
901
+ *
902
+ * - Prevent moves outside the set machine bounds.
903
+ * - Individual axes can be disabled, if desired.
904
+ * - X and Y only apply to Cartesian robots.
905
+ * - Use 'M211' to set software endstops on/off or report current state
906
+ */
907
+
908
+// Min software endstops constrain movement within minimum coordinate bounds
900
 #define MIN_SOFTWARE_ENDSTOPS
909
 #define MIN_SOFTWARE_ENDSTOPS
901
-// If enabled, axes won't move above MAX_POS in response to movement commands.
910
+#if ENABLED(MIN_SOFTWARE_ENDSTOPS)
911
+  #define MIN_SOFTWARE_ENDSTOP_X
912
+  #define MIN_SOFTWARE_ENDSTOP_Y
913
+  #define MIN_SOFTWARE_ENDSTOP_Z
914
+#endif
915
+
916
+// Max software endstops constrain movement within maximum coordinate bounds
902
 #define MAX_SOFTWARE_ENDSTOPS
917
 #define MAX_SOFTWARE_ENDSTOPS
918
+#if ENABLED(MAX_SOFTWARE_ENDSTOPS)
919
+  #define MAX_SOFTWARE_ENDSTOP_X
920
+  #define MAX_SOFTWARE_ENDSTOP_Y
921
+  #define MAX_SOFTWARE_ENDSTOP_Z
922
+#endif
903
 
923
 
904
 /**
924
 /**
905
  * Filament Runout Sensor
925
  * Filament Runout Sensor

+ 22
- 2
Marlin/src/config/examples/delta/kossel_mini/Configuration.h View File

899
 #define Y_MAX_POS DELTA_PRINTABLE_RADIUS
899
 #define Y_MAX_POS DELTA_PRINTABLE_RADIUS
900
 #define Z_MAX_POS MANUAL_Z_HOME_POS
900
 #define Z_MAX_POS MANUAL_Z_HOME_POS
901
 
901
 
902
-// If enabled, axes won't move below MIN_POS in response to movement commands.
902
+/**
903
+ * Software Endstops
904
+ *
905
+ * - Prevent moves outside the set machine bounds.
906
+ * - Individual axes can be disabled, if desired.
907
+ * - X and Y only apply to Cartesian robots.
908
+ * - Use 'M211' to set software endstops on/off or report current state
909
+ */
910
+
911
+// Min software endstops constrain movement within minimum coordinate bounds
903
 #define MIN_SOFTWARE_ENDSTOPS
912
 #define MIN_SOFTWARE_ENDSTOPS
904
-// If enabled, axes won't move above MAX_POS in response to movement commands.
913
+#if ENABLED(MIN_SOFTWARE_ENDSTOPS)
914
+  #define MIN_SOFTWARE_ENDSTOP_X
915
+  #define MIN_SOFTWARE_ENDSTOP_Y
916
+  #define MIN_SOFTWARE_ENDSTOP_Z
917
+#endif
918
+
919
+// Max software endstops constrain movement within maximum coordinate bounds
905
 #define MAX_SOFTWARE_ENDSTOPS
920
 #define MAX_SOFTWARE_ENDSTOPS
921
+#if ENABLED(MAX_SOFTWARE_ENDSTOPS)
922
+  #define MAX_SOFTWARE_ENDSTOP_X
923
+  #define MAX_SOFTWARE_ENDSTOP_Y
924
+  #define MAX_SOFTWARE_ENDSTOP_Z
925
+#endif
906
 
926
 
907
 /**
927
 /**
908
  * Filament Runout Sensor
928
  * Filament Runout Sensor

+ 22
- 2
Marlin/src/config/examples/delta/kossel_pro/Configuration.h View File

899
 #define Y_MAX_POS DELTA_PRINTABLE_RADIUS
899
 #define Y_MAX_POS DELTA_PRINTABLE_RADIUS
900
 #define Z_MAX_POS MANUAL_Z_HOME_POS
900
 #define Z_MAX_POS MANUAL_Z_HOME_POS
901
 
901
 
902
-// If enabled, axes won't move below MIN_POS in response to movement commands.
902
+/**
903
+ * Software Endstops
904
+ *
905
+ * - Prevent moves outside the set machine bounds.
906
+ * - Individual axes can be disabled, if desired.
907
+ * - X and Y only apply to Cartesian robots.
908
+ * - Use 'M211' to set software endstops on/off or report current state
909
+ */
910
+
911
+// Min software endstops constrain movement within minimum coordinate bounds
903
 #define MIN_SOFTWARE_ENDSTOPS
912
 #define MIN_SOFTWARE_ENDSTOPS
904
-// If enabled, axes won't move above MAX_POS in response to movement commands.
913
+#if ENABLED(MIN_SOFTWARE_ENDSTOPS)
914
+  #define MIN_SOFTWARE_ENDSTOP_X
915
+  #define MIN_SOFTWARE_ENDSTOP_Y
916
+  #define MIN_SOFTWARE_ENDSTOP_Z
917
+#endif
918
+
919
+// Max software endstops constrain movement within maximum coordinate bounds
905
 #define MAX_SOFTWARE_ENDSTOPS
920
 #define MAX_SOFTWARE_ENDSTOPS
921
+#if ENABLED(MAX_SOFTWARE_ENDSTOPS)
922
+  #define MAX_SOFTWARE_ENDSTOP_X
923
+  #define MAX_SOFTWARE_ENDSTOP_Y
924
+  #define MAX_SOFTWARE_ENDSTOP_Z
925
+#endif
906
 
926
 
907
 /**
927
 /**
908
  * Filament Runout Sensor
928
  * Filament Runout Sensor

+ 22
- 2
Marlin/src/config/examples/delta/kossel_xl/Configuration.h View File

908
 #define Y_MAX_POS DELTA_PRINTABLE_RADIUS
908
 #define Y_MAX_POS DELTA_PRINTABLE_RADIUS
909
 #define Z_MAX_POS MANUAL_Z_HOME_POS
909
 #define Z_MAX_POS MANUAL_Z_HOME_POS
910
 
910
 
911
-// If enabled, axes won't move below MIN_POS in response to movement commands.
911
+/**
912
+ * Software Endstops
913
+ *
914
+ * - Prevent moves outside the set machine bounds.
915
+ * - Individual axes can be disabled, if desired.
916
+ * - X and Y only apply to Cartesian robots.
917
+ * - Use 'M211' to set software endstops on/off or report current state
918
+ */
919
+
920
+// Min software endstops curtail movement below minimum coordinate bounds
912
 //#define MIN_SOFTWARE_ENDSTOPS
921
 //#define MIN_SOFTWARE_ENDSTOPS
913
-// If enabled, axes won't move above MAX_POS in response to movement commands.
922
+#if ENABLED(MIN_SOFTWARE_ENDSTOPS)
923
+  #define MIN_SOFTWARE_ENDSTOP_X
924
+  #define MIN_SOFTWARE_ENDSTOP_Y
925
+  #define MIN_SOFTWARE_ENDSTOP_Z
926
+#endif
927
+
928
+// Max software endstops curtail movement above maximum coordinate bounds
914
 #define MAX_SOFTWARE_ENDSTOPS
929
 #define MAX_SOFTWARE_ENDSTOPS
930
+#if ENABLED(MAX_SOFTWARE_ENDSTOPS)
931
+  #define MAX_SOFTWARE_ENDSTOP_X
932
+  #define MAX_SOFTWARE_ENDSTOP_Y
933
+  #define MAX_SOFTWARE_ENDSTOP_Z
934
+#endif
915
 
935
 
916
 /**
936
 /**
917
  * Filament Runout Sensor
937
  * Filament Runout Sensor

+ 22
- 2
Marlin/src/config/examples/gCreate/gMax1.5+/Configuration.h View File

799
 #define Y_MAX_POS Y_BED_SIZE
799
 #define Y_MAX_POS Y_BED_SIZE
800
 #define Z_MAX_POS 500
800
 #define Z_MAX_POS 500
801
 
801
 
802
-// If enabled, axes won't move below MIN_POS in response to movement commands.
802
+/**
803
+ * Software Endstops
804
+ *
805
+ * - Prevent moves outside the set machine bounds.
806
+ * - Individual axes can be disabled, if desired.
807
+ * - X and Y only apply to Cartesian robots.
808
+ * - Use 'M211' to set software endstops on/off or report current state
809
+ */
810
+
811
+// Min software endstops curtail movement below minimum coordinate bounds
803
 //#define MIN_SOFTWARE_ENDSTOPS
812
 //#define MIN_SOFTWARE_ENDSTOPS
804
-// If enabled, axes won't move above MAX_POS in response to movement commands.
813
+#if ENABLED(MIN_SOFTWARE_ENDSTOPS)
814
+  #define MIN_SOFTWARE_ENDSTOP_X
815
+  #define MIN_SOFTWARE_ENDSTOP_Y
816
+  #define MIN_SOFTWARE_ENDSTOP_Z
817
+#endif
818
+
819
+// Max software endstops curtail movement above maximum coordinate bounds
805
 #define MAX_SOFTWARE_ENDSTOPS
820
 #define MAX_SOFTWARE_ENDSTOPS
821
+#if ENABLED(MAX_SOFTWARE_ENDSTOPS)
822
+  #define MAX_SOFTWARE_ENDSTOP_X
823
+  #define MAX_SOFTWARE_ENDSTOP_Y
824
+  #define MAX_SOFTWARE_ENDSTOP_Z
825
+#endif
806
 
826
 
807
 /**
827
 /**
808
  * Filament Runout Sensor
828
  * Filament Runout Sensor

+ 22
- 2
Marlin/src/config/examples/makibox/Configuration.h View File

788
 #define Y_MAX_POS Y_BED_SIZE
788
 #define Y_MAX_POS Y_BED_SIZE
789
 #define Z_MAX_POS 86
789
 #define Z_MAX_POS 86
790
 
790
 
791
-// If enabled, axes won't move below MIN_POS in response to movement commands.
791
+/**
792
+ * Software Endstops
793
+ *
794
+ * - Prevent moves outside the set machine bounds.
795
+ * - Individual axes can be disabled, if desired.
796
+ * - X and Y only apply to Cartesian robots.
797
+ * - Use 'M211' to set software endstops on/off or report current state
798
+ */
799
+
800
+// Min software endstops constrain movement within minimum coordinate bounds
792
 #define MIN_SOFTWARE_ENDSTOPS
801
 #define MIN_SOFTWARE_ENDSTOPS
793
-// If enabled, axes won't move above MAX_POS in response to movement commands.
802
+#if ENABLED(MIN_SOFTWARE_ENDSTOPS)
803
+  #define MIN_SOFTWARE_ENDSTOP_X
804
+  #define MIN_SOFTWARE_ENDSTOP_Y
805
+  #define MIN_SOFTWARE_ENDSTOP_Z
806
+#endif
807
+
808
+// Max software endstops constrain movement within maximum coordinate bounds
794
 #define MAX_SOFTWARE_ENDSTOPS
809
 #define MAX_SOFTWARE_ENDSTOPS
810
+#if ENABLED(MAX_SOFTWARE_ENDSTOPS)
811
+  #define MAX_SOFTWARE_ENDSTOP_X
812
+  #define MAX_SOFTWARE_ENDSTOP_Y
813
+  #define MAX_SOFTWARE_ENDSTOP_Z
814
+#endif
795
 
815
 
796
 /**
816
 /**
797
  * Filament Runout Sensor
817
  * Filament Runout Sensor

+ 22
- 2
Marlin/src/config/examples/stm32f103ret6/Configuration.h View File

772
 #define Y_MAX_POS Y_BED_SIZE
772
 #define Y_MAX_POS Y_BED_SIZE
773
 #define Z_MAX_POS 180
773
 #define Z_MAX_POS 180
774
 
774
 
775
-// If enabled, axes won't move below MIN_POS in response to movement commands.
775
+/**
776
+ * Software Endstops
777
+ *
778
+ * - Prevent moves outside the set machine bounds.
779
+ * - Individual axes can be disabled, if desired.
780
+ * - X and Y only apply to Cartesian robots.
781
+ * - Use 'M211' to set software endstops on/off or report current state
782
+ */
783
+
784
+// Min software endstops constrain movement within minimum coordinate bounds
776
 #define MIN_SOFTWARE_ENDSTOPS
785
 #define MIN_SOFTWARE_ENDSTOPS
777
-// If enabled, axes won't move above MAX_POS in response to movement commands.
786
+#if ENABLED(MIN_SOFTWARE_ENDSTOPS)
787
+  #define MIN_SOFTWARE_ENDSTOP_X
788
+  #define MIN_SOFTWARE_ENDSTOP_Y
789
+  #define MIN_SOFTWARE_ENDSTOP_Z
790
+#endif
791
+
792
+// Max software endstops constrain movement within maximum coordinate bounds
778
 #define MAX_SOFTWARE_ENDSTOPS
793
 #define MAX_SOFTWARE_ENDSTOPS
794
+#if ENABLED(MAX_SOFTWARE_ENDSTOPS)
795
+  #define MAX_SOFTWARE_ENDSTOP_X
796
+  #define MAX_SOFTWARE_ENDSTOP_Y
797
+  #define MAX_SOFTWARE_ENDSTOP_Z
798
+#endif
779
 
799
 
780
 /**
800
 /**
781
  * Filament Runout Sensor
801
  * Filament Runout Sensor

+ 22
- 2
Marlin/src/config/examples/tvrrug/Round2/Configuration.h View File

780
 #define Y_MAX_POS Y_BED_SIZE
780
 #define Y_MAX_POS Y_BED_SIZE
781
 #define Z_MAX_POS 120
781
 #define Z_MAX_POS 120
782
 
782
 
783
-// If enabled, axes won't move below MIN_POS in response to movement commands.
783
+/**
784
+ * Software Endstops
785
+ *
786
+ * - Prevent moves outside the set machine bounds.
787
+ * - Individual axes can be disabled, if desired.
788
+ * - X and Y only apply to Cartesian robots.
789
+ * - Use 'M211' to set software endstops on/off or report current state
790
+ */
791
+
792
+// Min software endstops constrain movement within minimum coordinate bounds
784
 #define MIN_SOFTWARE_ENDSTOPS
793
 #define MIN_SOFTWARE_ENDSTOPS
785
-// If enabled, axes won't move above MAX_POS in response to movement commands.
794
+#if ENABLED(MIN_SOFTWARE_ENDSTOPS)
795
+  #define MIN_SOFTWARE_ENDSTOP_X
796
+  #define MIN_SOFTWARE_ENDSTOP_Y
797
+  #define MIN_SOFTWARE_ENDSTOP_Z
798
+#endif
799
+
800
+// Max software endstops constrain movement within maximum coordinate bounds
786
 #define MAX_SOFTWARE_ENDSTOPS
801
 #define MAX_SOFTWARE_ENDSTOPS
802
+#if ENABLED(MAX_SOFTWARE_ENDSTOPS)
803
+  #define MAX_SOFTWARE_ENDSTOP_X
804
+  #define MAX_SOFTWARE_ENDSTOP_Y
805
+  #define MAX_SOFTWARE_ENDSTOP_Z
806
+#endif
787
 
807
 
788
 /**
808
 /**
789
  * Filament Runout Sensor
809
  * Filament Runout Sensor

+ 22
- 2
Marlin/src/config/examples/wt150/Configuration.h View File

790
 #define Y_MAX_POS Y_BED_SIZE
790
 #define Y_MAX_POS Y_BED_SIZE
791
 #define Z_MAX_POS 143.0
791
 #define Z_MAX_POS 143.0
792
 
792
 
793
-// If enabled, axes won't move below MIN_POS in response to movement commands.
793
+/**
794
+ * Software Endstops
795
+ *
796
+ * - Prevent moves outside the set machine bounds.
797
+ * - Individual axes can be disabled, if desired.
798
+ * - X and Y only apply to Cartesian robots.
799
+ * - Use 'M211' to set software endstops on/off or report current state
800
+ */
801
+
802
+// Min software endstops constrain movement within minimum coordinate bounds
794
 #define MIN_SOFTWARE_ENDSTOPS
803
 #define MIN_SOFTWARE_ENDSTOPS
795
-// If enabled, axes won't move above MAX_POS in response to movement commands.
804
+#if ENABLED(MIN_SOFTWARE_ENDSTOPS)
805
+  #define MIN_SOFTWARE_ENDSTOP_X
806
+  #define MIN_SOFTWARE_ENDSTOP_Y
807
+  #define MIN_SOFTWARE_ENDSTOP_Z
808
+#endif
809
+
810
+// Max software endstops constrain movement within maximum coordinate bounds
796
 #define MAX_SOFTWARE_ENDSTOPS
811
 #define MAX_SOFTWARE_ENDSTOPS
812
+#if ENABLED(MAX_SOFTWARE_ENDSTOPS)
813
+  #define MAX_SOFTWARE_ENDSTOP_X
814
+  #define MAX_SOFTWARE_ENDSTOP_Y
815
+  #define MAX_SOFTWARE_ENDSTOP_Z
816
+#endif
797
 
817
 
798
 /**
818
 /**
799
  * Filament Runout Sensor
819
  * Filament Runout Sensor

+ 18
- 1
Marlin/src/inc/Conditionals_post.h View File

28
 #ifndef CONDITIONALS_POST_H
28
 #ifndef CONDITIONALS_POST_H
29
 #define CONDITIONALS_POST_H
29
 #define CONDITIONALS_POST_H
30
 
30
 
31
+  #define AVR_ATmega2560_FAMILY_PLUS_70 ( \
32
+       MB(BQ_ZUM_MEGA_3D)                 \
33
+    || MB(MIGHTYBOARD_REVE)               \
34
+    || MB(MINIRAMBO)                      \
35
+    || MB(SCOOVO_X9H)                     \
36
+  )
37
+
31
   #define IS_SCARA (ENABLED(MORGAN_SCARA) || ENABLED(MAKERARM_SCARA))
38
   #define IS_SCARA (ENABLED(MORGAN_SCARA) || ENABLED(MAKERARM_SCARA))
32
   #define IS_KINEMATIC (ENABLED(DELTA) || IS_SCARA)
39
   #define IS_KINEMATIC (ENABLED(DELTA) || IS_SCARA)
33
   #define IS_CARTESIAN !IS_KINEMATIC
40
   #define IS_CARTESIAN !IS_KINEMATIC
793
   #define HEATER_IDLE_HANDLER (ENABLED(ADVANCED_PAUSE_FEATURE) || ENABLED(PROBING_HEATERS_OFF))
800
   #define HEATER_IDLE_HANDLER (ENABLED(ADVANCED_PAUSE_FEATURE) || ENABLED(PROBING_HEATERS_OFF))
794
 
801
 
795
   /**
802
   /**
796
-   * Delta radius/rod trimmers/angle trimmers
803
+   * Only constrain Z on DELTA / SCARA machines
804
+   */
805
+  #if IS_KINEMATIC
806
+    #undef MIN_SOFTWARE_ENDSTOP_X
807
+    #undef MIN_SOFTWARE_ENDSTOP_Y
808
+    #undef MAX_SOFTWARE_ENDSTOP_X
809
+    #undef MAX_SOFTWARE_ENDSTOP_Y
810
+  #endif
811
+
812
+  /**
813
+   * Delta endstops, radius/rod trimmers, angle trimmers
797
    */
814
    */
798
   #if ENABLED(DELTA)
815
   #if ENABLED(DELTA)
799
     #ifndef DELTA_CALIBRATION_RADIUS
816
     #ifndef DELTA_CALIBRATION_RADIUS

+ 19
- 0
Marlin/src/inc/SanityCheck.h View File

255
   "Movement bounds ([XY]_MIN_POS, [XY]_MAX_POS) are too narrow to contain [XY]_BED_SIZE.");
255
   "Movement bounds ([XY]_MIN_POS, [XY]_MAX_POS) are too narrow to contain [XY]_BED_SIZE.");
256
 
256
 
257
 /**
257
 /**
258
+ * Granular software endstops (Marlin >= 1.1.7)
259
+ */
260
+#if ENABLED(MIN_SOFTWARE_ENDSTOPS) && DISABLED(MIN_SOFTWARE_ENDSTOP_Z)
261
+  #if IS_KINEMATIC
262
+    #error "MIN_SOFTWARE_ENDSTOPS on DELTA/SCARA also requires MIN_SOFTWARE_ENDSTOP_Z."
263
+  #elif DISABLED(MIN_SOFTWARE_ENDSTOP_X) && DISABLED(MIN_SOFTWARE_ENDSTOP_Y)
264
+    #error "MIN_SOFTWARE_ENDSTOPS requires at least one of the MIN_SOFTWARE_ENDSTOP_[XYZ] options."
265
+  #endif
266
+#endif
267
+
268
+#if ENABLED(MAX_SOFTWARE_ENDSTOPS) && DISABLED(MAX_SOFTWARE_ENDSTOP_Z)
269
+  #if IS_KINEMATIC
270
+    #error "MAX_SOFTWARE_ENDSTOPS on DELTA/SCARA also requires MAX_SOFTWARE_ENDSTOP_Z."
271
+  #elif DISABLED(MAX_SOFTWARE_ENDSTOP_X) && DISABLED(MAX_SOFTWARE_ENDSTOP_Y)
272
+    #error "MAX_SOFTWARE_ENDSTOPS requires at least one of the MAX_SOFTWARE_ENDSTOP_[XYZ] options."
273
+  #endif
274
+#endif
275
+
276
+/**
258
  * Progress Bar
277
  * Progress Bar
259
  */
278
  */
260
 #if ENABLED(LCD_PROGRESS_BAR)
279
 #if ENABLED(LCD_PROGRESS_BAR)

+ 28
- 10
Marlin/src/lcd/ultralcd.cpp View File

2834
       float min = current_position[axis] - 1000,
2834
       float min = current_position[axis] - 1000,
2835
             max = current_position[axis] + 1000;
2835
             max = current_position[axis] + 1000;
2836
 
2836
 
2837
-      #if HAS_SOFTWARE_ENDSTOPS
2838
-        // Limit to software endstops, if enabled
2839
-        if (soft_endstops_enabled) {
2840
-          #if ENABLED(MIN_SOFTWARE_ENDSTOPS)
2841
-            min = soft_endstop_min[axis];
2842
-          #endif
2843
-          #if ENABLED(MAX_SOFTWARE_ENDSTOPS)
2844
-            max = soft_endstop_max[axis];
2845
-          #endif
2837
+      // Limit to software endstops, if enabled
2838
+      #if ENABLED(MIN_SOFTWARE_ENDSTOPS) || ENABLED(MAX_SOFTWARE_ENDSTOPS)
2839
+        if (soft_endstops_enabled) switch (axis) {
2840
+          case X_AXIS:
2841
+            #if ENABLED(MIN_SOFTWARE_ENDSTOP_X)
2842
+              min = soft_endstop_min[X_AXIS];
2843
+            #endif
2844
+            #if ENABLED(MAX_SOFTWARE_ENDSTOP_X)
2845
+              max = soft_endstop_max[X_AXIS];
2846
+            #endif
2847
+            break;
2848
+          case Y_AXIS:
2849
+            #if ENABLED(MIN_SOFTWARE_ENDSTOP_Y)
2850
+              min = soft_endstop_min[Y_AXIS];
2851
+            #endif
2852
+            #if ENABLED(MAX_SOFTWARE_ENDSTOP_Y)
2853
+              max = soft_endstop_max[Y_AXIS];
2854
+            #endif
2855
+            break;
2856
+          case Z_AXIS:
2857
+            #if ENABLED(MIN_SOFTWARE_ENDSTOP_Z)
2858
+              min = soft_endstop_min[Z_AXIS];
2859
+            #endif
2860
+            #if ENABLED(MAX_SOFTWARE_ENDSTOP_Z)
2861
+              max = soft_endstop_max[Z_AXIS];
2862
+            #endif
2863
+            break;
2846
         }
2864
         }
2847
-      #endif
2865
+      #endif // MIN_SOFTWARE_ENDSTOPS || MAX_SOFTWARE_ENDSTOPS
2848
 
2866
 
2849
       // Delta limits XY based on the current offset from center
2867
       // Delta limits XY based on the current offset from center
2850
       // This assumes the center is 0,0
2868
       // This assumes the center is 0,0

+ 17
- 18
Marlin/src/module/motion.cpp View File

456
 
456
 
457
   /**
457
   /**
458
    * Constrain the given coordinates to the software endstops.
458
    * Constrain the given coordinates to the software endstops.
459
+   *
460
+   * NOTE: This will only apply to Z on DELTA and SCARA. XY is
461
+   *       constrained to a circle on these kinematic systems.
459
    */
462
    */
460
-
461
-  // NOTE: This makes no sense for delta beds other than Z-axis.
462
-  //       For delta the X/Y would need to be clamped at
463
-  //       DELTA_PRINTABLE_RADIUS from center of bed, but delta
464
-  //       now enforces is_position_reachable for X/Y regardless
465
-  //       of HAS_SOFTWARE_ENDSTOPS, so that enforcement would be
466
-  //       redundant here.
467
-
468
   void clamp_to_software_endstops(float target[XYZ]) {
463
   void clamp_to_software_endstops(float target[XYZ]) {
469
     if (!soft_endstops_enabled) return;
464
     if (!soft_endstops_enabled) return;
470
-    #if ENABLED(MIN_SOFTWARE_ENDSTOPS)
471
-      #if DISABLED(DELTA)
472
-        NOLESS(target[X_AXIS], soft_endstop_min[X_AXIS]);
473
-        NOLESS(target[Y_AXIS], soft_endstop_min[Y_AXIS]);
474
-      #endif
465
+    #if ENABLED(MIN_SOFTWARE_ENDSTOP_X)
466
+      NOLESS(target[X_AXIS], soft_endstop_min[X_AXIS]);
467
+    #endif
468
+    #if ENABLED(MIN_SOFTWARE_ENDSTOP_Y)
469
+      NOLESS(target[Y_AXIS], soft_endstop_min[Y_AXIS]);
470
+    #endif
471
+    #if ENABLED(MIN_SOFTWARE_ENDSTOP_Z)
475
       NOLESS(target[Z_AXIS], soft_endstop_min[Z_AXIS]);
472
       NOLESS(target[Z_AXIS], soft_endstop_min[Z_AXIS]);
476
     #endif
473
     #endif
477
-    #if ENABLED(MAX_SOFTWARE_ENDSTOPS)
478
-      #if DISABLED(DELTA)
479
-        NOMORE(target[X_AXIS], soft_endstop_max[X_AXIS]);
480
-        NOMORE(target[Y_AXIS], soft_endstop_max[Y_AXIS]);
481
-      #endif
474
+    #if ENABLED(MAX_SOFTWARE_ENDSTOP_X)
475
+      NOMORE(target[X_AXIS], soft_endstop_max[X_AXIS]);
476
+    #endif
477
+    #if ENABLED(MAX_SOFTWARE_ENDSTOP_Y)
478
+      NOMORE(target[Y_AXIS], soft_endstop_max[Y_AXIS]);
479
+    #endif
480
+    #if ENABLED(MAX_SOFTWARE_ENDSTOP_Z)
482
       NOMORE(target[Z_AXIS], soft_endstop_max[Z_AXIS]);
481
       NOMORE(target[Z_AXIS], soft_endstop_max[Z_AXIS]);
483
     #endif
482
     #endif
484
   }
483
   }

+ 1
- 1
Marlin/src/pins/pins_RAMPS.h View File

45
  */
45
  */
46
 
46
 
47
 #if ENABLED(IS_REARM)
47
 #if ENABLED(IS_REARM)
48
-  #error "Oops!  use 'pins_RAMPS_RE_ARM.h' when Re-Arm is used."
48
+  #error "Oops!  Use 'BOARD_RAMPS_RE_ARM' to build for Re-ARM."
49
 #endif
49
 #endif
50
 
50
 
51
 #if !ENABLED(IS_RAMPS_SMART) && !ENABLED(IS_RAMPS_DUO) && !ENABLED(IS_RAMPS4DUE) && !ENABLED(TARGET_LPC1768)
51
 #if !ENABLED(IS_RAMPS_SMART) && !ENABLED(IS_RAMPS_DUO) && !ENABLED(IS_RAMPS4DUE) && !ENABLED(TARGET_LPC1768)

+ 31
- 15
Marlin/src/pins/pins_TEENSY35_36.h View File

1
+/**
2
+ * Marlin 3D Printer Firmware
3
+ * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
4
+ *
5
+ * Based on Sprinter and grbl.
6
+ * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
7
+ *
8
+ * This program is free software: you can redistribute it and/or modify
9
+ * it under the terms of the GNU General Public License as published by
10
+ * the Free Software Foundation, either version 3 of the License, or
11
+ * (at your option) any later version.
12
+ *
13
+ * This program is distributed in the hope that it will be useful,
14
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16
+ * GNU General Public License for more details.
17
+ *
18
+ * You should have received a copy of the GNU General Public License
19
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
20
+ *
21
+ */
22
+
1
 /****************************************************************************************
23
 /****************************************************************************************
2
 * Teensy 3.5 (MK64FX512) and Teensy 3.6 (MK66FX1M0) Breadboard pin assignments
24
 * Teensy 3.5 (MK64FX512) and Teensy 3.6 (MK66FX1M0) Breadboard pin assignments
3
 * Requires the Teensyduino software with Teensy 3.5 or Teensy 3.6 selected in Arduino IDE!
25
 * Requires the Teensyduino software with Teensy 3.5 or Teensy 3.6 selected in Arduino IDE!
4
 * http://www.pjrc.com/teensy/teensyduino.html
26
 * http://www.pjrc.com/teensy/teensyduino.html
5
-*
6
 ****************************************************************************************/
27
 ****************************************************************************************/
7
-#if MOTHERBOARD == 841 // BOARD_TEENSY35_36
8
-#define KNOWN_BOARD 1
9
-#define AT90USB 1286  // Disable MarlinSerial etc.
10
 
28
 
11
 #if !IS_32BIT_TEENSY
29
 #if !IS_32BIT_TEENSY
12
-  #error Oops!  Make sure you have 'Teensy 3.5' or 'Teensy 3.6' selected from the 'Tools -> Boards' menu.
30
+  #error "Oops!  Make sure you have 'Teensy 3.5' or 'Teensy 3.6' selected from the 'Tools -> Boards' menu."
13
 #endif
31
 #endif
14
 
32
 
15
 #if IS_TEENSY35
33
 #if IS_TEENSY35
18
   #define BOARD_NAME "Teensy3.6"
36
   #define BOARD_NAME "Teensy3.6"
19
 #endif
37
 #endif
20
 
38
 
21
-#define LARGE_FLASH        true
39
+#define AT90USB 1286   // Disable MarlinSerial etc.
22
 #define USBCON //1286  // Disable MarlinSerial etc.
40
 #define USBCON //1286  // Disable MarlinSerial etc.
41
+#define LARGE_FLASH        true
23
 
42
 
24
 /*
43
 /*
25
-teemuatlut plan for Teensy3.5 and Teensy3.6:
26
 
44
 
45
+  teemuatlut plan for Teensy3.5 and Teensy3.6:
27
                                                      USB
46
                                                      USB
28
                                           GND |-----#####-----| VIN 5V
47
                                           GND |-----#####-----| VIN 5V
29
       X_STEP_PIN          MOSI1   RX1       0 |     #####     | Analog GND
48
       X_STEP_PIN          MOSI1   RX1       0 |     #####     | Analog GND
84
 
103
 
85
 #define HEATER_0_PIN       30
104
 #define HEATER_0_PIN       30
86
 #define HEATER_1_PIN       36
105
 #define HEATER_1_PIN       36
87
-#define HEATER_2_PIN       -1
88
 #define HEATER_BED_PIN     31
106
 #define HEATER_BED_PIN     31
89
 #define FAN_PIN             2
107
 #define FAN_PIN             2
90
 
108
 
93
 #define Z_STOP_PIN         28
111
 #define Z_STOP_PIN         28
94
 
112
 
95
 #define TEMP_0_PIN          2 // Extruder / Analog pin numbering: 2 => A2
113
 #define TEMP_0_PIN          2 // Extruder / Analog pin numbering: 2 => A2
96
-#define TEMP_BED_PIN        1 // Bed / Analog pin numbering
97
 #define TEMP_1_PIN          0
114
 #define TEMP_1_PIN          0
98
-#define TEMP_2_PIN         -1
115
+#define TEMP_BED_PIN        1 // Bed / Analog pin numbering
99
 
116
 
100
-#define SDPOWER            -1
101
-#define SD_DETECT_PIN      -1
102
 #define SDSS               39 // 8
117
 #define SDSS               39 // 8
103
 #define LED_PIN            13
118
 #define LED_PIN            13
104
 #define PS_ON_PIN           1
119
 #define PS_ON_PIN           1
105
-#define KILL_PIN           -1
106
 #define ALARM_PIN          -1
120
 #define ALARM_PIN          -1
107
 
121
 
108
 #define FILWIDTH_PIN        6
122
 #define FILWIDTH_PIN        6
109
 #define SOL1_PIN           28
123
 #define SOL1_PIN           28
110
 
124
 
125
+#if 0
126
+// Pretty sure this is obsolete!
127
+// Please use Marlin 1.1.x pins files as reference for new pins files.
111
 #ifndef SDSUPPORT
128
 #ifndef SDSUPPORT
112
   // these are defined in the SD library if building with SD support
129
   // these are defined in the SD library if building with SD support
113
   #define SCK_PIN          13
130
   #define SCK_PIN          13
114
   #define MISO_PIN         12
131
   #define MISO_PIN         12
115
   #define MOSI_PIN         11
132
   #define MOSI_PIN         11
116
 #endif
133
 #endif
134
+#endif
117
 
135
 
118
 #ifdef ULTRA_LCD
136
 #ifdef ULTRA_LCD
119
   #define LCD_PINS_RS      40
137
   #define LCD_PINS_RS      40
126
   #define BTN_EN2          47
144
   #define BTN_EN2          47
127
   #define BTN_ENC          48
145
   #define BTN_ENC          48
128
 #endif
146
 #endif
129
-
130
-#endif  // MOTHERBOARD == 841 (Teensy3.5 and Teensy3.6)

Loading…
Cancel
Save