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,10 +785,30 @@
785 785
 #define Y_MAX_POS Y_BED_SIZE
786 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 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 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 814
  * Filament Runout Sensor

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

@@ -26,8 +26,8 @@
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 33
 // Includes
@@ -153,9 +153,4 @@ inline void HAL_adc_init(void) {
153 153
 
154 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,7 +20,10 @@
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 28
 void HAL_print_analog_pin(char buffer[], int8_t pin) {
26 29
   sprintf(buffer, "(A%2d)  ", int(pin - analogInputToDigitalPin(0)));
@@ -110,11 +113,6 @@ const PinInfo pin_array[] PROGMEM = {
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 116
 #if AVR_AT90USB1286_FAMILY
119 117
   // Working with Teensyduino extension so need to re-define some things
120 118
   #include "pinsDebug_Teensyduino.h"
@@ -590,4 +588,4 @@ inline void report_pin_state_extended(int8_t pin, bool ignore, bool extended = f
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,8 +29,8 @@
29 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 35
 #include "../../inc/MarlinConfig.h"
36 36
 
@@ -181,4 +181,4 @@
181 181
   extern HardwareSerial bluetoothSerial;
182 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,15 +20,13 @@
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 31
  * Digipot requirement
34 32
  */
@@ -39,12 +37,9 @@
39 37
   #endif
40 38
 #endif
41 39
 
42
-
43
-
44 40
 /**
45 41
  * Sanity checks for Spindle / Laser
46 42
  */
47
-
48 43
 #if ENABLED(SPINDLE_LASER_ENABLE)
49 44
   #if !PIN_EXISTS(SPINDLE_LASER_ENABLE)
50 45
     #error "SPINDLE_LASER_ENABLE requires SPINDLE_LASER_ENABLE_PIN."
@@ -100,3 +95,5 @@
100 95
     #endif
101 96
   #endif
102 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,7 +21,7 @@
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 25
   Copyright (c) 2009 Michael Margolis.  All right reserved.
26 26
 
27 27
   This library is free software; you can redistribute it and/or
@@ -39,7 +39,10 @@
39 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 46
  * Defines for 16 bit timers used with  Servo library
44 47
  *
45 48
  * If _useTimerX is defined then TimerX is a 16 bit timer on the current board
@@ -88,3 +91,5 @@ typedef enum {
88 91
   #endif
89 92
   _Nbr_16timers
90 93
 } timer16_Sequence_t;
94
+
95
+#endif // _SERVOTIMERS_H_

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

@@ -28,8 +28,8 @@
28 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 34
 #include "fastio_AVR.h"
35 35
 
@@ -1112,4 +1112,4 @@
1112 1112
 #define PL7_DDR     DDRL
1113 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,8 +28,8 @@
28 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 34
 #include "fastio_AVR.h"
35 35
 
@@ -717,4 +717,4 @@
717 717
 #define PG5_DDR     DDRG
718 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,8 +28,8 @@
28 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 34
 #include "fastio_AVR.h"
35 35
 
@@ -359,4 +359,4 @@
359 359
 #define PD7_DDR     DDRD
360 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,8 +28,8 @@
28 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 34
 #include "fastio_AVR.h"
35 35
 
@@ -528,4 +528,4 @@
528 528
 #define PD7_DDR     DDRD
529 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,8 +29,8 @@
29 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 35
 #include "fastio_AVR.h"
36 36
 
@@ -699,4 +699,4 @@
699 699
 #define TIMER3B 4
700 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,8 +26,8 @@
26 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 32
 #include <avr/io.h>
33 33
 #include "../../core/macros.h"
@@ -323,4 +323,4 @@ typedef enum {
323 323
 // finally - the macro that tells us if a pin is an available hardware PWM
324 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,8 +20,8 @@
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 27
  * Optimized math functions for AVR
@@ -109,4 +109,4 @@
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,11 +24,10 @@
24 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 32
 #if AVR_AT90USB1286_FAMILY
34 33
   // Working with Teensyduino extension so need to re-define some things
@@ -399,3 +398,5 @@ static void pwm_details(uint8_t pin) {
399 398
 #endif
400 399
 
401 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,6 +20,9 @@
20 20
  *
21 21
  */
22 22
 
23
+#ifndef _PINSDEBUG_TEENSYSUINO_H_
24
+#define _PINSDEBUG_TEENSYSUINO_H_
25
+
23 26
 //
24 27
 //  some of the pin mapping functions of the Teensduino extension to the Arduino IDE
25 28
 //  do not function the same as the other Arduino extensions
@@ -108,3 +111,5 @@ const uint8_t PROGMEM digital_pin_to_port_PGM[] = {
108 111
                                              // disable the PWMs so we can use it as is
109 112
 
110 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,8 +25,8 @@
25 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 31
 #undef NUM_DIGITAL_PINS
32 32
 #if MOTHERBOARD == BOARD_BQ_ZUM_MEGA_3D
@@ -338,4 +338,4 @@ const uint8_t PROGMEM digital_pin_to_timer_PGM_plus_70[] = {
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,8 +20,8 @@
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 27
  * Define SPI Pins: SCK, MISO, MOSI, SS
@@ -67,4 +67,4 @@
67 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,8 +20,8 @@
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 26
 #include <avr/wdt.h>
27 27
 
@@ -32,4 +32,4 @@ void watchdog_init();
32 32
 // first watchdog_init or AVR will go into emergency procedures.
33 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,10 +785,30 @@
785 785
 #define Y_MAX_POS Y_BED_SIZE
786 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 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 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 814
  * Filament Runout Sensor

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

@@ -805,10 +805,30 @@
805 805
 #define Y_MAX_POS Y_BED_SIZE
806 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 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 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 834
  * Filament Runout Sensor

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

@@ -785,10 +785,30 @@
785 785
 #define Y_MAX_POS Y_BED_SIZE
786 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 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 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 814
  * Filament Runout Sensor

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

@@ -904,10 +904,30 @@
904 904
 #define X_MAX_POS X_BED_SIZE
905 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 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 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 933
  * Filament Runout Sensor

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

@@ -791,10 +791,30 @@
791 791
 #define Y_MAX_POS Y_BED_SIZE
792 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 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 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 820
  * Filament Runout Sensor

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

@@ -776,10 +776,30 @@
776 776
 #define Y_MAX_POS Y_BED_SIZE
777 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 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 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 805
  * Filament Runout Sensor

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

@@ -786,10 +786,30 @@
786 786
 #define Y_MAX_POS Y_BED_SIZE
787 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 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 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 815
  * Filament Runout Sensor

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

@@ -776,10 +776,30 @@
776 776
 #define Y_MAX_POS Y_BED_SIZE
777 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 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 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 805
  * Filament Runout Sensor

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

@@ -784,10 +784,30 @@
784 784
 #define Y_MAX_POS Y_BED_SIZE
785 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 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 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 813
  * Filament Runout Sensor

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

@@ -795,10 +795,30 @@
795 795
 #define Y_MAX_POS Y_BED_SIZE
796 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 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 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 824
  * Filament Runout Sensor

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

@@ -767,10 +767,30 @@
767 767
 #define Y_MAX_POS Y_BED_SIZE
768 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 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 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 796
  * Filament Runout Sensor

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

@@ -767,10 +767,30 @@
767 767
 #define Y_MAX_POS Y_BED_SIZE
768 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 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 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 796
  * Filament Runout Sensor

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

@@ -789,10 +789,30 @@
789 789
 #define Y_MAX_POS 182
790 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 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 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 818
  * Filament Runout Sensor

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

@@ -800,10 +800,30 @@
800 800
 #define Y_MAX_POS Y_BED_SIZE
801 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 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 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 829
  * Filament Runout Sensor

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

@@ -785,10 +785,30 @@
785 785
 #define Y_MAX_POS Y_BED_SIZE
786 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 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 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 814
  * Filament Runout Sensor

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

@@ -789,10 +789,30 @@
789 789
 #define Y_MAX_POS Y_BED_SIZE
790 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 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 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 818
  * Filament Runout Sensor

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

@@ -809,10 +809,30 @@
809 809
 #define Y_MAX_POS Y_BED_SIZE
810 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 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 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 838
  * Filament Runout Sensor

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

@@ -787,10 +787,30 @@
787 787
 #define Y_MAX_POS Y_BED_SIZE
788 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 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 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 816
  * Filament Runout Sensor

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

@@ -785,10 +785,30 @@
785 785
 #define Y_MAX_POS Y_BED_SIZE
786 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 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 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 814
  * Filament Runout Sensor

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

@@ -783,10 +783,30 @@
783 783
 #define Y_MAX_POS Y_BED_SIZE
784 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 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 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 812
  * Filament Runout Sensor

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

@@ -797,10 +797,30 @@
797 797
 #define Y_MAX_POS Y_BED_SIZE
798 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 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 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 826
  * Filament Runout Sensor

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

@@ -816,10 +816,30 @@
816 816
 #define Y_MAX_POS Y_BED_SIZE
817 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 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 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 845
  * Filament Runout Sensor

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

@@ -841,10 +841,30 @@
841 841
   #define Z_MAX_POS 158
842 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 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 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 870
  * Filament Runout Sensor

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

@@ -815,10 +815,30 @@
815 815
 #define Y_MAX_POS Y_BED_SIZE
816 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 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 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 844
  * Filament Runout Sensor

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

@@ -785,10 +785,30 @@
785 785
 #define Y_MAX_POS Y_BED_SIZE
786 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 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 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 814
  * Filament Runout Sensor

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

@@ -785,10 +785,30 @@
785 785
 #define Y_MAX_POS Y_BED_SIZE
786 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 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 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 814
  * Filament Runout Sensor

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

@@ -785,10 +785,30 @@
785 785
 #define Y_MAX_POS Y_BED_SIZE
786 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 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 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 814
  * Filament Runout Sensor

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

@@ -909,10 +909,30 @@
909 909
 #define Y_MAX_POS DELTA_PRINTABLE_RADIUS
910 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 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 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 938
  * Filament Runout Sensor

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

@@ -909,10 +909,30 @@
909 909
 #define Y_MAX_POS DELTA_PRINTABLE_RADIUS
910 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 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 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 938
  * Filament Runout Sensor

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

@@ -896,10 +896,30 @@
896 896
 #define Y_MAX_POS DELTA_PRINTABLE_RADIUS
897 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 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 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 925
  * Filament Runout Sensor

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

@@ -899,10 +899,30 @@
899 899
 #define Y_MAX_POS DELTA_PRINTABLE_RADIUS
900 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 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 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 928
  * Filament Runout Sensor

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

@@ -899,10 +899,30 @@
899 899
 #define Y_MAX_POS DELTA_PRINTABLE_RADIUS
900 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 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 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 928
  * Filament Runout Sensor

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

@@ -908,10 +908,30 @@
908 908
 #define Y_MAX_POS DELTA_PRINTABLE_RADIUS
909 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 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 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 937
  * Filament Runout Sensor

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

@@ -799,10 +799,30 @@
799 799
 #define Y_MAX_POS Y_BED_SIZE
800 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 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 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 828
  * Filament Runout Sensor

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

@@ -788,10 +788,30 @@
788 788
 #define Y_MAX_POS Y_BED_SIZE
789 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 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 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 817
  * Filament Runout Sensor

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

@@ -772,10 +772,30 @@
772 772
 #define Y_MAX_POS Y_BED_SIZE
773 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 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 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 801
  * Filament Runout Sensor

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

@@ -780,10 +780,30 @@
780 780
 #define Y_MAX_POS Y_BED_SIZE
781 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 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 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 809
  * Filament Runout Sensor

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

@@ -790,10 +790,30 @@
790 790
 #define Y_MAX_POS Y_BED_SIZE
791 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 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 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 819
  * Filament Runout Sensor

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

@@ -28,6 +28,13 @@
28 28
 #ifndef CONDITIONALS_POST_H
29 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 38
   #define IS_SCARA (ENABLED(MORGAN_SCARA) || ENABLED(MAKERARM_SCARA))
32 39
   #define IS_KINEMATIC (ENABLED(DELTA) || IS_SCARA)
33 40
   #define IS_CARTESIAN !IS_KINEMATIC
@@ -793,7 +800,17 @@
793 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 815
   #if ENABLED(DELTA)
799 816
     #ifndef DELTA_CALIBRATION_RADIUS

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

@@ -255,6 +255,25 @@ static_assert(X_MAX_LENGTH >= X_BED_SIZE && Y_MAX_LENGTH >= Y_BED_SIZE,
255 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 277
  * Progress Bar
259 278
  */
260 279
 #if ENABLED(LCD_PROGRESS_BAR)

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

@@ -2834,17 +2834,35 @@ void kill_screen(const char* lcd_msg) {
2834 2834
       float min = current_position[axis] - 1000,
2835 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 2867
       // Delta limits XY based on the current offset from center
2850 2868
       // This assumes the center is 0,0

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

@@ -456,29 +456,28 @@ float soft_endstop_min[XYZ] = { X_MIN_BED, Y_MIN_BED, Z_MIN_POS },
456 456
 
457 457
   /**
458 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 463
   void clamp_to_software_endstops(float target[XYZ]) {
469 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 472
       NOLESS(target[Z_AXIS], soft_endstop_min[Z_AXIS]);
476 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 481
       NOMORE(target[Z_AXIS], soft_endstop_max[Z_AXIS]);
483 482
     #endif
484 483
   }

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

@@ -45,7 +45,7 @@
45 45
  */
46 46
 
47 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 49
 #endif
50 50
 
51 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,15 +1,33 @@
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 24
 * Teensy 3.5 (MK64FX512) and Teensy 3.6 (MK66FX1M0) Breadboard pin assignments
3 25
 * Requires the Teensyduino software with Teensy 3.5 or Teensy 3.6 selected in Arduino IDE!
4 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 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 31
 #endif
14 32
 
15 33
 #if IS_TEENSY35
@@ -18,12 +36,13 @@
18 36
   #define BOARD_NAME "Teensy3.6"
19 37
 #endif
20 38
 
21
-#define LARGE_FLASH        true
39
+#define AT90USB 1286   // Disable MarlinSerial etc.
22 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 46
                                                      USB
28 47
                                           GND |-----#####-----| VIN 5V
29 48
       X_STEP_PIN          MOSI1   RX1       0 |     #####     | Analog GND
@@ -84,7 +103,6 @@ D8    HEATER_BED_PIN      CS1     RX4  A12 31 |   46 * * 47   | 34 A15 PWM
84 103
 
85 104
 #define HEATER_0_PIN       30
86 105
 #define HEATER_1_PIN       36
87
-#define HEATER_2_PIN       -1
88 106
 #define HEATER_BED_PIN     31
89 107
 #define FAN_PIN             2
90 108
 
@@ -93,27 +111,27 @@ D8    HEATER_BED_PIN      CS1     RX4  A12 31 |   46 * * 47   | 34 A15 PWM
93 111
 #define Z_STOP_PIN         28
94 112
 
95 113
 #define TEMP_0_PIN          2 // Extruder / Analog pin numbering: 2 => A2
96
-#define TEMP_BED_PIN        1 // Bed / Analog pin numbering
97 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 117
 #define SDSS               39 // 8
103 118
 #define LED_PIN            13
104 119
 #define PS_ON_PIN           1
105
-#define KILL_PIN           -1
106 120
 #define ALARM_PIN          -1
107 121
 
108 122
 #define FILWIDTH_PIN        6
109 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 128
 #ifndef SDSUPPORT
112 129
   // these are defined in the SD library if building with SD support
113 130
   #define SCK_PIN          13
114 131
   #define MISO_PIN         12
115 132
   #define MOSI_PIN         11
116 133
 #endif
134
+#endif
117 135
 
118 136
 #ifdef ULTRA_LCD
119 137
   #define LCD_PINS_RS      40
@@ -126,5 +144,3 @@ D8    HEATER_BED_PIN      CS1     RX4  A12 31 |   46 * * 47   | 34 A15 PWM
126 144
   #define BTN_EN2          47
127 145
   #define BTN_ENC          48
128 146
 #endif
129
-
130
-#endif  // MOTHERBOARD == 841 (Teensy3.5 and Teensy3.6)

Loading…
Cancel
Save