Browse Source

Merge branch 'bugfix-2.0.x' of https://github.com/MarlinFirmware/Marlin into bugfix-2.0.x

Bob-the-Kuhn 6 years ago
parent
commit
520585c5ed
100 changed files with 1197 additions and 410 deletions
  1. 3
    0
      Marlin/Configuration.h
  2. 11
    0
      Marlin/Configuration_adv.h
  3. 87
    168
      Marlin/src/HAL/HAL_ESP32/WebSocketSerial.cpp
  4. 37
    52
      Marlin/src/HAL/HAL_ESP32/WebSocketSerial.h
  5. 3
    3
      Marlin/src/HAL/HAL_ESP32/i2s.cpp
  6. 6
    0
      Marlin/src/HAL/HAL_ESP32/i2s.h
  7. 21
    0
      Marlin/src/HAL/HAL_LPC1768/main.cpp
  8. 5
    5
      Marlin/src/HAL/HAL_LPC1768/u8g/u8g_com_HAL_LPC1768_ssd_hw_i2c.cpp
  9. 67
    1
      Marlin/src/HAL/HAL_LPC1768/u8g/u8g_com_HAL_LPC1768_sw_spi.cpp
  10. 1
    0
      Marlin/src/core/boards.h
  11. 0
    1
      Marlin/src/core/debug_out.h
  12. 7
    7
      Marlin/src/core/utility.cpp
  13. 2
    2
      Marlin/src/core/utility.h
  14. 81
    22
      Marlin/src/feature/power_loss_recovery.cpp
  15. 9
    0
      Marlin/src/feature/power_loss_recovery.h
  16. 3
    1
      Marlin/src/gcode/control/M3-M5.cpp
  17. 54
    38
      Marlin/src/gcode/geometry/G92.cpp
  18. 3
    2
      Marlin/src/gcode/queue.cpp
  19. 0
    3
      Marlin/src/gcode/sdcard/M23.cpp
  20. 2
    0
      Marlin/src/inc/Conditionals_LCD.h
  21. 1
    1
      Marlin/src/lcd/HD44780/ultralcd_HD44780.cpp
  22. 1
    1
      Marlin/src/lcd/dogm/status_screen_DOGM.cpp
  23. 5
    1
      Marlin/src/lcd/dogm/ultralcd_DOGM.h
  24. 143
    9
      Marlin/src/lcd/language/language_cz.h
  25. 3
    0
      Marlin/src/lcd/language/language_en.h
  26. 14
    0
      Marlin/src/lcd/language/language_sk.h
  27. 2
    2
      Marlin/src/lcd/menu/menu.cpp
  28. 11
    7
      Marlin/src/lcd/menu/menu.h
  29. 4
    4
      Marlin/src/lcd/menu/menu_advanced.cpp
  30. 26
    15
      Marlin/src/module/probe.cpp
  31. 2
    0
      Marlin/src/pins/pins.h
  32. 3
    7
      Marlin/src/pins/pins_AZTEEG_X5_MINI.h
  33. 13
    4
      Marlin/src/pins/pins_BIGTREE_SKR_V1.3.h
  34. 18
    7
      Marlin/src/pins/pins_BIQU_SKR_V1.1.h
  35. 1
    1
      Marlin/src/pins/pins_FORMBOT_TREX3.h
  36. 47
    20
      Marlin/src/pins/pins_MKS_SBASE.h
  37. 60
    0
      Marlin/src/pins/pins_MKS_SGEN.h
  38. 4
    1
      Marlin/src/pins/pins_RAMPS_FD_V1.h
  39. 35
    25
      Marlin/src/pins/pins_RAMPS_RE_ARM.h
  40. 1
    0
      Marlin/src/sd/cardreader.cpp
  41. 3
    0
      config/default/Configuration.h
  42. 11
    0
      config/default/Configuration_adv.h
  43. 3
    0
      config/examples/3DFabXYZ/Migbot/Configuration.h
  44. 11
    0
      config/examples/3DFabXYZ/Migbot/Configuration_adv.h
  45. 3
    0
      config/examples/AlephObjects/TAZ4/Configuration.h
  46. 11
    0
      config/examples/AlephObjects/TAZ4/Configuration_adv.h
  47. 3
    0
      config/examples/AliExpress/CL-260/Configuration.h
  48. 3
    0
      config/examples/AliExpress/UM2pExt/Configuration.h
  49. 11
    0
      config/examples/AliExpress/UM2pExt/Configuration_adv.h
  50. 3
    0
      config/examples/Anet/A2/Configuration.h
  51. 11
    0
      config/examples/Anet/A2/Configuration_adv.h
  52. 3
    0
      config/examples/Anet/A2plus/Configuration.h
  53. 11
    0
      config/examples/Anet/A2plus/Configuration_adv.h
  54. 3
    0
      config/examples/Anet/A6/Configuration.h
  55. 11
    0
      config/examples/Anet/A6/Configuration_adv.h
  56. 3
    0
      config/examples/Anet/A8/Configuration.h
  57. 11
    0
      config/examples/Anet/A8/Configuration_adv.h
  58. 3
    0
      config/examples/AnyCubic/i3/Configuration.h
  59. 11
    0
      config/examples/AnyCubic/i3/Configuration_adv.h
  60. 3
    0
      config/examples/ArmEd/Configuration.h
  61. 11
    0
      config/examples/ArmEd/Configuration_adv.h
  62. 3
    0
      config/examples/Azteeg/X5GT/Configuration.h
  63. 3
    0
      config/examples/BIBO/TouchX/cyclops/Configuration.h
  64. 11
    0
      config/examples/BIBO/TouchX/cyclops/Configuration_adv.h
  65. 3
    0
      config/examples/BIBO/TouchX/default/Configuration.h
  66. 11
    0
      config/examples/BIBO/TouchX/default/Configuration_adv.h
  67. 3
    0
      config/examples/BQ/Hephestos/Configuration.h
  68. 11
    0
      config/examples/BQ/Hephestos/Configuration_adv.h
  69. 3
    0
      config/examples/BQ/Hephestos_2/Configuration.h
  70. 11
    0
      config/examples/BQ/Hephestos_2/Configuration_adv.h
  71. 3
    0
      config/examples/BQ/WITBOX/Configuration.h
  72. 11
    0
      config/examples/BQ/WITBOX/Configuration_adv.h
  73. 3
    0
      config/examples/Cartesio/Configuration.h
  74. 11
    0
      config/examples/Cartesio/Configuration_adv.h
  75. 3
    0
      config/examples/Creality/CR-10/Configuration.h
  76. 11
    0
      config/examples/Creality/CR-10/Configuration_adv.h
  77. 3
    0
      config/examples/Creality/CR-10S/Configuration.h
  78. 11
    0
      config/examples/Creality/CR-10S/Configuration_adv.h
  79. 3
    0
      config/examples/Creality/CR-10_5S/Configuration.h
  80. 11
    0
      config/examples/Creality/CR-10_5S/Configuration_adv.h
  81. 3
    0
      config/examples/Creality/CR-10mini/Configuration.h
  82. 11
    0
      config/examples/Creality/CR-10mini/Configuration_adv.h
  83. 3
    0
      config/examples/Creality/CR-8/Configuration.h
  84. 11
    0
      config/examples/Creality/CR-8/Configuration_adv.h
  85. 3
    0
      config/examples/Creality/Ender-2/Configuration.h
  86. 11
    0
      config/examples/Creality/Ender-2/Configuration_adv.h
  87. 3
    0
      config/examples/Creality/Ender-3/Configuration.h
  88. 11
    0
      config/examples/Creality/Ender-3/Configuration_adv.h
  89. 3
    0
      config/examples/Creality/Ender-4/Configuration.h
  90. 11
    0
      config/examples/Creality/Ender-4/Configuration_adv.h
  91. 3
    0
      config/examples/Einstart-S/Configuration.h
  92. 11
    0
      config/examples/Einstart-S/Configuration_adv.h
  93. 3
    0
      config/examples/Felix/Configuration.h
  94. 11
    0
      config/examples/Felix/Configuration_adv.h
  95. 3
    0
      config/examples/Felix/DUAL/Configuration.h
  96. 3
    0
      config/examples/FlashForge/CreatorPro/Configuration.h
  97. 11
    0
      config/examples/FlashForge/CreatorPro/Configuration_adv.h
  98. 3
    0
      config/examples/FolgerTech/i3-2020/Configuration.h
  99. 11
    0
      config/examples/FolgerTech/i3-2020/Configuration_adv.h
  100. 0
    0
      config/examples/Formbot/Raptor/Configuration.h

+ 3
- 0
Marlin/Configuration.h View File

@@ -927,6 +927,9 @@
927 927
 
928 928
 // Before deploy/stow pause for user confirmation
929 929
 //#define PAUSE_BEFORE_DEPLOY_STOW
930
+#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
931
+  //#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
932
+#endif
930 933
 
931 934
 /**
932 935
  * Enable one or more of the following if probing seems unreliable.

+ 11
- 0
Marlin/Configuration_adv.h View File

@@ -905,6 +905,17 @@
905 905
   // Add an optimized binary file transfer mode, initiated with 'M28 B1'
906 906
   //#define BINARY_FILE_TRANSFER
907 907
 
908
+  // LPC-based boards have on-board SD Card options. Override here or defaults apply.
909
+  #ifdef TARGET_LPC1768
910
+    //#define LPC_SD_LCD          // Use the SD drive in the external LCD controller.
911
+    //#define LPC_SD_ONBOARD      // Use the SD drive on the control board. (No SD_DETECT_PIN. M21 to init.)
912
+    //#define LPC_SD_CUSTOM_CABLE // Use a custom cable to access the SD (as defined in a pins file).
913
+    //#define USB_SD_DISABLED     // Disable SD Card access over USB (for security).
914
+    #if ENABLED(LPC_SD_ONBOARD)
915
+      //#define USB_SD_ONBOARD    // Provide the onboard SD card to the host as a USB mass storage device.
916
+    #endif
917
+  #endif
918
+
908 919
 #endif // SDSUPPORT
909 920
 
910 921
 /**

+ 87
- 168
Marlin/src/HAL/HAL_ESP32/WebSocketSerial.cpp View File

@@ -21,213 +21,132 @@
21 21
  */
22 22
 #ifdef ARDUINO_ARCH_ESP32
23 23
 
24
-#include "../../inc/MarlinConfig.h"
24
+#include "../../inc/MarlinConfigPre.h"
25 25
 
26 26
 #if ENABLED(WIFISUPPORT)
27 27
 
28 28
 #include "WebSocketSerial.h"
29
-
30
-extern WebSocketSerial webSocketSerial;
31
-
32 29
 #include "wifi.h"
33
-#include <AsyncTCP.h>
34 30
 #include <ESPAsyncWebServer.h>
35 31
 
36
-struct ring_buffer_r {
37
-  unsigned char buffer[RX_BUFFER_SIZE];
38
-  volatile ring_buffer_pos_t head, tail;
39
-};
40
-
41
-struct ring_buffer_t {
42
-  unsigned char buffer[256];
43
-  volatile uint8_t head, tail;
44
-};
45
-
46
-ring_buffer_r rx_buffer = { { 0 }, 0, 0 };
47
-ring_buffer_t tx_buffer = { { 0 }, 0, 0 };
48
-
49
-static bool _written;
32
+WebSocketSerial webSocketSerial;
33
+AsyncWebSocket ws("/ws"); // TODO Move inside the class.
50 34
 
51
-#if ENABLED(EMERGENCY_PARSER)
52
-  static EmergencyParser::State emergency_state; // = EP_RESET
53
-#endif
35
+// RingBuffer impl
54 36
 
55
-AsyncWebSocket ws("/ws"); // access at ws://[esp ip]/ws
37
+#define NEXT_INDEX(I, SIZE) ((I + 1) & (ring_buffer_pos_t)(SIZE - 1))
56 38
 
57
-FORCE_INLINE int next_rx_index(const int i) { return (ring_buffer_pos_t)(i + 1) & (ring_buffer_pos_t)(RX_BUFFER_SIZE - 1); }
58
-FORCE_INLINE int next_tx_index(const int i) { return (ring_buffer_pos_t)(i + 1) & (ring_buffer_pos_t)(TX_BUFFER_SIZE - 1); }
39
+RingBuffer::RingBuffer(ring_buffer_pos_t size)
40
+  : data(new uint8_t[size]),
41
+    read_index(0),
42
+    write_index(0),
43
+    size(size)
44
+{}
59 45
 
60
-static void addToBuffer(uint8_t * const data, const size_t len) {
61
-  for (size_t i = 0; i < len; i++) {
62
-    ring_buffer_pos_t h = rx_buffer.head;
63
-    const ring_buffer_pos_t t = rx_buffer.tail, n = next_rx_index(h);
46
+RingBuffer::~RingBuffer() { delete[] data; }
64 47
 
65
-    if (n != t) { rx_buffer.buffer[h] = data[i]; h = n; }
66
-
67
-    // TODO: buffer is full, handle?
68
-
69
-    rx_buffer.head = h;
70
-  }
71
-}
48
+ring_buffer_pos_t RingBuffer::write(const uint8_t c) {
49
+  const ring_buffer_pos_t n = NEXT_INDEX(write_index, size);
72 50
 
73
-// Handle WebSocket event
74
-static void onEvent(AsyncWebSocket * server, AsyncWebSocketClient * client, AwsEventType type, void * arg, uint8_t *data, size_t len) {
75
-  switch (type) {
76
-    case WS_EVT_CONNECT: client->ping(); break; // client connected
77
-    case WS_EVT_DISCONNECT:                     // client disconnected
78
-    case WS_EVT_ERROR:                          // error was received from the other end
79
-    case WS_EVT_PONG: break;                    // pong message was received (in response to a ping request maybe)
80
-    case WS_EVT_DATA: {                         // data packet
81
-      AwsFrameInfo * info = (AwsFrameInfo*)arg;
82
-      if (info->opcode == WS_TEXT || info->message_opcode == WS_TEXT)
83
-        addToBuffer(data, len);
84
-    }
51
+  if (n != read_index) {
52
+    this->data[write_index] = c;
53
+    write_index = n;
54
+    return 1;
85 55
   }
86
-}
87 56
 
88
-// Public Methods
89
-void WebSocketSerial::begin(const long baud_setting) {
90
-  ws.onEvent(onEvent);
91
-  server.addHandler(&ws); // attach AsyncWebSocket
57
+  // TODO: buffer is full, handle?
58
+  return 0;
92 59
 }
93 60
 
94
-void WebSocketSerial::end() { }
95
-
96
-int WebSocketSerial::peek(void) {
97
-  const int v = rx_buffer.head == rx_buffer.tail ? -1 : rx_buffer.buffer[rx_buffer.tail];
98
-  return v;
61
+ring_buffer_pos_t RingBuffer::write(const uint8_t *buffer, ring_buffer_pos_t size) {
62
+  ring_buffer_pos_t written = 0;
63
+  for (ring_buffer_pos_t i = 0; i < size; i++) {
64
+    written += write(buffer[i]);
65
+  }
66
+  return written;
99 67
 }
100 68
 
101
-int WebSocketSerial::read(void) {
102
-  const ring_buffer_pos_t h = rx_buffer.head, t = rx_buffer.tail;
103
-  if (h == t) return -1;  // Nothing to read? Return now
104
-
105
-  const int v = rx_buffer.buffer[t];
106
-
107
-  rx_buffer.tail = (ring_buffer_pos_t)(t + 1) & (RX_BUFFER_SIZE - 1); // Advance tail
108
-
109
-  return v;
69
+int RingBuffer::available(void) {
70
+  return (size - read_index + write_index) & (size - 1);
110 71
 }
111 72
 
112
-bool WebSocketSerial::available(void) {
113
-  const ring_buffer_pos_t h = rx_buffer.head, t = rx_buffer.tail;
114
-  return (ring_buffer_pos_t)(RX_BUFFER_SIZE + h - t) & (RX_BUFFER_SIZE - 1);
73
+int RingBuffer::peek(void) {
74
+  return available() ? data[read_index] : -1;
115 75
 }
116 76
 
117
-void WebSocketSerial::flush(void) {
118
-  ws.textAll("flush");
119
-  rx_buffer.tail = rx_buffer.head;
77
+int RingBuffer::read(void) {
78
+  if (available()) {
79
+    const int ret = data[read_index];
80
+    read_index = NEXT_INDEX(read_index, size);
81
+    return ret;
82
+  }
83
+  return -1;
120 84
 }
121 85
 
122
-#if TX_BUFFER_SIZE
123
-
124
-  void WebSocketSerial::write(const uint8_t c) {
125
-    _written = true;
126
-
127
-    const uint8_t i = (tx_buffer.head + 1) & (TX_BUFFER_SIZE - 1);
86
+ring_buffer_pos_t RingBuffer::read(uint8_t *buffer) {
87
+   ring_buffer_pos_t len = available();
128 88
 
129
-    // Store new char. head is always safe to move
130
-    tx_buffer.buffer[tx_buffer.head] = c;
131
-    tx_buffer.head = i;
132
-
133
-    if (c == '\n') {
134
-      ws.textAll(tx_buffer.buffer, tx_buffer.head);
135
-      tx_buffer.head = 0;
136
-    }
89
+  for(ring_buffer_pos_t i = 0; read_index != write_index; i++) {
90
+    buffer[i] = data[read_index];
91
+    read_index = NEXT_INDEX(read_index, size);
137 92
   }
138 93
 
139
-  void WebSocketSerial::flushTx(void) {
140
-    ws.textAll("flushTx");
141
-    if (!_written) return;
142
-  }
143
-
144
-#else
94
+  return len;
95
+}
145 96
 
146
- //void WebSocketSerial::write(const uint8_t c) { _written = true; }
147
- //void WebSocketSerial::flushTx(void) { if (!_written) return; }
97
+void RingBuffer::flush(void) { read_index = write_index; }
148 98
 
149
-#endif
99
+// WebSocketSerial impl
100
+WebSocketSerial::WebSocketSerial()
101
+    : rx_buffer(RingBuffer(RX_BUFFER_SIZE)),
102
+      tx_buffer(RingBuffer(TX_BUFFER_SIZE))
103
+{}
150 104
 
151
-/**
152
- * Imports from print.h
153
- */
105
+void WebSocketSerial::begin(const long baud_setting) {
106
+  ws.onEvent([this](AsyncWebSocket *server, AsyncWebSocketClient *client, AwsEventType type, void *arg, uint8_t *data, size_t len) {
107
+    switch (type) {
108
+      case WS_EVT_CONNECT: client->ping(); break; // client connected
109
+      case WS_EVT_DISCONNECT:                     // client disconnected
110
+      case WS_EVT_ERROR:                          // error was received from the other end
111
+      case WS_EVT_PONG: break;                    // pong message was received (in response to a ping request maybe)
112
+      case WS_EVT_DATA: {                         // data packet
113
+        AwsFrameInfo * info = (AwsFrameInfo*)arg;
114
+        if (info->opcode == WS_TEXT || info->message_opcode == WS_TEXT)
115
+          this->rx_buffer.write(data, len);
116
+      }
117
+    }
118
+  });
119
+  server.addHandler(&ws);
120
+}
154 121
 
155
-void WebSocketSerial::print(char c, int base) { print((long)c, base); }
156
-void WebSocketSerial::print(unsigned char b, int base) { print((unsigned long)b, base); }
157
-void WebSocketSerial::print(int n, int base) { print((long)n, base); }
158
-void WebSocketSerial::print(unsigned int n, int base) { print((unsigned long)n, base); }
159
-void WebSocketSerial::print(long n, int base) {
160
-  if (base == 0)
161
-    write(n);
162
-  else if (base == 10) {
163
-    if (n < 0) { print('-'); n = -n; }
164
-    printNumber(n, 10);
122
+void WebSocketSerial::end() { }
123
+int WebSocketSerial::peek(void) { return rx_buffer.peek(); }
124
+int WebSocketSerial::read(void) { return rx_buffer.read(); }
125
+int WebSocketSerial::available(void) { return rx_buffer.available(); }
126
+void WebSocketSerial::flush(void) { rx_buffer.flush(); }
127
+
128
+size_t WebSocketSerial::write(const uint8_t c) {
129
+  size_t ret = tx_buffer.write(c);
130
+
131
+  if (ret && c == '\n') {
132
+    uint8_t tmp[TX_BUFFER_SIZE];
133
+    ring_buffer_pos_t size = tx_buffer.read(tmp);
134
+    ws.textAll(tmp, size);
165 135
   }
166
-  else
167
-    printNumber(n, base);
168
-}
169 136
 
170
-void WebSocketSerial::print(unsigned long n, int base) {
171
-  if (base == 0) write(n); else printNumber(n, base);
137
+  return ret;
172 138
 }
173 139
 
174
-void WebSocketSerial::print(double n, int digits)         { printFloat(n, digits); }
175
-
176
-void WebSocketSerial::println(void)                       { print('\r'); print('\n'); }
177
-void WebSocketSerial::println(const String& s)            { print(s); println(); }
178
-void WebSocketSerial::println(const char c[])             { print(c); println(); }
179
-void WebSocketSerial::println(char c, int base)           { print(c, base); println(); }
180
-void WebSocketSerial::println(unsigned char b, int base)  { print(b, base); println(); }
181
-void WebSocketSerial::println(int n, int base)            { print(n, base); println(); }
182
-void WebSocketSerial::println(unsigned int n, int base)   { print(n, base); println(); }
183
-void WebSocketSerial::println(long n, int base)           { print(n, base); println(); }
184
-void WebSocketSerial::println(unsigned long n, int base)  { print(n, base); println(); }
185
-void WebSocketSerial::println(double n, int digits)       { print(n, digits); println(); }
186
-
187
-// Private Methods
188
-
189
-void WebSocketSerial::printNumber(unsigned long n, uint8_t base) {
190
-  if (n) {
191
-    unsigned char buf[8 * sizeof(long)]; // Enough space for base 2
192
-    int8_t i = 0;
193
-    while (n) {
194
-      buf[i++] = n % base;
195
-      n /= base;
196
-    }
197
-    while (i--)
198
-      print((char)(buf[i] + (buf[i] < 10 ? '0' : 'A' - 10)));
140
+size_t WebSocketSerial::write(const uint8_t* buffer, size_t size) {
141
+  size_t written = 0;
142
+  for(size_t i = 0; i < size; i++) {
143
+    written += write(buffer[i]);
199 144
   }
200
-  else
201
-    print('0');
145
+  return written;
202 146
 }
203 147
 
204
-void WebSocketSerial::printFloat(double number, uint8_t digits) {
205
-  // Handle negative numbers
206
-  if (number < 0.0) { print('-'); number = -number; }
207
-
208
-  // Round correctly so that print(1.999, 2) prints as "2.00"
209
-  // Use a lookup table for performance
210
-  constexpr double rounds[] = { 0.5, 0.05, 0.005, 0.0005, 0.00005, 0.000005, 0.0000005, 0.00000005 };
211
-  number += rounds[digits];
212
-
213
-  //number += pow(10, -(digits + 1)); // slower single-line equivalent
214
-
215
-  // Extract the integer part of the number and print it
216
-  unsigned long int_part = (unsigned long)number;
217
-  print(int_part);
218
-
219
-  // Print the decimal point, but only if there are digits beyond
220
-  double remainder = number - (double)int_part;
221
-  if (digits) {
222
-    print('.');
223
-    // Extract digits from the remainder one at a time
224
-    while (digits--) {
225
-      remainder *= 10.0;
226
-      const int toPrint = int(remainder);
227
-      print(toPrint);
228
-      remainder -= toPrint;
229
-    }
230
-  }
148
+void WebSocketSerial::flushTX(void) {
149
+  // No need to do anything as there's no benefit to sending partial lines over the websocket connection.
231 150
 }
232 151
 
233 152
 #endif // WIFISUPPORT

+ 37
- 52
Marlin/src/HAL/HAL_ESP32/WebSocketSerial.h View File

@@ -23,12 +23,7 @@
23 23
 
24 24
 #include "../../inc/MarlinConfig.h"
25 25
 
26
-#include <WString.h>
27
-
28
-#define DEC 10
29
-#define HEX 16
30
-#define OCT 8
31
-#define BIN 2
26
+#include "Stream.h"
32 27
 
33 28
 #ifndef RX_BUFFER_SIZE
34 29
   #define RX_BUFFER_SIZE 128
@@ -40,60 +35,50 @@
40 35
   #error "TX_BUFFER_SIZE is required for the WebSocket."
41 36
 #endif
42 37
 
43
-#if RX_BUFFER_SIZE > 256
44
-  typedef uint16_t ring_buffer_pos_t;
45
-#else
46
-  typedef uint8_t ring_buffer_pos_t;
47
-#endif
38
+typedef uint16_t ring_buffer_pos_t;
48 39
 
49
-class WebSocketSerial {
50
-public:
51
-  WebSocketSerial() {};
52
-  static void begin(const long);
53
-  static void end();
54
-  static int peek(void);
55
-  static int read(void);
56
-  static void flush(void);
57
-  static void flushTx(void);
58
-  static bool available(void);
59
-  static void write(const uint8_t c);
40
+class RingBuffer {
41
+  uint8_t *data;
42
+  ring_buffer_pos_t size, read_index, write_index;
60 43
 
61
-  #if ENABLED(SERIAL_STATS_DROPPED_RX)
62
-    FORCE_INLINE static uint32_t dropped() { return 0; }
63
-  #endif
44
+public:
45
+  RingBuffer(ring_buffer_pos_t size);
46
+  ~RingBuffer();
64 47
 
65
-  #if ENABLED(SERIAL_STATS_MAX_RX_QUEUED)
66
-    FORCE_INLINE static int rxMaxEnqueued() { return 0; }
67
-  #endif
48
+  int available(void);
49
+  int peek(void);
50
+  int read(void);
51
+  ring_buffer_pos_t read(uint8_t *buffer);
52
+  void flush(void);
53
+  ring_buffer_pos_t write(const uint8_t c);
54
+  ring_buffer_pos_t write(const uint8_t* buffer, ring_buffer_pos_t size);
55
+};
68 56
 
69
-  FORCE_INLINE static void write(const char* str) { while (*str) write(*str++); }
70
-  FORCE_INLINE static void write(const uint8_t* buffer, size_t size) { while (size--) write(*buffer++); }
71
-  FORCE_INLINE static void print(const String& s) { for (int i = 0; i < (int)s.length(); i++) write(s[i]); }
72
-  FORCE_INLINE static void print(const char* str) { write(str); }
57
+class WebSocketSerial: public Stream {
58
+  RingBuffer rx_buffer;
59
+  RingBuffer tx_buffer;
73 60
 
74
-  static void print(char, int = 0);
75
-  static void print(unsigned char, int = 0);
76
-  static void print(int, int = DEC);
77
-  static void print(unsigned int, int = DEC);
78
-  static void print(long, int = DEC);
79
-  static void print(unsigned long, int = DEC);
80
-  static void print(double, int = 2);
61
+public:
62
+  WebSocketSerial();
63
+  void begin(const long);
64
+  void end();
65
+  int available(void);
66
+  int peek(void);
67
+  int read(void);
68
+  void flush(void);
69
+  void flushTX(void);
70
+  size_t write(const uint8_t c);
71
+  size_t write(const uint8_t* buffer, size_t size);
81 72
 
82
-  static void println(const String& s);
83
-  static void println(const char[]);
84
-  static void println(char, int = 0);
85
-  static void println(unsigned char, int = 0);
86
-  static void println(int, int = DEC);
87
-  static void println(unsigned int, int = DEC);
88
-  static void println(long, int = DEC);
89
-  static void println(unsigned long, int = DEC);
90
-  static void println(double, int = 2);
91
-  static void println(void);
92 73
   operator bool() { return true; }
93 74
 
94
-private:
95
-  static void printNumber(unsigned long, const uint8_t);
96
-  static void printFloat(double, uint8_t);
75
+  #if ENABLED(SERIAL_STATS_DROPPED_RX)
76
+    FORCE_INLINE uint32_t dropped() { return 0; }
77
+  #endif
78
+
79
+  #if ENABLED(SERIAL_STATS_MAX_RX_QUEUED)
80
+    FORCE_INLINE int rxMaxEnqueued() { return 0; }
81
+  #endif
97 82
 };
98 83
 
99 84
 extern WebSocketSerial webSocketSerial;

+ 3
- 3
Marlin/src/HAL/HAL_ESP32/i2s.cpp View File

@@ -303,9 +303,9 @@ int i2s_init() {
303 303
   xTaskCreate(stepperTask, "StepperTask", 10000, NULL, 1, NULL);
304 304
 
305 305
   // Route the i2s pins to the appropriate GPIO
306
-  gpio_matrix_out_check(22, I2S0O_DATA_OUT23_IDX, 0, 0);
307
-  gpio_matrix_out_check(25, I2S0O_WS_OUT_IDX, 0, 0);
308
-  gpio_matrix_out_check(26, I2S0O_BCK_OUT_IDX, 0, 0);
306
+  gpio_matrix_out_check(I2S_DATA, I2S0O_DATA_OUT23_IDX, 0, 0);
307
+  gpio_matrix_out_check(I2S_BCK, I2S0O_BCK_OUT_IDX, 0, 0);
308
+  gpio_matrix_out_check(I2S_WS, I2S0O_WS_OUT_IDX, 0, 0);
309 309
 
310 310
   // Start the I2S peripheral
311 311
   return i2s_start(I2S_NUM_0);

+ 6
- 0
Marlin/src/HAL/HAL_ESP32/i2s.h View File

@@ -29,3 +29,9 @@ int i2s_init();
29 29
 void i2s_write(uint8_t pin, uint8_t val);
30 30
 
31 31
 void i2s_push_sample();
32
+
33
+// pin definitions
34
+
35
+#define I2S_WS 25
36
+#define I2S_BCK 26
37
+#define I2S_DATA 27

+ 21
- 0
Marlin/src/HAL/HAL_LPC1768/main.cpp View File

@@ -1,3 +1,24 @@
1
+/**
2
+ * Marlin 3D Printer Firmware
3
+ * Copyright (C) 2019 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
+ */
1 22
 #ifdef TARGET_LPC1768
2 23
 
3 24
 #include <usb/usb.h>

+ 5
- 5
Marlin/src/HAL/HAL_LPC1768/u8g/u8g_com_HAL_LPC1768_ssd_hw_i2c.cpp View File

@@ -137,8 +137,11 @@ uint8_t u8g_com_HAL_LPC1768_ssd_hw_i2c_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_v
137 137
 
138 138
     case U8G_COM_MSG_WRITE_BYTE:
139 139
       //u8g->pin_list[U8G_PI_SET_A0] = 1;
140
-      //if (u8g_com_arduino_ssd_start_sequence(u8g) == 0)
141
-      //  return u8g_i2c_stop(), 0;
140
+      if (u8g_com_ssd_I2C_start_sequence(u8g) == 0) {
141
+        u8g_i2c_stop();
142
+        return 0;
143
+      }
144
+
142 145
       if (u8g_i2c_send_byte(arg_val) == 0) {
143 146
         u8g_i2c_stop();
144 147
         return 0;
@@ -186,9 +189,6 @@ uint8_t u8g_com_HAL_LPC1768_ssd_hw_i2c_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_v
186 189
     case U8G_COM_MSG_ADDRESS:                     /* define cmd (arg_val = 0) or data mode (arg_val = 1) */
187 190
       u8g->pin_list[U8G_PI_A0_STATE] = arg_val;
188 191
       u8g->pin_list[U8G_PI_SET_A0] = 1;   /* force a0 to set again */
189
-
190
-      u8g_i2c_start(0); // send slave address and write bit
191
-      u8g_i2c_send_byte(arg_val ? 0x40 : 0x80);  // Write to ? Graphics DRAM mode : Command mode
192 192
       break;
193 193
 
194 194
   } // switch

+ 67
- 1
Marlin/src/HAL/HAL_LPC1768/u8g/u8g_com_HAL_LPC1768_sw_spi.cpp View File

@@ -65,10 +65,76 @@
65 65
 #undef SPI_SPEED
66 66
 #define SPI_SPEED 2  // About 2 MHz
67 67
 
68
+#include <algorithm>
69
+#include <LPC17xx.h>
70
+#include <gpio.h>
71
+
72
+#include <Arduino.h>
73
+
74
+uint8_t swSpiTransfer_mode_0(uint8_t b, const uint8_t spi_speed, const pin_t sck_pin, const pin_t miso_pin, const pin_t mosi_pin ) {
75
+
76
+  for (uint8_t i = 0; i < 8; i++) {
77
+    if (spi_speed == 0) {
78
+      gpio_set(mosi_pin, !!(b & 0x80));
79
+      gpio_set(sck_pin, HIGH);
80
+      b <<= 1;
81
+      if (miso_pin >= 0 && gpio_get(miso_pin)) b |= 1;
82
+      gpio_set(sck_pin, LOW);
83
+    }
84
+    else {
85
+      const uint8_t state = (b & 0x80) ? HIGH : LOW;
86
+      for (uint8_t j = 0; j < spi_speed; j++)
87
+        gpio_set(mosi_pin, state);
88
+
89
+      for (uint8_t j = 0; j < spi_speed + (miso_pin >= 0 ? 0 : 1); j++)
90
+        gpio_set(sck_pin, HIGH);
91
+
92
+      b <<= 1;
93
+      if (miso_pin >= 0 && gpio_get(miso_pin)) b |= 1;
94
+
95
+      for (uint8_t j = 0; j < spi_speed; j++)
96
+        gpio_set(sck_pin, LOW);
97
+    }
98
+  }
99
+
100
+  return b;
101
+}
102
+
103
+uint8_t swSpiTransfer_mode_3(uint8_t b, const uint8_t spi_speed, const pin_t sck_pin, const pin_t miso_pin, const pin_t mosi_pin ) {
104
+
105
+  for (uint8_t i = 0; i < 8; i++) {
106
+    const uint8_t state = (b & 0x80) ? HIGH : LOW;
107
+    if (spi_speed == 0) {
108
+      gpio_set(sck_pin, LOW);
109
+      gpio_set(mosi_pin, state);
110
+      gpio_set(mosi_pin, state);  // need some setup time
111
+      gpio_set(sck_pin, HIGH);
112
+    }
113
+    else {
114
+      for (uint8_t j = 0; j < spi_speed + (miso_pin >= 0 ? 0 : 1); j++)
115
+        gpio_set(sck_pin, LOW);
116
+
117
+      for (uint8_t j = 0; j < spi_speed; j++)
118
+        gpio_set(mosi_pin, state);
119
+
120
+      for (uint8_t j = 0; j < spi_speed; j++)
121
+        gpio_set(sck_pin, HIGH);
122
+    }
123
+    b <<= 1;
124
+    if (miso_pin >= 0 && gpio_get(miso_pin)) b |= 1;
125
+  }
126
+
127
+  return b;
128
+}
129
+
68 130
 static uint8_t SPI_speed = 0;
69 131
 
70 132
 static void u8g_sw_spi_HAL_LPC1768_shift_out(uint8_t dataPin, uint8_t clockPin, uint8_t val) {
71
-  swSpiTransfer(val, SPI_speed, clockPin, -1, dataPin);
133
+  #if ENABLED(FYSETC_MINI_12864)
134
+    swSpiTransfer_mode_3(val, SPI_speed, clockPin, -1, dataPin);
135
+  #else
136
+    swSpiTransfer_mode_0(val, SPI_speed, clockPin, -1, dataPin);
137
+  #endif
72 138
 }
73 139
 
74 140
 uint8_t u8g_com_HAL_LPC1768_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) {

+ 1
- 0
Marlin/src/core/boards.h View File

@@ -194,6 +194,7 @@
194 194
 #define BOARD_BIQU_B300_V1_0      1760  // BIQU B300_V1.0 (Power outputs: Hotend0, Fan, Bed, SPI Driver)
195 195
 #define BOARD_BIGTREE_SKR_V1_3    1761  // BIGTREE SKR_V1.3 (Power outputs: Hotend0, Hotend1, Fan, Bed)
196 196
 #define BOARD_AZTEEG_X5_MINI      1762  // Azteeg X5 Mini (Power outputs: Hotend0, Bed, Fan)
197
+#define BOARD_MKS_SGEN            1763  // MKS-SGen (Power outputs: Hotend0, Hotend1, Bed, Fan)
197 198
 
198 199
 //
199 200
 // SAM3X8E ARM Cortex M3

+ 0
- 1
Marlin/src/core/debug_out.h View File

@@ -19,7 +19,6 @@
19 19
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
20 20
  *
21 21
  */
22
-#pragma once
23 22
 
24 23
 //
25 24
 // Serial aliases for debugging.

+ 7
- 7
Marlin/src/core/utility.cpp View File

@@ -264,15 +264,15 @@ void safe_delay(millis_t ms) {
264 264
     return conv;
265 265
   }
266 266
 
267
-  // Convert unsigned float to string with 1234.56 format omitting trailing zeros
268
-  char* ftostr62rj(const float &f) {
269
-    const long i = ((f < 0 ? -f : f) * 1000 + 5) / 10;
270
-    conv[0] = RJDIGIT(i, 100000);
267
+  // Convert unsigned float to string with 1234.5 format omitting trailing zeros
268
+  char* ftostr51rj(const float &f) {
269
+    const long i = ((f < 0 ? -f : f) * 100 + 5) / 10;
270
+    conv[0] = ' ';
271 271
     conv[1] = RJDIGIT(i, 10000);
272 272
     conv[2] = RJDIGIT(i, 1000);
273
-    conv[3] = DIGIMOD(i, 100);
274
-    conv[4] = '.';
275
-    conv[5] = DIGIMOD(i, 10);
273
+    conv[3] = RJDIGIT(i, 100);
274
+    conv[4] = DIGIMOD(i, 10);
275
+    conv[5] = '.';
276 276
     conv[6] = DIGIMOD(i, 1);
277 277
     return conv;
278 278
   }

+ 2
- 2
Marlin/src/core/utility.h View File

@@ -106,8 +106,8 @@ inline void serial_delay(const millis_t ms) {
106 106
   // Convert signed float to string with +123.45 format
107 107
   char* ftostr52sign(const float &x);
108 108
 
109
-  // Convert unsigned float to string with 1234.56 format omitting trailing zeros
110
-  char* ftostr62rj(const float &x);
109
+  // Convert unsigned float to string with 1234.5 format omitting trailing zeros
110
+  char* ftostr51rj(const float &x);
111 111
 
112 112
   // Convert float to rj string with 123 or -12 format
113 113
   FORCE_INLINE char* ftostr3(const float &x) { return i16tostr3(int16_t(x + (x < 0 ? -0.5f : 0.5f))); }

+ 81
- 22
Marlin/src/feature/power_loss_recovery.cpp View File

@@ -151,6 +151,12 @@ void PrintJobRecovery::save(const bool force/*=false*/, const bool save_queue/*=
151 151
 
152 152
     // Machine state
153 153
     COPY(info.current_position, current_position);
154
+    #if HAS_HOME_OFFSET
155
+      COPY(info.home_offset, home_offset);
156
+    #endif
157
+    #if HAS_POSITION_SHIFT
158
+      COPY(info.position_shift, position_shift);
159
+    #endif
154 160
     info.feedrate = uint16_t(feedrate_mm_s * 60.0f);
155 161
 
156 162
     #if HOTENDS > 1
@@ -187,7 +193,7 @@ void PrintJobRecovery::save(const bool force/*=false*/, const bool save_queue/*=
187 193
       info.retract_hop = fwretract.current_hop;
188 194
     #endif
189 195
 
190
-    //relative mode
196
+    // Relative mode
191 197
     info.relative_mode = relative_mode;
192 198
     info.relative_modes_e = gcode.axis_relative_modes[E_AXIS];
193 199
 
@@ -239,20 +245,30 @@ void PrintJobRecovery::resume() {
239 245
     gcode.process_subcommands_now_P(PSTR("M420 S0 Z0"));
240 246
   #endif
241 247
 
242
-  // Set Z to 0, raise Z by 2mm, and Home (XY only for Cartesian) with no raise
243
-  // (Only do simulated homing in Marlin Dev Mode.)
244
-  gcode.process_subcommands_now_P(PSTR("G92.0 Z0\nG1 Z" STRINGIFY(RECOVERY_ZRAISE) "\nG28 R0"
245
-    #if ENABLED(MARLIN_DEV_MODE)
246
-      " S"
247
-    #elif !IS_KINEMATIC
248
-      " X Y"
248
+  // Reset E, raise Z, home XY...
249
+  gcode.process_subcommands_now_P(PSTR("G92.9 E0"
250
+    #if Z_HOME_DIR > 0
251
+      // If Z homing goes to max, reset E and home all
252
+      "\nG28R0"
253
+      #if ENABLED(MARLIN_DEV_MODE)
254
+        "S"
255
+      #endif
256
+    #else
257
+      // Set Z to 0, raise Z by RECOVERY_ZRAISE, and Home (XY only for Cartesian)
258
+      // with no raise. (Only do simulated homing in Marlin Dev Mode.)
259
+      "Z0\nG1Z" STRINGIFY(RECOVERY_ZRAISE) "\nG28R0"
260
+      #if ENABLED(MARLIN_DEV_MODE)
261
+        "S"
262
+      #elif !IS_KINEMATIC
263
+        "XY"
264
+      #endif
249 265
     #endif
250 266
   ));
251 267
 
252 268
   // Pretend that all axes are homed
253 269
   axis_homed = axis_known_position = xyz_bits;
254 270
 
255
-  char cmd[40], str_1[16], str_2[16];
271
+  char cmd[50], str_1[16], str_2[16];
256 272
 
257 273
   // Select the previously active tool (with no_move)
258 274
   #if EXTRUDERS > 1
@@ -315,16 +331,16 @@ void PrintJobRecovery::resume() {
315 331
     memcpy(&mixer.gradient, &info.gradient, sizeof(info.gradient));
316 332
   #endif
317 333
 
318
-  // Restore Z (plus raise) and E positions with G92.0
319
-  dtostrf(info.current_position[Z_AXIS] + RECOVERY_ZRAISE, 1, 3, str_1);
320
-  dtostrf(info.current_position[E_AXIS]
321
-    #if ENABLED(SAVE_EACH_CMD_MODE)
322
-      - 5 // Extra extrusion on restart
323
-    #endif
324
-    , 1, 3, str_2
325
-  );
326
-  sprintf_P(cmd, PSTR("G92.0 Z%s E%s"), str_1, str_2);
327
-  gcode.process_subcommands_now(cmd);
334
+  // Extrude and retract to clean the nozzle
335
+  #if POWER_LOSS_PURGE_LEN
336
+    //sprintf_P(cmd, PSTR("G1 E%d F200"), POWER_LOSS_PURGE_LEN);
337
+    //gcode.process_subcommands_now(cmd);
338
+    gcode.process_subcommands_now_P(PSTR("G1 E" STRINGIFY(POWER_LOSS_PURGE_LEN) " F200"));
339
+  #endif
340
+  #if POWER_LOSS_RETRACT_LEN
341
+    sprintf_P(cmd, PSTR("G1 E%d F3000"), POWER_LOSS_PURGE_LEN - POWER_LOSS_RETRACT_LEN);
342
+    gcode.process_subcommands_now(cmd);
343
+  #endif
328 344
 
329 345
   // Move back to the saved XY
330 346
   dtostrf(info.current_position[X_AXIS], 1, 3, str_1);
@@ -337,13 +353,37 @@ void PrintJobRecovery::resume() {
337 353
   sprintf_P(cmd, PSTR("G1 Z%s F200"), str_1);
338 354
   gcode.process_subcommands_now(cmd);
339 355
 
356
+  // Un-retract
357
+  #if POWER_LOSS_PURGE_LEN
358
+    //sprintf_P(cmd, PSTR("G1 E%d F3000"), POWER_LOSS_PURGE_LEN);
359
+    //gcode.process_subcommands_now(cmd);
360
+    gcode.process_subcommands_now_P(PSTR("G1 E" STRINGIFY(POWER_LOSS_PURGE_LEN) " F3000"));
361
+  #endif
362
+
340 363
   // Restore the feedrate
341 364
   sprintf_P(cmd, PSTR("G1 F%d"), info.feedrate);
342 365
   gcode.process_subcommands_now(cmd);
343 366
 
344
-  //relative mode
345
-  if (info.relative_mode) relative_mode = true;
346
-  if (info.relative_modes_e) gcode.axis_relative_modes[E_AXIS] = true;
367
+  // Restore E position with G92.9
368
+  dtostrf(info.current_position[E_AXIS], 1, 3, str_1);
369
+  sprintf_P(cmd, PSTR("G92.9 E%s"), str_1);
370
+  gcode.process_subcommands_now(cmd);
371
+
372
+  // Relative mode
373
+  relative_mode = info.relative_mode;
374
+  gcode.axis_relative_modes[E_AXIS] = info.relative_modes_e;
375
+
376
+  #if HAS_HOME_OFFSET || HAS_POSITION_SHIFT
377
+    LOOP_XYZ(i) {
378
+      #if HAS_HOME_OFFSET
379
+        home_offset[i] = info.home_offset[i];
380
+      #endif
381
+      #if HAS_POSITION_SHIFT
382
+        position_shift[i] = info.position_shift[i];
383
+      #endif
384
+      update_workspace_offset((AxisEnum)i);
385
+    }
386
+  #endif
347 387
 
348 388
   // Process commands from the old pending queue
349 389
   uint8_t c = info.commands_in_queue, r = info.cmd_queue_index_r;
@@ -372,6 +412,25 @@ void PrintJobRecovery::resume() {
372 412
           DEBUG_ECHO(info.current_position[i]);
373 413
         }
374 414
         DEBUG_EOL();
415
+
416
+        #if HAS_HOME_OFFSET
417
+          DEBUG_ECHOPGM("home_offset: ");
418
+          LOOP_XYZ(i) {
419
+            if (i) DEBUG_CHAR(',');
420
+            DEBUG_ECHO(info.home_offset[i]);
421
+          }
422
+          DEBUG_EOL();
423
+        #endif
424
+
425
+        #if HAS_POSITION_SHIFT
426
+          DEBUG_ECHOPGM("position_shift: ");
427
+          LOOP_XYZ(i) {
428
+            if (i) DEBUG_CHAR(',');
429
+            DEBUG_ECHO(info.position_shift[i]);
430
+          }
431
+          DEBUG_EOL();
432
+        #endif
433
+
375 434
         DEBUG_ECHOLNPAIR("feedrate: ", info.feedrate);
376 435
 
377 436
         #if HOTENDS > 1

+ 9
- 0
Marlin/src/feature/power_loss_recovery.h View File

@@ -35,6 +35,8 @@
35 35
 #define SAVE_INFO_INTERVAL_MS 0
36 36
 //#define SAVE_EACH_CMD_MODE
37 37
 //#define DEBUG_POWER_LOSS_RECOVERY
38
+#define POWER_LOSS_PURGE_LEN 20
39
+#define POWER_LOSS_RETRACT_LEN 10
38 40
 
39 41
 typedef struct {
40 42
   uint8_t valid_head;
@@ -42,6 +44,13 @@ typedef struct {
42 44
   // Machine state
43 45
   float current_position[NUM_AXIS];
44 46
 
47
+  #if HAS_HOME_OFFSET
48
+    float home_offset[XYZ];
49
+  #endif
50
+  #if HAS_POSITION_SHIFT
51
+    float position_shift[XYZ];
52
+  #endif
53
+
45 54
   uint16_t feedrate;
46 55
 
47 56
   #if HOTENDS > 1

+ 3
- 1
Marlin/src/gcode/control/M3-M5.cpp View File

@@ -74,7 +74,9 @@ inline void delay_for_power_down() { safe_delay(SPINDLE_LASER_POWERDOWN_DELAY);
74 74
 
75 75
 inline void set_spindle_laser_ocr(const uint8_t ocr) {
76 76
   WRITE(SPINDLE_LASER_ENA_PIN, SPINDLE_LASER_ENABLE_INVERT); // turn spindle on (active low)
77
-  analogWrite(SPINDLE_LASER_PWM_PIN, (SPINDLE_LASER_PWM_INVERT) ? 255 - ocr : ocr);
77
+  #if ENABLED(SPINDLE_LASER_PWM)
78
+    analogWrite(SPINDLE_LASER_PWM_PIN, (SPINDLE_LASER_PWM_INVERT) ? 255 - ocr : ocr);
79
+  #endif
78 80
 }
79 81
 
80 82
 #if ENABLED(SPINDLE_LASER_PWM)

+ 54
- 38
Marlin/src/gcode/geometry/G92.cpp View File

@@ -33,9 +33,23 @@
33 33
  */
34 34
 void GcodeSuite::G92() {
35 35
 
36
-  #if ENABLED(CNC_COORDINATE_SYSTEMS)
37
-    switch (parser.subcode) {
38
-      case 1:
36
+  bool didE = false;
37
+  #if IS_SCARA || !HAS_POSITION_SHIFT
38
+    bool didXYZ = false;
39
+  #else
40
+    constexpr bool didXYZ = false;
41
+  #endif
42
+
43
+  #if USE_GCODE_SUBCODES
44
+    const uint8_t subcode_G92 = parser.subcode;
45
+  #else
46
+    constexpr uint8_t subcode_G92 = 0;
47
+  #endif
48
+
49
+  switch (subcode_G92) {
50
+    default: break;
51
+    #if ENABLED(CNC_COORDINATE_SYSTEMS)
52
+      case 1: {
39 53
         // Zero the G92 values and restore current position
40 54
         #if !IS_SCARA
41 55
           LOOP_XYZ(i) {
@@ -46,44 +60,46 @@ void GcodeSuite::G92() {
46 60
             }
47 61
           }
48 62
         #endif // Not SCARA
49
-        return;
50
-    }
51
-  #endif
52
-
53
-  #if ENABLED(CNC_COORDINATE_SYSTEMS)
54
-    #define IS_G92_0 (parser.subcode == 0)
55
-  #else
56
-    #define IS_G92_0 true
57
-  #endif
58
-
59
-  bool didE = false;
60
-  #if IS_SCARA || !HAS_POSITION_SHIFT
61
-    bool didXYZ = false;
62
-  #else
63
-    constexpr bool didXYZ = false;
64
-  #endif
65
-
66
-  if (IS_G92_0) LOOP_XYZE(i) {
67
-    if (parser.seenval(axis_codes[i])) {
68
-      const float l = parser.value_axis_units((AxisEnum)i),
69
-                  v = i == E_AXIS ? l : LOGICAL_TO_NATIVE(l, i),
70
-                  d = v - current_position[i];
71
-      if (!NEAR_ZERO(d)) {
72
-        #if IS_SCARA || !HAS_POSITION_SHIFT
73
-          if (i == E_AXIS) didE = true; else didXYZ = true;
74
-          current_position[i] = v;        // Without workspaces revert to Marlin 1.0 behavior
75
-        #elif HAS_POSITION_SHIFT
76
-          if (i == E_AXIS) {
77
-            didE = true;
78
-            current_position[E_AXIS] = v; // When using coordinate spaces, only E is set directly
63
+      } return;
64
+    #endif
65
+    #if ENABLED(POWER_LOSS_RECOVERY)
66
+      case 9: {
67
+        LOOP_XYZE(i) {
68
+          if (parser.seenval(axis_codes[i])) {
69
+            current_position[i] = parser.value_axis_units((AxisEnum)i);
70
+            #if IS_SCARA || !HAS_POSITION_SHIFT
71
+              if (i == E_AXIS) didE = true; else didXYZ = true;
72
+            #elif HAS_POSITION_SHIFT
73
+              if (i == E_AXIS) didE = true;
74
+            #endif
79 75
           }
80
-          else {
81
-            position_shift[i] += d;       // Other axes simply offset the coordinate space
82
-            update_workspace_offset((AxisEnum)i);
76
+        }
77
+      } break;
78
+    #endif
79
+    case 0: {
80
+      LOOP_XYZE(i) {
81
+        if (parser.seenval(axis_codes[i])) {
82
+          const float l = parser.value_axis_units((AxisEnum)i),
83
+                      v = i == E_AXIS ? l : LOGICAL_TO_NATIVE(l, i),
84
+                      d = v - current_position[i];
85
+          if (!NEAR_ZERO(d)) {
86
+            #if IS_SCARA || !HAS_POSITION_SHIFT
87
+              if (i == E_AXIS) didE = true; else didXYZ = true;
88
+              current_position[i] = v;        // Without workspaces revert to Marlin 1.0 behavior
89
+            #elif HAS_POSITION_SHIFT
90
+              if (i == E_AXIS) {
91
+                didE = true;
92
+                current_position[E_AXIS] = v; // When using coordinate spaces, only E is set directly
93
+              }
94
+              else {
95
+                position_shift[i] += d;       // Other axes simply offset the coordinate space
96
+                update_workspace_offset((AxisEnum)i);
97
+              }
98
+            #endif
83 99
           }
84
-        #endif
100
+        }
85 101
       }
86
-    }
102
+    } break;
87 103
   }
88 104
 
89 105
   #if ENABLED(CNC_COORDINATE_SYSTEMS)

+ 3
- 2
Marlin/src/gcode/queue.cpp View File

@@ -526,8 +526,9 @@ void gcode_line_error(PGM_P const err, const int8_t port) {
526 526
 
527 527
 #endif // BINARY_FILE_TRANSFER
528 528
 
529
-FORCE_INLINE bool is_M29(const char * const cmd) {
530
-  return cmd[0] == 'M' && cmd[1] == '2' && cmd[2] == '9' && !WITHIN(cmd[3], '0', '9');
529
+FORCE_INLINE bool is_M29(const char * const cmd) {  // matches "M29" & "M29 ", but not "M290", etc
530
+  const char * const m29 = strstr_P(cmd, PSTR("M29"));
531
+  return m29 && !NUMERIC(m29[3]);
531 532
 }
532 533
 
533 534
 /**

+ 0
- 3
Marlin/src/gcode/sdcard/M23.cpp View File

@@ -31,9 +31,6 @@
31 31
  * M23: Open a file
32 32
  */
33 33
 void GcodeSuite::M23() {
34
-  #if ENABLED(POWER_LOSS_RECOVERY)
35
-    card.removeJobRecoveryFile();
36
-  #endif
37 34
   // Simplify3D includes the size, so zero out all spaces (#7227)
38 35
   for (char *fn = parser.string_arg; *fn; ++fn) if (*fn == ' ') *fn = '\0';
39 36
   card.openFile(parser.string_arg, true);

+ 2
- 0
Marlin/src/inc/Conditionals_LCD.h View File

@@ -143,6 +143,8 @@
143 143
 
144 144
   #define DOGLCD
145 145
   #define ULTIPANEL
146
+  #define LCD_CONTRAST_MIN 0
147
+  #define LCD_CONTRAST_MAX 255
146 148
   #define DEFAULT_LCD_CONTRAST 255
147 149
   #define LED_COLORS_REDUCE_GREEN
148 150
 

+ 1
- 1
Marlin/src/lcd/HD44780/ultralcd_HD44780.cpp View File

@@ -517,7 +517,7 @@ FORCE_INLINE void _draw_axis_value(const AxisEnum axis, const char *value, const
517 517
     else {
518 518
       #if DISABLED(HOME_AFTER_DEACTIVATE, DISABLE_REDUCED_ACCURACY_WARNING)
519 519
         if (!TEST(axis_known_position, axis))
520
-          lcd_put_u8str_P(axis == Z_AXIS ? PSTR("      ") : PSTR("    "));
520
+          lcd_put_u8str_P(axis == Z_AXIS ? PSTR("       ") : PSTR("    "));
521 521
         else
522 522
       #endif
523 523
           lcd_put_u8str(value);

+ 1
- 1
Marlin/src/lcd/dogm/status_screen_DOGM.cpp View File

@@ -245,7 +245,7 @@ FORCE_INLINE void _draw_axis_value(const AxisEnum axis, const char *value, const
245 245
     else {
246 246
       #if DISABLED(HOME_AFTER_DEACTIVATE, DISABLE_REDUCED_ACCURACY_WARNING)
247 247
         if (!TEST(axis_known_position, axis))
248
-          lcd_put_u8str_P(axis == Z_AXIS ? PSTR("      ") : PSTR("    "));
248
+          lcd_put_u8str_P(axis == Z_AXIS ? PSTR("       ") : PSTR("    "));
249 249
         else
250 250
       #endif
251 251
           lcd_put_u8str(value);

+ 5
- 1
Marlin/src/lcd/dogm/ultralcd_DOGM.h View File

@@ -112,7 +112,11 @@
112 112
   //#define U8G_CLASS U8GLIB_MINI12864
113 113
   //#define U8G_PARAM DOGLCD_CS, DOGLCD_A0                            // 8 stripes
114 114
   #define U8G_CLASS U8GLIB_MINI12864_2X
115
-  #define U8G_PARAM DOGLCD_CS, DOGLCD_A0                              // 4 stripes
115
+  #if EITHER(FYSETC_MINI_12864, TARGET_LPC1768)
116
+    #define U8G_PARAM DOGLCD_SCK, DOGLCD_MOSI, DOGLCD_CS, DOGLCD_A0   // 4 stripes SW-SPI
117
+  #else
118
+    #define U8G_PARAM DOGLCD_CS, DOGLCD_A0                            // 4 stripes HW-SPI
119
+  #endif
116 120
 #elif ENABLED(U8GLIB_SH1106_EINSTART)
117 121
   // Connected via motherboard header
118 122
   #define U8G_CLASS U8GLIB_SH1106_128X64

+ 143
- 9
Marlin/src/lcd/language/language_cz.h View File

@@ -35,15 +35,20 @@
35 35
  */
36 36
 
37 37
 #define DISPLAY_CHARSET_ISO10646_CZ
38
+#define THIS_LANGUAGES_SPECIAL_SYMBOLS      _UxGT("áÁčČďĎéÉěĚíÍňŇóÓřŘšŠťŤúÚůŮýÝžŽ³")
38 39
 #define CHARSIZE 2
39 40
 
40 41
 #define WELCOME_MSG                         MACHINE_NAME _UxGT(" připraven.")
42
+#define MSG_YES                             _UxGT("ANO")
43
+#define MSG_NO                              _UxGT("NE")
41 44
 #define MSG_BACK                            _UxGT("Zpět")
42 45
 #define MSG_SD_INSERTED                     _UxGT("Karta vložena")
43 46
 #define MSG_SD_REMOVED                      _UxGT("Karta vyjmuta")
44 47
 #define MSG_LCD_ENDSTOPS                    _UxGT("Endstopy") // max 8 znaku
45 48
 #define MSG_LCD_SOFT_ENDSTOPS               _UxGT("Soft Endstopy")
46 49
 #define MSG_MAIN                            _UxGT("Hlavní nabídka")
50
+#define MSG_ADVANCED_SETTINGS               _UxGT("Další nastavení")
51
+#define MSG_CONFIGURATION                   _UxGT("Konfigurace")
47 52
 #define MSG_AUTOSTART                       _UxGT("Autostart")
48 53
 #define MSG_DISABLE_STEPPERS                _UxGT("Uvolnit motory")
49 54
 #define MSG_DEBUG_MENU                      _UxGT("Nabídka ladění")
@@ -56,6 +61,7 @@
56 61
 #define MSG_AUTO_HOME_X                     _UxGT("Domů osa X")
57 62
 #define MSG_AUTO_HOME_Y                     _UxGT("Domů osa Y")
58 63
 #define MSG_AUTO_HOME_Z                     _UxGT("Domů osa Z")
64
+#define MSG_AUTO_Z_ALIGN                    _UxGT("Auto srovnání Z")
59 65
 #define MSG_LEVEL_BED_HOMING                _UxGT("Měření podložky")
60 66
 #define MSG_LEVEL_BED_WAITING               _UxGT("Kliknutím spusťte")
61 67
 #define MSG_LEVEL_BED_NEXT_POINT            _UxGT("Další bod")
@@ -76,7 +82,13 @@
76 82
 #define MSG_PREHEAT_2_END                   MSG_PREHEAT_2 _UxGT(" hotend")
77 83
 #define MSG_PREHEAT_2_BEDONLY               MSG_PREHEAT_2 _UxGT(" podlož")
78 84
 #define MSG_PREHEAT_2_SETTINGS              MSG_PREHEAT_2 _UxGT(" nast")
85
+#define MSG_PREHEAT_CUSTOM                  _UxGT("Zahřát vlastní")
79 86
 #define MSG_COOLDOWN                        _UxGT("Zchladit")
87
+#define MSG_LASER_MENU                      _UxGT("Ovládání laseru")
88
+#define MSG_LASER_OFF                       _UxGT("Vypnout laser")
89
+#define MSG_LASER_ON                        _UxGT("Zapnout laser")
90
+#define MSG_LASER_POWER                     _UxGT("Výkon laseru")
91
+#define MSG_SPINDLE_REVERSE                 _UxGT("Vřeteno opačně")
80 92
 #define MSG_SWITCH_PS_ON                    _UxGT("Zapnout napájení")
81 93
 #define MSG_SWITCH_PS_OFF                   _UxGT("Vypnout napájení")
82 94
 #define MSG_EXTRUDE                         _UxGT("Vytlačit (extr.)")
@@ -88,10 +100,23 @@
88 100
 #define MSG_NEXT_CORNER                     _UxGT("Další roh")
89 101
 #define MSG_EDITING_STOPPED                 _UxGT("Konec úprav sítě")
90 102
 
103
+#define MSG_MESH_X                          _UxGT("Index X")
104
+#define MSG_MESH_Y                          _UxGT("Index Y")
105
+#define MSG_MESH_EDIT_Z                     _UxGT("Hodnota Z")
106
+#define MSG_USER_MENU                       _UxGT("Vlastní příkazy")
91 107
 #define MSG_UBL_DOING_G29                   _UxGT("Provádím G29")
92 108
 #define MSG_UBL_UNHOMED                     _UxGT("Přejeďte domů")
93 109
 #define MSG_UBL_TOOLS                       _UxGT("UBL nástroje")
94 110
 #define MSG_UBL_LEVEL_BED                   _UxGT("Unified Bed Leveling")
111
+#define MSG_IDEX_MENU                       _UxGT("Režim IDEX")
112
+#define MSG_OFFSETS_MENU                    _UxGT("Ofsety nástrojů")
113
+#define MSG_IDEX_MODE_AUTOPARK              _UxGT("Auto-Park")
114
+#define MSG_IDEX_MODE_DUPLICATE             _UxGT("Duplikace")
115
+#define MSG_IDEX_MODE_MIRRORED_COPY         _UxGT("Zrcadlení")
116
+#define MSG_IDEX_MODE_FULL_CTRL             _UxGT("Plná kontrola")
117
+#define MSG_X_OFFSET                        _UxGT("2. tryska X")
118
+#define MSG_Y_OFFSET                        _UxGT("2. tryska Y")
119
+#define MSG_Z_OFFSET                        _UxGT("2. tryska Z")
95 120
 #define MSG_UBL_MANUAL_MESH                 _UxGT("Manuální síť bodů")
96 121
 #define MSG_UBL_BC_INSERT                   _UxGT("Vložte kartu, změřte")
97 122
 #define MSG_UBL_BC_INSERT2                  _UxGT("Změřte")
@@ -169,7 +194,6 @@
169 194
 #define MSG_INTENSITY_B                     _UxGT("Modrá intenzita")
170 195
 #define MSG_INTENSITY_W                     _UxGT("Bílá intenzita")
171 196
 #define MSG_LED_BRIGHTNESS                  _UxGT("Jas")
172
-#define MSG_USER_MENU                       _UxGT("Vlastní příkazy")
173 197
 
174 198
 #define MSG_MOVING                          _UxGT("Posouvání...")
175 199
 #define MSG_FREE_XY                         _UxGT("Uvolnit XY")
@@ -177,6 +201,7 @@
177 201
 #define MSG_MOVE_Y                          _UxGT("Posunout Y")
178 202
 #define MSG_MOVE_Z                          _UxGT("Posunout Z")
179 203
 #define MSG_MOVE_E                          _UxGT("Extrudér")
204
+#define MSG_HOTEND_TOO_COLD                 _UxGT("Hotend je studený")
180 205
 #define MSG_MOVE_01MM                       _UxGT("Posunout o 0,1mm")
181 206
 #define MSG_MOVE_1MM                        _UxGT("Posunout o 1mm")
182 207
 #define MSG_MOVE_10MM                       _UxGT("Posunout o 10mm")
@@ -184,6 +209,7 @@
184 209
 #define MSG_BED_Z                           _UxGT("Výška podl.")
185 210
 #define MSG_NOZZLE                          _UxGT("Tryska")
186 211
 #define MSG_BED                             _UxGT("Podložka")
212
+#define MSG_CHAMBER                         _UxGT("Komora")
187 213
 #define MSG_FAN_SPEED                       _UxGT("Rychlost vent.")
188 214
 #define MSG_EXTRA_FAN_SPEED                 _UxGT("Rychlost ex. vent.")
189 215
 #define MSG_FLOW                            _UxGT("Průtok")
@@ -250,10 +276,15 @@
250 276
 #define MSG_LOAD_EEPROM                     _UxGT("Načíst nastavení")
251 277
 #define MSG_RESTORE_FAILSAFE                _UxGT("Obnovit výchozí")
252 278
 #define MSG_INIT_EEPROM                     _UxGT("Inic. EEPROM")
279
+#define MSG_SD_UPDATE                       _UxGT("Aktualizace z SD")
280
+#define MSG_RESET_PRINTER                   _UxGT("Reset tiskárny")
253 281
 #define MSG_REFRESH                         _UxGT("Obnovit")
254 282
 #define MSG_WATCH                           _UxGT("Info obrazovka")
255 283
 #define MSG_PREPARE                         _UxGT("Připrava tisku")
256 284
 #define MSG_TUNE                            _UxGT("Doladění tisku")
285
+#define MSG_START_PRINT                     _UxGT("Spustit tisk")
286
+#define MSG_BUTTON_PRINT                    _UxGT("Tisk")
287
+#define MSG_BUTTON_CANCEL                   _UxGT("Zrušit")
257 288
 #define MSG_PAUSE_PRINT                     _UxGT("Pozastavit tisk")
258 289
 #define MSG_RESUME_PRINT                    _UxGT("Obnovit tisk")
259 290
 #define MSG_STOP_PRINT                      _UxGT("Zastavit tisk")
@@ -277,6 +308,12 @@
277 308
 #define MSG_CONTROL_RETRACT_RECOVERF        _UxGT("UnRet  V")
278 309
 #define MSG_CONTROL_RETRACT_RECOVER_SWAPF   _UxGT("S UnRet V")
279 310
 #define MSG_AUTORETRACT                     _UxGT("AutoRetr.")
311
+#define MSG_FILAMENT_SWAP_LENGTH            _UxGT("Délka retrakce")
312
+#define MSG_TOOL_CHANGE                     _UxGT("Výměna nástroje")
313
+#define MSG_TOOL_CHANGE_ZLIFT               _UxGT("Zdvih Z")
314
+#define MSG_SINGLENOZZLE_PRIME_SPD          _UxGT("Rychlost primár.")
315
+#define MSG_SINGLENOZZLE_RETRACT_SPD        _UxGT("Rychlost retrak.")
316
+#define MSG_NOZZLE_STANDBY                  _UxGT("Tryska standby")
280 317
 #define MSG_FILAMENTCHANGE                  _UxGT("Vyměnit filament")
281 318
 #define MSG_FILAMENTLOAD                    _UxGT("Zavést filament")
282 319
 #define MSG_FILAMENTUNLOAD                  _UxGT("Vysunout filament")
@@ -287,16 +324,22 @@
287 324
 #define MSG_ZPROBE_OUT                      _UxGT("Sonda Z mimo podl")
288 325
 #define MSG_SKEW_FACTOR                     _UxGT("Faktor zkosení")
289 326
 #define MSG_BLTOUCH                         _UxGT("BLTouch")
290
-#define MSG_BLTOUCH_SELFTEST                _UxGT("BLTouch Self-Test")
291
-#define MSG_BLTOUCH_RESET                   _UxGT("BLTouch Reset")
292
-#define MSG_BLTOUCH_DEPLOY                  _UxGT("BLTouch Vysunout")
293
-#define MSG_BLTOUCH_STOW                    _UxGT("BLTouch Zasunout")
327
+#define MSG_BLTOUCH_SELFTEST                _UxGT("BLTouch self-test")
328
+#define MSG_BLTOUCH_RESET                   _UxGT("BLTouch reset")
329
+#define MSG_BLTOUCH_DEPLOY                  _UxGT("BLTouch vysunout")
330
+#define MSG_BLTOUCH_SW_MODE                 _UxGT("SW výsun BLTouch")
331
+#define MSG_BLTOUCH_5V_MODE                 _UxGT("BLTouch 5V režim")
332
+#define MSG_BLTOUCH_OD_MODE                 _UxGT("BLTouch OD režim")
333
+#define MSG_BLTOUCH_STOW                    _UxGT("BLTouch zasunout")
334
+#define MSG_MANUAL_DEPLOY                   _UxGT("Vysunout Z-sondu")
335
+#define MSG_MANUAL_STOW                     _UxGT("Zasunout Z-sondu")
294 336
 #define MSG_HOME                            _UxGT("Domů")  // Used as MSG_HOME " " MSG_X MSG_Y MSG_Z " " MSG_FIRST
295 337
 #define MSG_FIRST                           _UxGT("první")
296 338
 #define MSG_ZPROBE_ZOFFSET                  _UxGT("Z ofset")
297 339
 #define MSG_BABYSTEP_X                      _UxGT("Babystep X")
298 340
 #define MSG_BABYSTEP_Y                      _UxGT("Babystep Y")
299 341
 #define MSG_BABYSTEP_Z                      _UxGT("Babystep Z")
342
+#define MSG_BABYSTEP_TOTAL                  _UxGT("Celkem")
300 343
 #define MSG_ENDSTOP_ABORT                   _UxGT("Endstop abort")
301 344
 #define MSG_HEATING_FAILED_LCD              _UxGT("Chyba zahřívání")
302 345
 #define MSG_HEATING_FAILED_LCD_BED          _UxGT("Chyba zahř.podl.")
@@ -307,6 +350,8 @@
307 350
 #define MSG_ERR_MINTEMP                     _UxGT("NÍZKA TEPLOTA")
308 351
 #define MSG_ERR_MAXTEMP_BED                 _UxGT("VYS. TEPL. PODL.")
309 352
 #define MSG_ERR_MINTEMP_BED                 _UxGT("NÍZ. TEPL. PODL.")
353
+#define MSG_ERR_MAXTEMP_CHAMBER             _UxGT("Err: MAXTEMP KOMORA")
354
+#define MSG_ERR_MINTEMP_CHAMBER             _UxGT("Err: MINTEMP KOMORA")
310 355
 #define MSG_ERR_Z_HOMING                    MSG_HOME _UxGT(" ") MSG_X MSG_Y _UxGT(" ") MSG_FIRST
311 356
 #define MSG_HALTED                          _UxGT("TISK. ZASTAVENA")
312 357
 #define MSG_PLEASE_RESET                    _UxGT("Proveďte reset")
@@ -380,18 +425,82 @@
380 425
 #define MSG_FILAMENT_CHANGE_OPTION_PURGE    _UxGT("Vytlačit víc")
381 426
 #define MSG_FILAMENT_CHANGE_OPTION_RESUME   _UxGT("Obnovit tisk")
382 427
 #define MSG_FILAMENT_CHANGE_NOZZLE          _UxGT("  Tryska: ")
428
+#define MSG_RUNOUT_SENSOR                   _UxGT("Senzor filamentu")
383 429
 #define MSG_ERR_HOMING_FAILED               _UxGT("Parkování selhalo")
384 430
 #define MSG_ERR_PROBING_FAILED              _UxGT("Kalibrace selhala")
385 431
 #define MSG_M600_TOO_COLD                   _UxGT("M600: Moc studený")
386 432
 
433
+#define MSG_MMU2_FILAMENT_CHANGE_HEADER     _UxGT("VÝMĚNA FILAMENTU")
434
+#define MSG_MMU2_CHOOSE_FILAMENT_HEADER     _UxGT("VYBERTE FILAMENT")
435
+#define MSG_MMU2_MENU                       _UxGT("MMU")
436
+#define MSG_MMU2_WRONG_FIRMWARE             _UxGT("Aktual. MMU firmware!")
437
+#define MSG_MMU2_NOT_RESPONDING             _UxGT("MMU potř. pozornost.")
438
+#define MSG_MMU2_RESUME                     _UxGT("Obnovit tisk")
439
+#define MSG_MMU2_RESUMING                   _UxGT("Obnovování...")
440
+#define MSG_MMU2_LOAD_FILAMENT              _UxGT("Zavést filament")
441
+#define MSG_MMU2_LOAD_ALL                   _UxGT("Zavést všechny")
442
+#define MSG_MMU2_LOAD_TO_NOZZLE             _UxGT("Zavést do trysky")
443
+#define MSG_MMU2_EJECT_FILAMENT             _UxGT("Vysunout filament")
444
+#define MSG_MMU2_EJECT_FILAMENT0            _UxGT("Vysun. filament 1")
445
+#define MSG_MMU2_EJECT_FILAMENT1            _UxGT("Vysun. filament 2")
446
+#define MSG_MMU2_EJECT_FILAMENT2            _UxGT("Vysun. filament 3")
447
+#define MSG_MMU2_EJECT_FILAMENT3            _UxGT("Vysun. filament 4")
448
+#define MSG_MMU2_EJECT_FILAMENT4            _UxGT("Vysun. filament 5")
449
+#define MSG_MMU2_UNLOAD_FILAMENT            _UxGT("Vytáhnout filament")
450
+#define MSG_MMU2_LOADING_FILAMENT           _UxGT("Zavádění fil. %i...")
451
+#define MSG_MMU2_EJECTING_FILAMENT          _UxGT("Vytahování fil. ...")
452
+#define MSG_MMU2_UNLOADING_FILAMENT         _UxGT("Vysouvání fil....")
453
+#define MSG_MMU2_ALL                        _UxGT("Všechny")
454
+#define MSG_MMU2_FILAMENT0                  _UxGT("Filament 1")
455
+#define MSG_MMU2_FILAMENT1                  _UxGT("Filament 2")
456
+#define MSG_MMU2_FILAMENT2                  _UxGT("Filament 3")
457
+#define MSG_MMU2_FILAMENT3                  _UxGT("Filament 4")
458
+#define MSG_MMU2_FILAMENT4                  _UxGT("Filament 5")
459
+#define MSG_MMU2_RESET                      _UxGT("Resetovat MMU")
460
+#define MSG_MMU2_RESETTING                  _UxGT("Resetování MMU...")
461
+#define MSG_MMU2_EJECT_RECOVER              _UxGT("Vytáhněte, klikněte")
462
+
463
+#define MSG_MIX                             _UxGT("Mix")
464
+#define MSG_MIX_COMPONENT                   _UxGT("Komponenta")
465
+#define MSG_MIXER                           _UxGT("Mixér")
466
+#define MSG_GRADIENT                        _UxGT("Přechod")
467
+#define MSG_FULL_GRADIENT                   _UxGT("Celý přechod")
468
+#define MSG_TOGGLE_MIX                      _UxGT("Přepnout mix")
469
+#define MSG_CYCLE_MIX                       _UxGT("Střídat mix")
470
+#define MSG_GRADIENT_MIX                    _UxGT("Přechod mix")
471
+#define MSG_REVERSE_GRADIENT                _UxGT("Opačný přechod")
472
+#if LCD_WIDTH >= 20
473
+  #define MSG_ACTIVE_VTOOL                    _UxGT("Aktivní V-nástroj")
474
+  #define MSG_START_VTOOL                     _UxGT("Spustit V-nástroj")
475
+  #define MSG_END_VTOOL                       _UxGT("Ukončit V-nástroj")
476
+  #define MSG_GRADIENT_ALIAS                  _UxGT("Alias V-nástroje")
477
+  #define MSG_RESET_VTOOLS                    _UxGT("Resetovat V-nástroj")
478
+  #define MSG_COMMIT_VTOOL                    _UxGT("Uložit V-nástroj mix")
479
+  #define MSG_VTOOLS_RESET                    _UxGT("V-nástroj resetovat")
480
+#else
481
+  #define MSG_ACTIVE_VTOOL                    _UxGT("Aktivní V-nástr.")
482
+  #define MSG_START_VTOOL                     _UxGT("Spustit V-nástr.")
483
+  #define MSG_END_VTOOL                       _UxGT("Ukončit V-nástr.")
484
+  #define MSG_GRADIENT_ALIAS                  _UxGT("Alias V-nástr.")
485
+  #define MSG_RESET_VTOOLS                    _UxGT("Reset. V-nástr.")
486
+  #define MSG_COMMIT_VTOOL                    _UxGT("Uložit V-nás. mix")
487
+  #define MSG_VTOOLS_RESET                    _UxGT("V-nástr. reset.")
488
+#endif
489
+#define MSG_START_Z                         _UxGT("Počáteční Z")
490
+#define MSG_END_Z                           _UxGT("  Koncové Z")
491
+#define MSG_BRICKOUT                        _UxGT("Brickout")
492
+#define MSG_INVADERS                        _UxGT("Invaders")
493
+#define MSG_SNAKE                           _UxGT("Sn4k3")
494
+#define MSG_MAZE                            _UxGT("Bludiště")
495
+
387 496
 #if LCD_HEIGHT >= 4
388 497
   // Up to 3 lines allowed
498
+  #define MSG_ADVANCED_PAUSE_WAITING_1      _UxGT("Stikněte tlačítko")
499
+  #define MSG_ADVANCED_PAUSE_WAITING_2      _UxGT("pro obnovení tisku")
500
+  #define MSG_PAUSE_PRINT_INIT_1            _UxGT("Parkování...")
389 501
   #define MSG_FILAMENT_CHANGE_INIT_1        _UxGT("Čekejte prosím")
390 502
   #define MSG_FILAMENT_CHANGE_INIT_2        _UxGT("na zahájení")
391 503
   #define MSG_FILAMENT_CHANGE_INIT_3        _UxGT("výměny filamentu")
392
-  #define MSG_FILAMENT_CHANGE_UNLOAD_1      _UxGT("Čekejte prosím")
393
-  #define MSG_FILAMENT_CHANGE_UNLOAD_2      _UxGT("na vysunuti")
394
-  #define MSG_FILAMENT_CHANGE_UNLOAD_3      _UxGT("filamentu")
395 504
   #define MSG_FILAMENT_CHANGE_INSERT_1      _UxGT("Vložte filament")
396 505
   #define MSG_FILAMENT_CHANGE_INSERT_2      _UxGT("a stiskněte")
397 506
   #define MSG_FILAMENT_CHANGE_INSERT_3      _UxGT("tlačítko...")
@@ -399,21 +508,46 @@
399 508
   #define MSG_FILAMENT_CHANGE_HEAT_2        _UxGT("nahřátí trysky")
400 509
   #define MSG_FILAMENT_CHANGE_HEATING_1     _UxGT("Čekejte prosím")
401 510
   #define MSG_FILAMENT_CHANGE_HEATING_2     _UxGT("na nahřátí tr.")
511
+  #define MSG_FILAMENT_CHANGE_UNLOAD_1      _UxGT("Čekejte prosím")
512
+  #define MSG_FILAMENT_CHANGE_UNLOAD_2      _UxGT("na vysunuti")
513
+  #define MSG_FILAMENT_CHANGE_UNLOAD_3      _UxGT("filamentu")
402 514
   #define MSG_FILAMENT_CHANGE_LOAD_1        _UxGT("Čekejte prosím")
403 515
   #define MSG_FILAMENT_CHANGE_LOAD_2        _UxGT("na zavedení")
404 516
   #define MSG_FILAMENT_CHANGE_LOAD_3        _UxGT("filamentu")
405 517
   #define MSG_FILAMENT_CHANGE_PURGE_1       _UxGT("Vyčkejte na")
406 518
   #define MSG_FILAMENT_CHANGE_PURGE_2       _UxGT("vytlačení")
519
+  #define MSG_FILAMENT_CHANGE_CONT_PURGE_1  _UxGT("Klikněte pro")
520
+  #define MSG_FILAMENT_CHANGE_CONT_PURGE_2  _UxGT("ukončení")
521
+  #define MSG_FILAMENT_CHANGE_CONT_PURGE_3  _UxGT("vytlačování")
407 522
   #define MSG_FILAMENT_CHANGE_RESUME_1      _UxGT("Čekejte prosím")
408 523
   #define MSG_FILAMENT_CHANGE_RESUME_2      _UxGT("na pokračování")
409 524
   #define MSG_FILAMENT_CHANGE_RESUME_3      _UxGT("tisku")
410 525
 #else // LCD_HEIGHT < 4
411 526
   // Up to 2 lines allowed
527
+  #define MSG_ADVANCED_PAUSE_WAITING_1      _UxGT("Stikněte tlač.")
528
+  #define MSG_ADVANCED_PAUSE_WAITING_2      _UxGT("pro obnovení")
529
+  #define MSG_PAUSE_PRINT_INIT_1            _UxGT("Parkování...")
412 530
   #define MSG_FILAMENT_CHANGE_INIT_1        _UxGT("Čekejte...")
413
-  #define MSG_FILAMENT_CHANGE_UNLOAD_1      _UxGT("Vysouvání...")
414 531
   #define MSG_FILAMENT_CHANGE_INSERT_1      _UxGT("Vložte, klikněte")
532
+  #define MSG_FILAMENT_CHANGE_HEAT_1        _UxGT("Klikněte pro")
533
+  #define MSG_FILAMENT_CHANGE_HEAT_2        _UxGT("nahřátí")
415 534
   #define MSG_FILAMENT_CHANGE_HEATING_1     _UxGT("Nahřívání...")
535
+  #define MSG_FILAMENT_CHANGE_UNLOAD_1      _UxGT("Vysouvání...")
416 536
   #define MSG_FILAMENT_CHANGE_LOAD_1        _UxGT("Zavádění...")
417 537
   #define MSG_FILAMENT_CHANGE_PURGE_1       _UxGT("Vytlačování...")
538
+  #define MSG_FILAMENT_CHANGE_CONT_PURGE_1  _UxGT("Klikněte pro")
539
+  #define MSG_FILAMENT_CHANGE_CONT_PURGE_2  _UxGT("ukončení")
418 540
   #define MSG_FILAMENT_CHANGE_RESUME_1      _UxGT("Pokračování...")
419 541
 #endif // LCD_HEIGHT < 4
542
+
543
+#define MSG_TMC_DRIVERS                     _UxGT("TMC budiče")
544
+#define MSG_TMC_CURRENT                     _UxGT("Proud budičů")
545
+#define MSG_TMC_HYBRID_THRS                 _UxGT("Hybridní práh")
546
+#define MSG_TMC_HOMING_THRS                 _UxGT("Domů bez senzorů")
547
+#define MSG_TMC_STEPPING_MODE               _UxGT("Režim kroků")
548
+#define MSG_TMC_STEALTH_ENABLED             _UxGT("StealthChop povolen")
549
+#define MSG_SERVICE_RESET                   _UxGT("Reset")
550
+#define MSG_SERVICE_IN                      _UxGT(" za:")
551
+#define MSG_BACKLASH                        _UxGT("Vůle")
552
+#define MSG_BACKLASH_CORRECTION             _UxGT("Korekce")
553
+#define MSG_BACKLASH_SMOOTHING              _UxGT("Vyhlazení")

+ 3
- 0
Marlin/src/lcd/language/language_en.h View File

@@ -1362,6 +1362,9 @@
1362 1362
   #ifndef MSG_ADVANCED_PAUSE_WAITING_1
1363 1363
     #define MSG_ADVANCED_PAUSE_WAITING_1      _UxGT("Click to continue")
1364 1364
   #endif
1365
+  #ifndef MSG_PAUSE_PRINT_INIT_1
1366
+    #define MSG_PAUSE_PRINT_INIT_1            _UxGT("Parking...")
1367
+  #endif
1365 1368
   #ifndef MSG_FILAMENT_CHANGE_INIT_1
1366 1369
     #define MSG_FILAMENT_CHANGE_INIT_1        _UxGT("Please wait...")
1367 1370
   #endif

+ 14
- 0
Marlin/src/lcd/language/language_sk.h View File

@@ -40,6 +40,8 @@
40 40
 #define THIS_LANGUAGES_SPECIAL_SYMBOLS      _UxGT("äÄáÁčČďĎéÉíÍĺĹľĽňŇóÓôÔŕŔšŠťŤúÚýÝžŽ³")
41 41
 
42 42
 #define WELCOME_MSG                         MACHINE_NAME _UxGT(" pripravená.")
43
+#define MSG_YES                             _UxGT("ÁNO")
44
+#define MSG_NO                              _UxGT("NIE")
43 45
 #define MSG_BACK                            _UxGT("Naspäť")
44 46
 #define MSG_SD_INSERTED                     _UxGT("Karta vložená")
45 47
 #define MSG_SD_REMOVED                      _UxGT("Karta vybraná")
@@ -104,6 +106,7 @@
104 106
 #define MSG_UBL_TOOLS                       _UxGT("Nástroje UBL")
105 107
 #define MSG_UBL_LEVEL_BED                   _UxGT("UBL rovnanie")
106 108
 #define MSG_IDEX_MENU                       _UxGT("IDEX režim")
109
+#define MSG_OFFSETS_MENU                    _UxGT("Offset nástrojov")
107 110
 #define MSG_IDEX_MODE_AUTOPARK              _UxGT("Auto-parkovanie")
108 111
 #define MSG_IDEX_MODE_DUPLICATE             _UxGT("Duplikácia")
109 112
 #define MSG_IDEX_MODE_MIRRORED_COPY         _UxGT("Zrkadlená kópia")
@@ -276,6 +279,9 @@
276 279
 #define MSG_WATCH                           _UxGT("Info. obrazovka")
277 280
 #define MSG_PREPARE                         _UxGT("Príprava tlače")
278 281
 #define MSG_TUNE                            _UxGT("Doladenie tlače")
282
+#define MSG_START_PRINT                     _UxGT("Spustiť tlač")
283
+#define MSG_BUTTON_PRINT                    _UxGT("Tlačiť")
284
+#define MSG_BUTTON_CANCEL                   _UxGT("Zrušiť")
279 285
 #define MSG_PAUSE_PRINT                     _UxGT("Pozastaviť tlač")
280 286
 #define MSG_RESUME_PRINT                    _UxGT("Obnoviť tlač")
281 287
 #define MSG_STOP_PRINT                      _UxGT("Zastaviť tlač")
@@ -330,6 +336,7 @@
330 336
 #define MSG_BABYSTEP_X                      _UxGT("Babystep X")
331 337
 #define MSG_BABYSTEP_Y                      _UxGT("Babystep Y")
332 338
 #define MSG_BABYSTEP_Z                      _UxGT("Babystep Z")
339
+#define MSG_BABYSTEP_TOTAL                  _UxGT("Celkom")
333 340
 #define MSG_ENDSTOP_ABORT                   _UxGT("Zastavenie Endstop")
334 341
 #define MSG_HEATING_FAILED_LCD              _UxGT("Chyba ohrevu")
335 342
 #define MSG_HEATING_FAILED_LCD_BED          _UxGT("Chyba ohrevu podl.")
@@ -461,6 +468,10 @@
461 468
 #define MSG_VTOOLS_RESET                    _UxGT("V-tools resetované")
462 469
 #define MSG_START_Z                         _UxGT("Počiat.Z")
463 470
 #define MSG_END_Z                           _UxGT("Konečn.Z")
471
+#define MSG_BRICKOUT                        _UxGT("Brickout")
472
+#define MSG_INVADERS                        _UxGT("Nájazdníci")
473
+#define MSG_SNAKE                           _UxGT("Had")
474
+#define MSG_MAZE                            _UxGT("Bludisko")
464 475
 
465 476
 //
466 477
 // Filament Change screens show up to 3 lines on a 4-line display
@@ -515,3 +526,6 @@
515 526
 
516 527
 #define MSG_SERVICE_RESET                   _UxGT("Vynulovať")
517 528
 #define MSG_SERVICE_IN                      _UxGT(" za:")
529
+#define MSG_BACKLASH                        _UxGT("Kompenz. vôle")
530
+#define MSG_BACKLASH_CORRECTION             _UxGT("Korekcia")
531
+#define MSG_BACKLASH_SMOOTHING              _UxGT("Vyhladzovanie")

+ 2
- 2
Marlin/src/lcd/menu/menu.cpp View File

@@ -167,9 +167,9 @@ DEFINE_MENU_EDIT_ITEM(float3);      // 123        right-justified
167 167
 DEFINE_MENU_EDIT_ITEM(float52);     // 123.45
168 168
 DEFINE_MENU_EDIT_ITEM(float43);     // 1.234
169 169
 DEFINE_MENU_EDIT_ITEM(float5);      // 12345      right-justified
170
-DEFINE_MENU_EDIT_ITEM(float51);     // +1234.5
170
+DEFINE_MENU_EDIT_ITEM(float51);     // 1234.5     right-justified
171
+DEFINE_MENU_EDIT_ITEM(float51sign); // +1234.5
171 172
 DEFINE_MENU_EDIT_ITEM(float52sign); // +123.45
172
-DEFINE_MENU_EDIT_ITEM(float62);     // 1234.56    right-justified
173 173
 DEFINE_MENU_EDIT_ITEM(long5);       // 12345      right-justified
174 174
 
175 175
 void MenuItem_bool::action_edit(PGM_P pstr, bool *ptr, screenFunc_t callback) {

+ 11
- 7
Marlin/src/lcd/menu/menu.h View File

@@ -24,6 +24,8 @@
24 24
 #include "../ultralcd.h"
25 25
 #include "../../inc/MarlinConfig.h"
26 26
 
27
+#include "limits.h"
28
+
27 29
 extern int8_t encoderLine, encoderTopLine, screen_items;
28 30
 extern bool screen_changed;
29 31
 
@@ -54,9 +56,9 @@ DECLARE_MENU_EDIT_TYPE(float,    float3,      ftostr3,         1     );   // 123
54 56
 DECLARE_MENU_EDIT_TYPE(float,    float52,     ftostr52,      100     );   // 123.45
55 57
 DECLARE_MENU_EDIT_TYPE(float,    float43,     ftostr43sign, 1000     );   // 1.234
56 58
 DECLARE_MENU_EDIT_TYPE(float,    float5,      ftostr5rj,       0.01f );   // 12345      right-justified
57
-DECLARE_MENU_EDIT_TYPE(float,    float51,     ftostr51sign,   10     );   // +1234.5
59
+DECLARE_MENU_EDIT_TYPE(float,    float51,     ftostr51rj,     10     );   // 1234.5     right-justified
60
+DECLARE_MENU_EDIT_TYPE(float,    float51sign, ftostr51sign,   10     );   // +1234.5
58 61
 DECLARE_MENU_EDIT_TYPE(float,    float52sign, ftostr52sign,  100     );   // +123.45
59
-DECLARE_MENU_EDIT_TYPE(float,    float62,     ftostr62rj,    100     );   // 1234.56    right-justified
60 62
 DECLARE_MENU_EDIT_TYPE(uint32_t, long5,       ftostr5rj,       0.01f );   // 12345      right-justified
61 63
 
62 64
 ////////////////////////////////////////////
@@ -119,9 +121,9 @@ DEFINE_DRAW_MENU_ITEM_SETTING_EDIT(float3);           // 123        right-justif
119 121
 DEFINE_DRAW_MENU_ITEM_SETTING_EDIT(float52);          // 123.45
120 122
 DEFINE_DRAW_MENU_ITEM_SETTING_EDIT(float43);          // 1.234
121 123
 DEFINE_DRAW_MENU_ITEM_SETTING_EDIT(float5);           // 12345      right-justified
122
-DEFINE_DRAW_MENU_ITEM_SETTING_EDIT(float51);          // +1234.5
124
+DEFINE_DRAW_MENU_ITEM_SETTING_EDIT(float51);          // 1234.5     right-justified
125
+DEFINE_DRAW_MENU_ITEM_SETTING_EDIT(float51sign);      // +1234.5
123 126
 DEFINE_DRAW_MENU_ITEM_SETTING_EDIT(float52sign);      // +123.45
124
-DEFINE_DRAW_MENU_ITEM_SETTING_EDIT(float62);          // 1234.56    right-justified
125 127
 DEFINE_DRAW_MENU_ITEM_SETTING_EDIT(long5);            // 12345      right-justified
126 128
 
127 129
 #define draw_menu_item_edit_bool(sel, row, pstr, pstr2, data, ...)           DRAW_BOOL_SETTING(sel, row, pstr, data)
@@ -179,8 +181,10 @@ class TMenuItem : MenuItemBase {
179 181
     static char* to_string(const int16_t value)       { return NAME::strfunc(unscale(value)); }
180 182
   public:
181 183
     static void action_edit(PGM_P const pstr, type_t * const ptr, const type_t minValue, const type_t maxValue, const screenFunc_t callback=NULL, const bool live=false) {
182
-      const int16_t minv = scale(minValue);
183
-      init(pstr, ptr, minv, int16_t(scale(maxValue)) - minv, int16_t(scale(*ptr)) - minv, edit, callback, live);
184
+      // Make sure minv and maxv fit within int16_t
185
+      const int16_t minv = MAX(scale(minValue), INT16_MIN),
186
+                    maxv = MIN(scale(maxValue), INT16_MAX);
187
+      init(pstr, ptr, minv, maxv - minv, scale(*ptr) - minv, edit, callback, live);
184 188
     }
185 189
     static void edit() { MenuItemBase::edit(to_string, load); }
186 190
 };
@@ -199,8 +203,8 @@ DECLARE_MENU_EDIT_ITEM(float52);
199 203
 DECLARE_MENU_EDIT_ITEM(float43);
200 204
 DECLARE_MENU_EDIT_ITEM(float5);
201 205
 DECLARE_MENU_EDIT_ITEM(float51);
206
+DECLARE_MENU_EDIT_ITEM(float51sign);
202 207
 DECLARE_MENU_EDIT_ITEM(float52sign);
203
-DECLARE_MENU_EDIT_ITEM(float62);
204 208
 DECLARE_MENU_EDIT_ITEM(long5);
205 209
 
206 210
 class MenuItem_bool {

+ 4
- 4
Marlin/src/lcd/menu/menu_advanced.cpp View File

@@ -571,14 +571,14 @@ void menu_backlash();
571 571
     START_MENU();
572 572
     MENU_BACK(MSG_ADVANCED_SETTINGS);
573 573
 
574
-    #define EDIT_QSTEPS(Q) MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float62, MSG_##Q##STEPS, &planner.settings.axis_steps_per_mm[_AXIS(Q)], 5, 9999, _planner_refresh_positioning)
574
+    #define EDIT_QSTEPS(Q) MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float51, MSG_##Q##STEPS, &planner.settings.axis_steps_per_mm[_AXIS(Q)], 5, 9999, _planner_refresh_positioning)
575 575
     EDIT_QSTEPS(A);
576 576
     EDIT_QSTEPS(B);
577 577
     EDIT_QSTEPS(C);
578 578
 
579 579
     #if ENABLED(DISTINCT_E_FACTORS)
580
-      #define EDIT_ESTEPS(N,E) MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float62, MSG_E##N##STEPS, &planner.settings.axis_steps_per_mm[E_AXIS_N(E)], 5, 9999, _planner_refresh_e##E##_positioning)
581
-      MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float62, MSG_ESTEPS, &planner.settings.axis_steps_per_mm[E_AXIS_N(active_extruder)], 5, 9999, _planner_refresh_positioning);
580
+      #define EDIT_ESTEPS(N,E) MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float51, MSG_E##N##STEPS, &planner.settings.axis_steps_per_mm[E_AXIS_N(E)], 5, 9999, _planner_refresh_e##E##_positioning)
581
+      MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float51, MSG_ESTEPS, &planner.settings.axis_steps_per_mm[E_AXIS_N(active_extruder)], 5, 9999, _planner_refresh_positioning);
582 582
       EDIT_ESTEPS(1,0);
583 583
       EDIT_ESTEPS(2,1);
584 584
       #if E_STEPPERS > 2
@@ -594,7 +594,7 @@ void menu_backlash();
594 594
         #endif // E_STEPPERS > 3
595 595
       #endif // E_STEPPERS > 2
596 596
     #elif E_STEPPERS
597
-      MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float62, MSG_ESTEPS, &planner.settings.axis_steps_per_mm[E_AXIS], 5, 9999, _planner_refresh_positioning);
597
+      MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float51, MSG_ESTEPS, &planner.settings.axis_steps_per_mm[E_AXIS], 5, 9999, _planner_refresh_positioning);
598 598
     #endif
599 599
 
600 600
     END_MENU();

+ 26
- 15
Marlin/src/module/probe.cpp View File

@@ -310,24 +310,35 @@ inline void do_probe_raise(const float z_raise) {
310 310
 
311 311
 FORCE_INLINE void probe_specific_action(const bool deploy) {
312 312
   #if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
313
+    do {
314
+      #if ENABLED(PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED)
315
+        if (deploy == (READ(Z_MIN_PROBE_PIN) == Z_MIN_PROBE_ENDSTOP_INVERTING)) break;
316
+      #endif
313 317
 
314
-    BUZZ(100, 659);
315
-    BUZZ(100, 698);
318
+      BUZZ(100, 659);
319
+      BUZZ(100, 698);
316 320
 
317
-    PGM_P const ds_str = deploy ? PSTR(MSG_MANUAL_DEPLOY) : PSTR(MSG_MANUAL_STOW);
318
-    ui.return_to_status();       // To display the new status message
319
-    ui.set_status_P(ds_str, 99);
320
-    serialprintPGM(ds_str);
321
-    SERIAL_EOL();
321
+      PGM_P const ds_str = deploy ? PSTR(MSG_MANUAL_DEPLOY) : PSTR(MSG_MANUAL_STOW);
322
+      ui.return_to_status();       // To display the new status message
323
+      ui.set_status_P(ds_str, 99);
324
+      serialprintPGM(ds_str);
325
+      SERIAL_EOL();
322 326
 
323
-    KEEPALIVE_STATE(PAUSED_FOR_USER);
324
-    wait_for_user = true;
325
-    #if ENABLED(HOST_PROMPT_SUPPORT)
326
-      host_prompt_do(PROMPT_USER_CONTINUE, PSTR("Stow Probe"), PSTR("Continue"));
327
-    #endif
328
-    while (wait_for_user) idle();
329
-    ui.reset_status();
330
-    KEEPALIVE_STATE(IN_HANDLER);
327
+      KEEPALIVE_STATE(PAUSED_FOR_USER);
328
+      wait_for_user = true;
329
+      #if ENABLED(HOST_PROMPT_SUPPORT)
330
+        host_prompt_do(PROMPT_USER_CONTINUE, PSTR("Stow Probe"), PSTR("Continue"));
331
+      #endif
332
+      while (wait_for_user) idle();
333
+      ui.reset_status();
334
+      KEEPALIVE_STATE(IN_HANDLER);
335
+    } while(
336
+      #if ENABLED(PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED)
337
+        true
338
+      #else
339
+        false
340
+      #endif
341
+    );
331 342
 
332 343
   #endif // PAUSE_BEFORE_DEPLOY_STOW
333 344
 

+ 2
- 0
Marlin/src/pins/pins.h View File

@@ -316,6 +316,8 @@
316 316
   #include "pins_RAMPS_RE_ARM.h"        // LPC1768                                    env:LPC1768
317 317
 #elif MB(MKS_SBASE)
318 318
   #include "pins_MKS_SBASE.h"           // LPC1768                                    env:LPC1768
319
+#elif MB(MKS_SGEN)
320
+  #include "pins_MKS_SGEN.h"            // LPC1769                                    env:LPC1769
319 321
 #elif MB(AZSMZ_MINI)
320 322
   #include "pins_AZSMZ_MINI.h"          // LPC1768                                    env:LPC1768
321 323
 #elif MB(AZTEEG_X5_GT)

+ 3
- 7
Marlin/src/pins/pins_AZTEEG_X5_MINI.h View File

@@ -185,13 +185,9 @@
185 185
 //
186 186
 // SD Support
187 187
 //
188
-//#define USB_SD_DISABLED     // Disable host access to SD card as mass storage device through USB
189
-//#define USB_SD_ONBOARD      // Enable host access to SD card as mass storage device through USB
190
-
191
-//#define LPC_SD_LCD          // Marlin uses the SD drive attached to the LCD
192
-#define LPC_SD_ONBOARD        // Marlin uses the SD drive on the control board.  There is no SD detect pin
193
-                              // for the onboard card.  Init card from LCD menu or send M21 whenever printer
194
-                              // is powered on to enable SD access.
188
+#if !ANY(LPC_SD_LCD, LPC_SD_ONBOARD, LPC_SD_CUSTOM_CABLE)
189
+  #define LPC_SD_ONBOARD
190
+#endif
195 191
 
196 192
 #if ENABLED(LPC_SD_LCD)
197 193
 

+ 13
- 4
Marlin/src/pins/pins_BIGTREE_SKR_V1.3.h View File

@@ -208,15 +208,24 @@
208 208
       #define LCD_PINS_D7   P1_23
209 209
     #endif
210 210
 
211
+    #if ENABLED(MKS_MINI_12864)
212
+      #define DOGLCD_CS     P1_21
213
+      #define DOGLCD_A0     P1_22
214
+    #endif
215
+
211 216
   #endif
212 217
 
213 218
 #endif // ULTRA_LCD
214 219
 
215
-//#define USB_SD_DISABLED
216
-#define USB_SD_ONBOARD        // Provide the onboard SD card to the host as a USB mass storage device
220
+//
221
+// SD Support
222
+//
217 223
 
218
-#define LPC_SD_LCD            // Marlin uses the SD drive attached to the LCD
219
-//#define LPC_SD_ONBOARD        // Marlin uses the SD drive on the control board
224
+#if !ANY(LPC_SD_LCD, LPC_SD_ONBOARD, LPC_SD_CUSTOM_CABLE)
225
+  #undef USB_SD_DISABLED
226
+  #define USB_SD_ONBOARD
227
+  #define LPC_SD_LCD
228
+#endif
220 229
 
221 230
 #if ENABLED(LPC_SD_LCD)
222 231
 

+ 18
- 7
Marlin/src/pins/pins_BIQU_SKR_V1.1.h View File

@@ -105,18 +105,29 @@
105 105
   #define LCD_PINS_RS      P0_16
106 106
   #define LCD_PINS_ENABLE  P0_18
107 107
   #define LCD_PINS_D4      P0_15
108
+
109
+  #if ENABLED(MKS_MINI_12864)
110
+    #define DOGLCD_CS      P2_06
111
+    #define DOGLCD_A0      P0_16
112
+  #endif
108 113
 #endif
109 114
 
110 115
 //
111 116
 // SD Support
112 117
 //
113
-//#define USB_SD_DISABLED     // Disable host access to SD card as mass storage device through USB
114
-#define USB_SD_ONBOARD        // Enable host access to SD card as mass storage device through USB
115
-
116
-//#define LPC_SD_LCD          // Marlin uses the SD drive attached to the LCD
117
-#define LPC_SD_ONBOARD        // Marlin uses the SD drive on the control board.  There is no SD detect pin
118
-                              // for the onboard card.  Init card from LCD menu or send M21 whenever printer
119
-                              // is powered on to enable SD access.
118
+// MKS_MINI_12864 strongly prefers the SD card on the display and
119
+// requires jumpers on the SKR V1.1 board as documented here:
120
+// https://www.facebook.com/groups/505736576548648/permalink/630639874058317/
121
+#if !ANY(LPC_SD_LCD, LPC_SD_ONBOARD, LPC_SD_CUSTOM_CABLE)
122
+  #if ENABLED(MKS_MINI_12864)
123
+    #define LPC_SD_LCD
124
+    #undef USB_SD_DISABLED
125
+    #define USB_SD_ONBOARD
126
+  #else
127
+    #define USB_SD_ONBOARD
128
+    #define LPC_SD_ONBOARD
129
+  #endif
130
+#endif
120 131
 
121 132
 #if ENABLED(LPC_SD_LCD)
122 133
 

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

@@ -143,7 +143,7 @@
143 143
   #define LED_PIN          13
144 144
 #endif
145 145
 
146
-#define SPINDLE_LASER_PWM_PIN     7   // MUST BE HARDWARE PWM
146
+#define SPINDLE_LASER_PWM_PIN    -1   // MUST BE HARDWARE PWM
147 147
 #define SPINDLE_LASER_ENA_PIN     4   // Pin should have a pullup!
148 148
 
149 149
 // Use the RAMPS 1.4 Analog input 5 on the AUX2 connector

+ 47
- 20
Marlin/src/pins/pins_MKS_SBASE.h View File

@@ -28,8 +28,12 @@
28 28
   #error "Oops! Make sure you have the LPC1768 environment selected in your IDE."
29 29
 #endif
30 30
 
31
-#define BOARD_NAME        "MKS SBASE"
32
-#define BOARD_WEBSITE_URL "https://github.com/makerbase-mks/MKS-SBASE"
31
+#ifndef BOARD_NAME
32
+  #define BOARD_NAME        "MKS SBASE"
33
+#endif
34
+#ifndef BOARD_WEBSITE_URL
35
+  #define BOARD_WEBSITE_URL "https://github.com/makerbase-mks/MKS-SBASE"
36
+#endif
33 37
 
34 38
 #define LED_PIN            P1_18   // Used as a status indicator
35 39
 #define LED2_PIN           P1_19
@@ -154,23 +158,11 @@
154 158
 #define ENET_TXD0          P1_00   // J12-11
155 159
 #define ENET_TXD1          P1_01   // J12-12
156 160
 
157
-/**
158
- * The SBase can share the on-board SD card with a PC via USB the following
159
- * definitions control this feature:
160
- */
161
-//#define USB_SD_DISABLED
162
-#define USB_SD_ONBOARD        // Provide the onboard SD card to the host as a USB mass storage device
163
-
164
-/**
165
- * There are a number of configurations available for the SBase SD card reader.
166
- * - A custom cable can be used to allow access to the LCD based SD card.
167
- * - A standard cable can be used for access to the LCD SD card (but no SD detect).
168
- * - The onboard SD card can be used and optionally shared with a PC via USB.
169
- */
170
-
171
-//#define LPC_SD_CUSTOM_CABLE // Use a custom cable to access the SD
172
-//#define LPC_SD_LCD          // Marlin uses the SD drive attached to the LCD
173
-#define LPC_SD_ONBOARD        // Marlin uses the SD drive attached to the control board
161
+#if !ANY(LPC_SD_LCD, LPC_SD_ONBOARD, LPC_SD_CUSTOM_CABLE)
162
+  #undef USB_SD_DISABLED
163
+  #define USB_SD_ONBOARD
164
+  #define LPC_SD_ONBOARD
165
+#endif
174 166
 
175 167
 #if ENABLED(LPC_SD_CUSTOM_CABLE)
176 168
 
@@ -249,6 +241,41 @@
249 241
     #define DOGLCD_SCK     SCK_PIN
250 242
     #define DOGLCD_MOSI    MOSI_PIN
251 243
   #endif
244
+
245
+  #if ENABLED(FYSETC_MINI_12864)
246
+    /**
247
+     * The Fysetc display can NOT use the SCK and MOSI pins on EXP2, so a
248
+     * special cable is needed to go between EXP2 on the FYSETC and the
249
+     * controller board's EXP2 and J8. It also means that a software SPI
250
+     * is needed to drive those pins.
251
+     *
252
+     * The Fysetc requires mode 3 SPI interface.
253
+     *
254
+     * Pins 6, 7 & 8 on EXP2 are no connects. That means a second special
255
+     * cable will be needed if the RGB LEDs are to be active.
256
+     */
257
+    #define DOGLCD_CS      LCD_PINS_ENABLE // EXP1.3  (LCD_EN on Fysetc schematic)
258
+    #define DOGLCD_A0      LCD_PINS_RS     // EXP1.4  (LCD_A0 on Fysetc schematic)
259
+    #define DOGLCD_SCK     P2_11           // J8-5  (SCK on Fysetc schematic)
260
+    #define DOGLCD_MOSI    P4_28           // J8-6  (MOSI on Fysetc schematic)
261
+
262
+    #define RGB_LED
263
+    //#define RGBW_LED
264
+    #if EITHER(RGB_LED, RGBW_LED)
265
+      #define RGB_LED_R_PIN P2_12          // J8-4  (LCD_D6 on Fysetc schematic)
266
+      #define RGB_LED_G_PIN P1_23          // J8-3  (LCD_D5 on Fysetc schematic)
267
+      #define RGB_LED_B_PIN P1_22          // J8-2  (LCD_D7 on Fysetc schematic)
268
+      //#define RGB_LED_W_PIN -1
269
+    #endif
270
+
271
+  #elif ENABLED(MINIPANEL)
272
+    // GLCD features
273
+    // Uncomment screen orientation
274
+    //#define LCD_SCREEN_ROT_90
275
+    //#define LCD_SCREEN_ROT_180
276
+    //#define LCD_SCREEN_ROT_270
277
+  #endif
278
+
252 279
 #endif
253 280
 
254 281
 /**
@@ -281,7 +308,7 @@
281 308
  #endif
282 309
 #endif
283 310
 
284
-#if HAS_DRIVER(TMC2208)
311
+#if MB(MKS_SBASE) && HAS_DRIVER(TMC2208)
285 312
   // The shortage of pins becomes apparent.
286 313
   // Worst case you may have to give up the LCD
287 314
   // RX pins need to be interrupt capable

+ 60
- 0
Marlin/src/pins/pins_MKS_SGEN.h View File

@@ -0,0 +1,60 @@
1
+/**
2
+ * Marlin 3D Printer Firmware
3
+ * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
4
+ * Copyright (C) 2017 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
5
+ *
6
+ * Based on Sprinter and grbl.
7
+ * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
8
+ *
9
+ * This program is free software: you can redistribute it and/or modify
10
+ * it under the terms of the GNU General Public License as published by
11
+ * the Free Software Foundation, either version 3 of the License, or
12
+ * (at your option) any later version.
13
+ *
14
+ * This program is distributed in the hope that it will be useful,
15
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
16
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17
+ * GNU General Public License for more details.
18
+ *
19
+ * You should have received a copy of the GNU General Public License
20
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
21
+ *
22
+ */
23
+
24
+/**
25
+ * MKS SGen pin assignments
26
+ */
27
+
28
+#ifndef LPC1769
29
+  #error "Oops! Make sure you have the LPC1769 environment selected in your IDE."
30
+#endif
31
+
32
+#define BOARD_NAME        "MKS SGEN"
33
+#define BOARD_WEBSITE_URL "https://github.com/makerbase-mks/MKS-SGEN"
34
+
35
+#include "pins_MKS_SBASE.h"
36
+
37
+#undef E1_STEP_PIN
38
+#undef E1_DIR_PIN
39
+#undef E1_ENABLE_PIN
40
+
41
+//#undef BTN_EN1
42
+//#undef BTN_EN2
43
+//#define BTN_EN1        P1_23   // EXP2.5
44
+//#define BTN_EN2        P1_22   // EXP2.3
45
+
46
+#if HAS_DRIVER(TMC2208)
47
+  // The shortage of pins becomes apparent.
48
+  // In the worst case you may have to give up the LCD.
49
+  // RX pins must be interrupt-capable.
50
+  #define X_SERIAL_TX_PIN  P4_29   // J8-2
51
+  #define X_SERIAL_RX_PIN  P4_29   // J8-2
52
+
53
+  #define Y_SERIAL_TX_PIN  P2_08   // J8-3
54
+  #define Y_SERIAL_RX_PIN  P2_08   // J8-3
55
+
56
+  #define Z_SERIAL_TX_PIN  P2_11   // J8-4
57
+  #define Z_SERIAL_RX_PIN  P2_11   // J8-4
58
+  #define E0_SERIAL_TX_PIN P2_13   // J8-5
59
+  #define E0_SERIAL_RX_PIN P2_13   // J8-5
60
+#endif

+ 4
- 1
Marlin/src/pins/pins_RAMPS_FD_V1.h View File

@@ -156,7 +156,10 @@
156 156
     #define LCD_PINS_D7    29
157 157
   #endif
158 158
 
159
-  #if ENABLED(MINIPANEL)
159
+  #if ENABLED(FYSETC_MINI_12864)
160
+    #define DOGLCD_CS      LCD_PINS_ENABLE
161
+    #define DOGLCD_A0      LCD_PINS_RS
162
+  #elif ENABLED(MINIPANEL)
160 163
     #define DOGLCD_CS      25
161 164
     #define DOGLCD_A0      27
162 165
   #endif

+ 35
- 25
Marlin/src/pins/pins_RAMPS_RE_ARM.h View File

@@ -269,11 +269,21 @@
269 269
 
270 270
 #elif ENABLED(ULTRA_LCD)
271 271
 
272
-  #define BEEPER_PIN       P1_30   // (37) not 5V tolerant
272
+  //#define SCK_PIN        P0_15   // (52)  system defined J3-9 & AUX-3
273
+  //#define MISO_PIN       P0_17   // (50)  system defined J3-10 & AUX-3
274
+  //#define MOSI_PIN       P0_18   // (51)  system defined J3-10 & AUX-3
275
+  //#define SS_PIN         P1_23   // (53)  system defined J3-5 & AUX-3 (Sometimes called SDSS)
276
+
277
+  #if ENABLED(FYSETC_MINI_12864)
278
+    #define BEEPER_PIN     P1_01
279
+    #define BTN_ENC        P1_04
280
+  #else
281
+    #define BEEPER_PIN     P1_30   // (37) not 5V tolerant
282
+    #define BTN_ENC        P2_11   // (35) J3-3 & AUX-4
283
+  #endif
273 284
 
274 285
   #define BTN_EN1          P3_26   // (31) J3-2 & AUX-4
275 286
   #define BTN_EN2          P3_25   // (33) J3-4 & AUX-4
276
-  #define BTN_ENC          P2_11   // (35) J3-3 & AUX-4
277 287
 
278 288
   #define SD_DETECT_PIN    P1_31   // (49) J3-1 & AUX-3 (NOT 5V tolerant)
279 289
   #define KILL_PIN         P1_22   // (41) J5-4 & AUX-4
@@ -296,13 +306,6 @@
296 306
   #if ANY(VIKI2, miniVIKI)
297 307
     // #define LCD_SCREEN_ROT_180
298 308
 
299
-    #define BTN_EN1        P3_26   // (31) J3-2 & AUX-4
300
-    #define BTN_EN2        P3_25   // (33) J3-4 & AUX-4
301
-    #define BTN_ENC        P2_11   // (35) J3-3 & AUX-4
302
-
303
-    #define SD_DETECT_PIN  P1_31   // (49) J3-1 & AUX-3 (NOT 5V tolerant)
304
-    #define KILL_PIN       P1_22   // (41) J5-4 & AUX-4
305
-
306 309
     #define DOGLCD_CS      P0_16   // (16)
307 310
     #define DOGLCD_A0      P2_06   // (59) J3-8 & AUX-2
308 311
     #define DOGLCD_SCK     SCK_PIN
@@ -311,8 +314,17 @@
311 314
     #define STAT_LED_BLUE_PIN P0_26 //(63)  may change if cable changes
312 315
     #define STAT_LED_RED_PIN P1_21 // ( 6)  may change if cable changes
313 316
   #else
314
-    #define DOGLCD_CS      P0_26   // (63) J5-3 & AUX-2
315
-    #define DOGLCD_A0      P2_06   // (59) J3-8 & AUX-2
317
+
318
+    #if ENABLED(FYSETC_MINI_12864)
319
+      #define DOGLCD_SCK   P0_15
320
+      #define DOGLCD_MOSI  P0_18
321
+      #define DOGLCD_CS    P1_09  // use Ethernet connector for EXP1 cable signals
322
+      #define DOGLCD_A0    P1_14
323
+    #else
324
+      #define DOGLCD_CS    P0_26   // (63) J5-3 & AUX-2
325
+      #define DOGLCD_A0    P2_06   // (59) J3-8 & AUX-2
326
+    #endif
327
+
316 328
     #define LCD_BACKLIGHT_PIN P0_16 //(16) J3-7 & AUX-4 - only used on DOGLCD controllers
317 329
     #define LCD_PINS_ENABLE P0_18  // (51) (MOSI) J3-10 & AUX-3
318 330
     #define LCD_PINS_D4    P0_15   // (52) (SCK)  J3-9 & AUX-3
@@ -323,11 +335,6 @@
323 335
     #endif
324 336
   #endif
325 337
 
326
-  //#define MISO_PIN         P0_17   // (50)  system defined J3-10 & AUX-3
327
-  //#define MOSI_PIN         P0_18   // (51)  system defined J3-10 & AUX-3
328
-  //#define SCK_PIN          P0_15   // (52)  system defined J3-9 & AUX-3
329
-  //#define SS_PIN           P1_23   // (53)  system defined J3-5 & AUX-3 (Sometimes called SDSS)
330
-
331 338
   #if ENABLED(MINIPANEL)
332 339
     // GLCD features
333 340
     // Uncomment screen orientation
@@ -354,18 +361,21 @@
354 361
 #define ENET_TXD0          P1_00   // (78)  J12-11
355 362
 #define ENET_TXD1          P1_01   // (79)  J12-12
356 363
 
357
-//#define USB_SD_DISABLED
358
-#define USB_SD_ONBOARD        // Provide the onboard SD card to the host as a USB mass storage device
359
-
360
-//#define LPC_SD_LCD          // Marlin uses the SD drive attached to the LCD
361
-#define LPC_SD_ONBOARD        // Marlin uses the SD drive on the control board
364
+//
365
+// SD Support
366
+//
367
+#if !ANY(LPC_SD_LCD, LPC_SD_ONBOARD, LPC_SD_CUSTOM_CABLE)
368
+  #undef USB_SD_DISABLED
369
+  #define USB_SD_ONBOARD
370
+  #define LPC_SD_ONBOARD
371
+#endif
362 372
 
363 373
 #if ENABLED(LPC_SD_LCD)
364 374
 
365
-  #define SCK_PIN          P0_15
366
-  #define MISO_PIN         P0_17
367
-  #define MOSI_PIN         P0_18
368
-  #define SS_PIN           P1_23   // Chip select for SD card used by Marlin
375
+  #define SCK_PIN          P0_15   // (52)  system defined J3-9 & AUX-3
376
+  #define MISO_PIN         P0_17   // (50)  system defined J3-10 & AUX-3
377
+  #define MOSI_PIN         P0_18   // (51)  system defined J3-10 & AUX-3
378
+  #define SS_PIN           P1_23   // (53)  system defined J3-5 & AUX-3 (Sometimes called SDSS) - CS used by Marlin
369 379
   #define ONBOARD_SD_CS    P0_06   // Chip select for "System" SD card
370 380
 
371 381
 #elif ENABLED(LPC_SD_ONBOARD)

+ 1
- 0
Marlin/src/sd/cardreader.cpp View File

@@ -1030,6 +1030,7 @@ void CardReader::printingHasFinished() {
1030 1030
   // be zeroed and written instead of deleted.
1031 1031
   void CardReader::removeJobRecoveryFile() {
1032 1032
     if (jobRecoverFileExists()) {
1033
+      recovery.init();
1033 1034
       removeFile(job_recovery_file_name);
1034 1035
       #if ENABLED(DEBUG_POWER_LOSS_RECOVERY)
1035 1036
         SERIAL_ECHOPGM("Power-loss file delete");

+ 3
- 0
config/default/Configuration.h View File

@@ -927,6 +927,9 @@
927 927
 
928 928
 // Before deploy/stow pause for user confirmation
929 929
 //#define PAUSE_BEFORE_DEPLOY_STOW
930
+#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
931
+  //#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
932
+#endif
930 933
 
931 934
 /**
932 935
  * Enable one or more of the following if probing seems unreliable.

+ 11
- 0
config/default/Configuration_adv.h View File

@@ -907,6 +907,17 @@
907 907
   // Add an optimized binary file transfer mode, initiated with 'M28 B1'
908 908
   //#define BINARY_FILE_TRANSFER
909 909
 
910
+  // LPC-based boards have on-board SD Card options. Override here or defaults apply.
911
+  #ifdef TARGET_LPC1768
912
+    //#define LPC_SD_LCD          // Use the SD drive in the external LCD controller.
913
+    //#define LPC_SD_ONBOARD      // Use the SD drive on the control board. (No SD_DETECT_PIN. M21 to init.)
914
+    //#define LPC_SD_CUSTOM_CABLE // Use a custom cable to access the SD (as defined in a pins file).
915
+    //#define USB_SD_DISABLED     // Disable SD Card access over USB (for security).
916
+    #if ENABLED(LPC_SD_ONBOARD)
917
+      //#define USB_SD_ONBOARD    // Provide the onboard SD card to the host as a USB mass storage device.
918
+    #endif
919
+  #endif
920
+
910 921
 #endif // SDSUPPORT
911 922
 
912 923
 /**

+ 3
- 0
config/examples/3DFabXYZ/Migbot/Configuration.h View File

@@ -933,6 +933,9 @@
933 933
 
934 934
 // Before deploy/stow pause for user confirmation
935 935
 //#define PAUSE_BEFORE_DEPLOY_STOW
936
+#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
937
+  //#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
938
+#endif
936 939
 
937 940
 /**
938 941
  * Enable one or more of the following if probing seems unreliable.

+ 11
- 0
config/examples/3DFabXYZ/Migbot/Configuration_adv.h View File

@@ -907,6 +907,17 @@
907 907
   // Add an optimized binary file transfer mode, initiated with 'M28 B1'
908 908
   //#define BINARY_FILE_TRANSFER
909 909
 
910
+  // LPC-based boards have on-board SD Card options. Override here or defaults apply.
911
+  #ifdef TARGET_LPC1768
912
+    //#define LPC_SD_LCD          // Use the SD drive in the external LCD controller.
913
+    //#define LPC_SD_ONBOARD      // Use the SD drive on the control board. (No SD_DETECT_PIN. M21 to init.)
914
+    //#define LPC_SD_CUSTOM_CABLE // Use a custom cable to access the SD (as defined in a pins file).
915
+    //#define USB_SD_DISABLED     // Disable SD Card access over USB (for security).
916
+    #if ENABLED(LPC_SD_ONBOARD)
917
+      //#define USB_SD_ONBOARD    // Provide the onboard SD card to the host as a USB mass storage device.
918
+    #endif
919
+  #endif
920
+
910 921
 #endif // SDSUPPORT
911 922
 
912 923
 /**

+ 3
- 0
config/examples/AlephObjects/TAZ4/Configuration.h View File

@@ -947,6 +947,9 @@
947 947
 
948 948
 // Before deploy/stow pause for user confirmation
949 949
 //#define PAUSE_BEFORE_DEPLOY_STOW
950
+#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
951
+  //#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
952
+#endif
950 953
 
951 954
 /**
952 955
  * Enable one or more of the following if probing seems unreliable.

+ 11
- 0
config/examples/AlephObjects/TAZ4/Configuration_adv.h View File

@@ -907,6 +907,17 @@
907 907
   // Add an optimized binary file transfer mode, initiated with 'M28 B1'
908 908
   //#define BINARY_FILE_TRANSFER
909 909
 
910
+  // LPC-based boards have on-board SD Card options. Override here or defaults apply.
911
+  #ifdef TARGET_LPC1768
912
+    //#define LPC_SD_LCD          // Use the SD drive in the external LCD controller.
913
+    //#define LPC_SD_ONBOARD      // Use the SD drive on the control board. (No SD_DETECT_PIN. M21 to init.)
914
+    //#define LPC_SD_CUSTOM_CABLE // Use a custom cable to access the SD (as defined in a pins file).
915
+    //#define USB_SD_DISABLED     // Disable SD Card access over USB (for security).
916
+    #if ENABLED(LPC_SD_ONBOARD)
917
+      //#define USB_SD_ONBOARD    // Provide the onboard SD card to the host as a USB mass storage device.
918
+    #endif
919
+  #endif
920
+
910 921
 #endif // SDSUPPORT
911 922
 
912 923
 /**

+ 3
- 0
config/examples/AliExpress/CL-260/Configuration.h View File

@@ -927,6 +927,9 @@
927 927
 
928 928
 // Before deploy/stow pause for user confirmation
929 929
 //#define PAUSE_BEFORE_DEPLOY_STOW
930
+#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
931
+  //#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
932
+#endif
930 933
 
931 934
 /**
932 935
  * Enable one or more of the following if probing seems unreliable.

+ 3
- 0
config/examples/AliExpress/UM2pExt/Configuration.h View File

@@ -938,6 +938,9 @@
938 938
 
939 939
 // Before deploy/stow pause for user confirmation
940 940
 //#define PAUSE_BEFORE_DEPLOY_STOW
941
+#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
942
+  //#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
943
+#endif
941 944
 
942 945
 /**
943 946
  * Enable one or more of the following if probing seems unreliable.

+ 11
- 0
config/examples/AliExpress/UM2pExt/Configuration_adv.h View File

@@ -907,6 +907,17 @@
907 907
   // Add an optimized binary file transfer mode, initiated with 'M28 B1'
908 908
   //#define BINARY_FILE_TRANSFER
909 909
 
910
+  // LPC-based boards have on-board SD Card options. Override here or defaults apply.
911
+  #ifdef TARGET_LPC1768
912
+    //#define LPC_SD_LCD          // Use the SD drive in the external LCD controller.
913
+    //#define LPC_SD_ONBOARD      // Use the SD drive on the control board. (No SD_DETECT_PIN. M21 to init.)
914
+    //#define LPC_SD_CUSTOM_CABLE // Use a custom cable to access the SD (as defined in a pins file).
915
+    //#define USB_SD_DISABLED     // Disable SD Card access over USB (for security).
916
+    #if ENABLED(LPC_SD_ONBOARD)
917
+      //#define USB_SD_ONBOARD    // Provide the onboard SD card to the host as a USB mass storage device.
918
+    #endif
919
+  #endif
920
+
910 921
 #endif // SDSUPPORT
911 922
 
912 923
 /**

+ 3
- 0
config/examples/Anet/A2/Configuration.h View File

@@ -927,6 +927,9 @@
927 927
 
928 928
 // Before deploy/stow pause for user confirmation
929 929
 //#define PAUSE_BEFORE_DEPLOY_STOW
930
+#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
931
+  //#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
932
+#endif
930 933
 
931 934
 /**
932 935
  * Enable one or more of the following if probing seems unreliable.

+ 11
- 0
config/examples/Anet/A2/Configuration_adv.h View File

@@ -907,6 +907,17 @@
907 907
   // Add an optimized binary file transfer mode, initiated with 'M28 B1'
908 908
   //#define BINARY_FILE_TRANSFER
909 909
 
910
+  // LPC-based boards have on-board SD Card options. Override here or defaults apply.
911
+  #ifdef TARGET_LPC1768
912
+    //#define LPC_SD_LCD          // Use the SD drive in the external LCD controller.
913
+    //#define LPC_SD_ONBOARD      // Use the SD drive on the control board. (No SD_DETECT_PIN. M21 to init.)
914
+    //#define LPC_SD_CUSTOM_CABLE // Use a custom cable to access the SD (as defined in a pins file).
915
+    //#define USB_SD_DISABLED     // Disable SD Card access over USB (for security).
916
+    #if ENABLED(LPC_SD_ONBOARD)
917
+      //#define USB_SD_ONBOARD    // Provide the onboard SD card to the host as a USB mass storage device.
918
+    #endif
919
+  #endif
920
+
910 921
 #endif // SDSUPPORT
911 922
 
912 923
 /**

+ 3
- 0
config/examples/Anet/A2plus/Configuration.h View File

@@ -927,6 +927,9 @@
927 927
 
928 928
 // Before deploy/stow pause for user confirmation
929 929
 //#define PAUSE_BEFORE_DEPLOY_STOW
930
+#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
931
+  //#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
932
+#endif
930 933
 
931 934
 /**
932 935
  * Enable one or more of the following if probing seems unreliable.

+ 11
- 0
config/examples/Anet/A2plus/Configuration_adv.h View File

@@ -907,6 +907,17 @@
907 907
   // Add an optimized binary file transfer mode, initiated with 'M28 B1'
908 908
   //#define BINARY_FILE_TRANSFER
909 909
 
910
+  // LPC-based boards have on-board SD Card options. Override here or defaults apply.
911
+  #ifdef TARGET_LPC1768
912
+    //#define LPC_SD_LCD          // Use the SD drive in the external LCD controller.
913
+    //#define LPC_SD_ONBOARD      // Use the SD drive on the control board. (No SD_DETECT_PIN. M21 to init.)
914
+    //#define LPC_SD_CUSTOM_CABLE // Use a custom cable to access the SD (as defined in a pins file).
915
+    //#define USB_SD_DISABLED     // Disable SD Card access over USB (for security).
916
+    #if ENABLED(LPC_SD_ONBOARD)
917
+      //#define USB_SD_ONBOARD    // Provide the onboard SD card to the host as a USB mass storage device.
918
+    #endif
919
+  #endif
920
+
910 921
 #endif // SDSUPPORT
911 922
 
912 923
 /**

+ 3
- 0
config/examples/Anet/A6/Configuration.h View File

@@ -1003,6 +1003,9 @@
1003 1003
 
1004 1004
 // Before deploy/stow pause for user confirmation
1005 1005
 //#define PAUSE_BEFORE_DEPLOY_STOW
1006
+#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
1007
+  //#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
1008
+#endif
1006 1009
 
1007 1010
 /**
1008 1011
  * Enable one or more of the following if probing seems unreliable.

+ 11
- 0
config/examples/Anet/A6/Configuration_adv.h View File

@@ -907,6 +907,17 @@
907 907
   // Add an optimized binary file transfer mode, initiated with 'M28 B1'
908 908
   //#define BINARY_FILE_TRANSFER
909 909
 
910
+  // LPC-based boards have on-board SD Card options. Override here or defaults apply.
911
+  #ifdef TARGET_LPC1768
912
+    //#define LPC_SD_LCD          // Use the SD drive in the external LCD controller.
913
+    //#define LPC_SD_ONBOARD      // Use the SD drive on the control board. (No SD_DETECT_PIN. M21 to init.)
914
+    //#define LPC_SD_CUSTOM_CABLE // Use a custom cable to access the SD (as defined in a pins file).
915
+    //#define USB_SD_DISABLED     // Disable SD Card access over USB (for security).
916
+    #if ENABLED(LPC_SD_ONBOARD)
917
+      //#define USB_SD_ONBOARD    // Provide the onboard SD card to the host as a USB mass storage device.
918
+    #endif
919
+  #endif
920
+
910 921
 #endif // SDSUPPORT
911 922
 
912 923
 /**

+ 3
- 0
config/examples/Anet/A8/Configuration.h View File

@@ -940,6 +940,9 @@
940 940
 
941 941
 // Before deploy/stow pause for user confirmation
942 942
 //#define PAUSE_BEFORE_DEPLOY_STOW
943
+#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
944
+  //#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
945
+#endif
943 946
 
944 947
 /**
945 948
  * Enable one or more of the following if probing seems unreliable.

+ 11
- 0
config/examples/Anet/A8/Configuration_adv.h View File

@@ -907,6 +907,17 @@
907 907
   // Add an optimized binary file transfer mode, initiated with 'M28 B1'
908 908
   //#define BINARY_FILE_TRANSFER
909 909
 
910
+  // LPC-based boards have on-board SD Card options. Override here or defaults apply.
911
+  #ifdef TARGET_LPC1768
912
+    //#define LPC_SD_LCD          // Use the SD drive in the external LCD controller.
913
+    //#define LPC_SD_ONBOARD      // Use the SD drive on the control board. (No SD_DETECT_PIN. M21 to init.)
914
+    //#define LPC_SD_CUSTOM_CABLE // Use a custom cable to access the SD (as defined in a pins file).
915
+    //#define USB_SD_DISABLED     // Disable SD Card access over USB (for security).
916
+    #if ENABLED(LPC_SD_ONBOARD)
917
+      //#define USB_SD_ONBOARD    // Provide the onboard SD card to the host as a USB mass storage device.
918
+    #endif
919
+  #endif
920
+
910 921
 #endif // SDSUPPORT
911 922
 
912 923
 /**

+ 3
- 0
config/examples/AnyCubic/i3/Configuration.h View File

@@ -937,6 +937,9 @@
937 937
 
938 938
 // Before deploy/stow pause for user confirmation
939 939
 //#define PAUSE_BEFORE_DEPLOY_STOW
940
+#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
941
+  //#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
942
+#endif
940 943
 
941 944
 /**
942 945
  * Enable one or more of the following if probing seems unreliable.

+ 11
- 0
config/examples/AnyCubic/i3/Configuration_adv.h View File

@@ -907,6 +907,17 @@
907 907
   // Add an optimized binary file transfer mode, initiated with 'M28 B1'
908 908
   //#define BINARY_FILE_TRANSFER
909 909
 
910
+  // LPC-based boards have on-board SD Card options. Override here or defaults apply.
911
+  #ifdef TARGET_LPC1768
912
+    //#define LPC_SD_LCD          // Use the SD drive in the external LCD controller.
913
+    //#define LPC_SD_ONBOARD      // Use the SD drive on the control board. (No SD_DETECT_PIN. M21 to init.)
914
+    //#define LPC_SD_CUSTOM_CABLE // Use a custom cable to access the SD (as defined in a pins file).
915
+    //#define USB_SD_DISABLED     // Disable SD Card access over USB (for security).
916
+    #if ENABLED(LPC_SD_ONBOARD)
917
+      //#define USB_SD_ONBOARD    // Provide the onboard SD card to the host as a USB mass storage device.
918
+    #endif
919
+  #endif
920
+
910 921
 #endif // SDSUPPORT
911 922
 
912 923
 /**

+ 3
- 0
config/examples/ArmEd/Configuration.h View File

@@ -928,6 +928,9 @@
928 928
 
929 929
 // Before deploy/stow pause for user confirmation
930 930
 //#define PAUSE_BEFORE_DEPLOY_STOW
931
+#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
932
+  //#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
933
+#endif
931 934
 
932 935
 /**
933 936
  * Enable one or more of the following if probing seems unreliable.

+ 11
- 0
config/examples/ArmEd/Configuration_adv.h View File

@@ -911,6 +911,17 @@
911 911
   // Add an optimized binary file transfer mode, initiated with 'M28 B1'
912 912
   //#define BINARY_FILE_TRANSFER
913 913
 
914
+  // LPC-based boards have on-board SD Card options. Override here or defaults apply.
915
+  #ifdef TARGET_LPC1768
916
+    //#define LPC_SD_LCD          // Use the SD drive in the external LCD controller.
917
+    //#define LPC_SD_ONBOARD      // Use the SD drive on the control board. (No SD_DETECT_PIN. M21 to init.)
918
+    //#define LPC_SD_CUSTOM_CABLE // Use a custom cable to access the SD (as defined in a pins file).
919
+    //#define USB_SD_DISABLED     // Disable SD Card access over USB (for security).
920
+    #if ENABLED(LPC_SD_ONBOARD)
921
+      //#define USB_SD_ONBOARD    // Provide the onboard SD card to the host as a USB mass storage device.
922
+    #endif
923
+  #endif
924
+
914 925
 #endif // SDSUPPORT
915 926
 
916 927
 /**

+ 3
- 0
config/examples/Azteeg/X5GT/Configuration.h View File

@@ -927,6 +927,9 @@
927 927
 
928 928
 // Before deploy/stow pause for user confirmation
929 929
 //#define PAUSE_BEFORE_DEPLOY_STOW
930
+#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
931
+  //#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
932
+#endif
930 933
 
931 934
 /**
932 935
  * Enable one or more of the following if probing seems unreliable.

+ 3
- 0
config/examples/BIBO/TouchX/cyclops/Configuration.h View File

@@ -927,6 +927,9 @@
927 927
 
928 928
 // Before deploy/stow pause for user confirmation
929 929
 //#define PAUSE_BEFORE_DEPLOY_STOW
930
+#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
931
+  //#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
932
+#endif
930 933
 
931 934
 /**
932 935
  * Enable one or more of the following if probing seems unreliable.

+ 11
- 0
config/examples/BIBO/TouchX/cyclops/Configuration_adv.h View File

@@ -907,6 +907,17 @@
907 907
   // Add an optimized binary file transfer mode, initiated with 'M28 B1'
908 908
   //#define BINARY_FILE_TRANSFER
909 909
 
910
+  // LPC-based boards have on-board SD Card options. Override here or defaults apply.
911
+  #ifdef TARGET_LPC1768
912
+    //#define LPC_SD_LCD          // Use the SD drive in the external LCD controller.
913
+    //#define LPC_SD_ONBOARD      // Use the SD drive on the control board. (No SD_DETECT_PIN. M21 to init.)
914
+    //#define LPC_SD_CUSTOM_CABLE // Use a custom cable to access the SD (as defined in a pins file).
915
+    //#define USB_SD_DISABLED     // Disable SD Card access over USB (for security).
916
+    #if ENABLED(LPC_SD_ONBOARD)
917
+      //#define USB_SD_ONBOARD    // Provide the onboard SD card to the host as a USB mass storage device.
918
+    #endif
919
+  #endif
920
+
910 921
 #endif // SDSUPPORT
911 922
 
912 923
 /**

+ 3
- 0
config/examples/BIBO/TouchX/default/Configuration.h View File

@@ -927,6 +927,9 @@
927 927
 
928 928
 // Before deploy/stow pause for user confirmation
929 929
 //#define PAUSE_BEFORE_DEPLOY_STOW
930
+#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
931
+  //#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
932
+#endif
930 933
 
931 934
 /**
932 935
  * Enable one or more of the following if probing seems unreliable.

+ 11
- 0
config/examples/BIBO/TouchX/default/Configuration_adv.h View File

@@ -907,6 +907,17 @@
907 907
   // Add an optimized binary file transfer mode, initiated with 'M28 B1'
908 908
   //#define BINARY_FILE_TRANSFER
909 909
 
910
+  // LPC-based boards have on-board SD Card options. Override here or defaults apply.
911
+  #ifdef TARGET_LPC1768
912
+    //#define LPC_SD_LCD          // Use the SD drive in the external LCD controller.
913
+    //#define LPC_SD_ONBOARD      // Use the SD drive on the control board. (No SD_DETECT_PIN. M21 to init.)
914
+    //#define LPC_SD_CUSTOM_CABLE // Use a custom cable to access the SD (as defined in a pins file).
915
+    //#define USB_SD_DISABLED     // Disable SD Card access over USB (for security).
916
+    #if ENABLED(LPC_SD_ONBOARD)
917
+      //#define USB_SD_ONBOARD    // Provide the onboard SD card to the host as a USB mass storage device.
918
+    #endif
919
+  #endif
920
+
910 921
 #endif // SDSUPPORT
911 922
 
912 923
 /**

+ 3
- 0
config/examples/BQ/Hephestos/Configuration.h View File

@@ -915,6 +915,9 @@
915 915
 
916 916
 // Before deploy/stow pause for user confirmation
917 917
 //#define PAUSE_BEFORE_DEPLOY_STOW
918
+#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
919
+  //#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
920
+#endif
918 921
 
919 922
 /**
920 923
  * Enable one or more of the following if probing seems unreliable.

+ 11
- 0
config/examples/BQ/Hephestos/Configuration_adv.h View File

@@ -904,6 +904,17 @@
904 904
   // Add an optimized binary file transfer mode, initiated with 'M28 B1'
905 905
   //#define BINARY_FILE_TRANSFER
906 906
 
907
+  // LPC-based boards have on-board SD Card options. Override here or defaults apply.
908
+  #ifdef TARGET_LPC1768
909
+    //#define LPC_SD_LCD          // Use the SD drive in the external LCD controller.
910
+    //#define LPC_SD_ONBOARD      // Use the SD drive on the control board. (No SD_DETECT_PIN. M21 to init.)
911
+    //#define LPC_SD_CUSTOM_CABLE // Use a custom cable to access the SD (as defined in a pins file).
912
+    //#define USB_SD_DISABLED     // Disable SD Card access over USB (for security).
913
+    #if ENABLED(LPC_SD_ONBOARD)
914
+      //#define USB_SD_ONBOARD    // Provide the onboard SD card to the host as a USB mass storage device.
915
+    #endif
916
+  #endif
917
+
907 918
 #endif // SDSUPPORT
908 919
 
909 920
 /**

+ 3
- 0
config/examples/BQ/Hephestos_2/Configuration.h View File

@@ -928,6 +928,9 @@
928 928
 
929 929
 // Before deploy/stow pause for user confirmation
930 930
 //#define PAUSE_BEFORE_DEPLOY_STOW
931
+#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
932
+  //#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
933
+#endif
931 934
 
932 935
 /**
933 936
  * Enable one or more of the following if probing seems unreliable.

+ 11
- 0
config/examples/BQ/Hephestos_2/Configuration_adv.h View File

@@ -912,6 +912,17 @@
912 912
   // Add an optimized binary file transfer mode, initiated with 'M28 B1'
913 913
   //#define BINARY_FILE_TRANSFER
914 914
 
915
+  // LPC-based boards have on-board SD Card options. Override here or defaults apply.
916
+  #ifdef TARGET_LPC1768
917
+    //#define LPC_SD_LCD          // Use the SD drive in the external LCD controller.
918
+    //#define LPC_SD_ONBOARD      // Use the SD drive on the control board. (No SD_DETECT_PIN. M21 to init.)
919
+    //#define LPC_SD_CUSTOM_CABLE // Use a custom cable to access the SD (as defined in a pins file).
920
+    //#define USB_SD_DISABLED     // Disable SD Card access over USB (for security).
921
+    #if ENABLED(LPC_SD_ONBOARD)
922
+      //#define USB_SD_ONBOARD    // Provide the onboard SD card to the host as a USB mass storage device.
923
+    #endif
924
+  #endif
925
+
915 926
 #endif // SDSUPPORT
916 927
 
917 928
 /**

+ 3
- 0
config/examples/BQ/WITBOX/Configuration.h View File

@@ -915,6 +915,9 @@
915 915
 
916 916
 // Before deploy/stow pause for user confirmation
917 917
 //#define PAUSE_BEFORE_DEPLOY_STOW
918
+#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
919
+  //#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
920
+#endif
918 921
 
919 922
 /**
920 923
  * Enable one or more of the following if probing seems unreliable.

+ 11
- 0
config/examples/BQ/WITBOX/Configuration_adv.h View File

@@ -904,6 +904,17 @@
904 904
   // Add an optimized binary file transfer mode, initiated with 'M28 B1'
905 905
   //#define BINARY_FILE_TRANSFER
906 906
 
907
+  // LPC-based boards have on-board SD Card options. Override here or defaults apply.
908
+  #ifdef TARGET_LPC1768
909
+    //#define LPC_SD_LCD          // Use the SD drive in the external LCD controller.
910
+    //#define LPC_SD_ONBOARD      // Use the SD drive on the control board. (No SD_DETECT_PIN. M21 to init.)
911
+    //#define LPC_SD_CUSTOM_CABLE // Use a custom cable to access the SD (as defined in a pins file).
912
+    //#define USB_SD_DISABLED     // Disable SD Card access over USB (for security).
913
+    #if ENABLED(LPC_SD_ONBOARD)
914
+      //#define USB_SD_ONBOARD    // Provide the onboard SD card to the host as a USB mass storage device.
915
+    #endif
916
+  #endif
917
+
907 918
 #endif // SDSUPPORT
908 919
 
909 920
 /**

+ 3
- 0
config/examples/Cartesio/Configuration.h View File

@@ -926,6 +926,9 @@
926 926
 
927 927
 // Before deploy/stow pause for user confirmation
928 928
 //#define PAUSE_BEFORE_DEPLOY_STOW
929
+#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
930
+  //#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
931
+#endif
929 932
 
930 933
 /**
931 934
  * Enable one or more of the following if probing seems unreliable.

+ 11
- 0
config/examples/Cartesio/Configuration_adv.h View File

@@ -907,6 +907,17 @@
907 907
   // Add an optimized binary file transfer mode, initiated with 'M28 B1'
908 908
   //#define BINARY_FILE_TRANSFER
909 909
 
910
+  // LPC-based boards have on-board SD Card options. Override here or defaults apply.
911
+  #ifdef TARGET_LPC1768
912
+    //#define LPC_SD_LCD          // Use the SD drive in the external LCD controller.
913
+    //#define LPC_SD_ONBOARD      // Use the SD drive on the control board. (No SD_DETECT_PIN. M21 to init.)
914
+    //#define LPC_SD_CUSTOM_CABLE // Use a custom cable to access the SD (as defined in a pins file).
915
+    //#define USB_SD_DISABLED     // Disable SD Card access over USB (for security).
916
+    #if ENABLED(LPC_SD_ONBOARD)
917
+      //#define USB_SD_ONBOARD    // Provide the onboard SD card to the host as a USB mass storage device.
918
+    #endif
919
+  #endif
920
+
910 921
 #endif // SDSUPPORT
911 922
 
912 923
 /**

+ 3
- 0
config/examples/Creality/CR-10/Configuration.h View File

@@ -937,6 +937,9 @@
937 937
 
938 938
 // Before deploy/stow pause for user confirmation
939 939
 //#define PAUSE_BEFORE_DEPLOY_STOW
940
+#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
941
+  //#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
942
+#endif
940 943
 
941 944
 /**
942 945
  * Enable one or more of the following if probing seems unreliable.

+ 11
- 0
config/examples/Creality/CR-10/Configuration_adv.h View File

@@ -907,6 +907,17 @@
907 907
   // Add an optimized binary file transfer mode, initiated with 'M28 B1'
908 908
   //#define BINARY_FILE_TRANSFER
909 909
 
910
+  // LPC-based boards have on-board SD Card options. Override here or defaults apply.
911
+  #ifdef TARGET_LPC1768
912
+    //#define LPC_SD_LCD          // Use the SD drive in the external LCD controller.
913
+    //#define LPC_SD_ONBOARD      // Use the SD drive on the control board. (No SD_DETECT_PIN. M21 to init.)
914
+    //#define LPC_SD_CUSTOM_CABLE // Use a custom cable to access the SD (as defined in a pins file).
915
+    //#define USB_SD_DISABLED     // Disable SD Card access over USB (for security).
916
+    #if ENABLED(LPC_SD_ONBOARD)
917
+      //#define USB_SD_ONBOARD    // Provide the onboard SD card to the host as a USB mass storage device.
918
+    #endif
919
+  #endif
920
+
910 921
 #endif // SDSUPPORT
911 922
 
912 923
 /**

+ 3
- 0
config/examples/Creality/CR-10S/Configuration.h View File

@@ -927,6 +927,9 @@
927 927
 
928 928
 // Before deploy/stow pause for user confirmation
929 929
 //#define PAUSE_BEFORE_DEPLOY_STOW
930
+#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
931
+  //#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
932
+#endif
930 933
 
931 934
 /**
932 935
  * Enable one or more of the following if probing seems unreliable.

+ 11
- 0
config/examples/Creality/CR-10S/Configuration_adv.h View File

@@ -907,6 +907,17 @@
907 907
   // Add an optimized binary file transfer mode, initiated with 'M28 B1'
908 908
   //#define BINARY_FILE_TRANSFER
909 909
 
910
+  // LPC-based boards have on-board SD Card options. Override here or defaults apply.
911
+  #ifdef TARGET_LPC1768
912
+    //#define LPC_SD_LCD          // Use the SD drive in the external LCD controller.
913
+    //#define LPC_SD_ONBOARD      // Use the SD drive on the control board. (No SD_DETECT_PIN. M21 to init.)
914
+    //#define LPC_SD_CUSTOM_CABLE // Use a custom cable to access the SD (as defined in a pins file).
915
+    //#define USB_SD_DISABLED     // Disable SD Card access over USB (for security).
916
+    #if ENABLED(LPC_SD_ONBOARD)
917
+      //#define USB_SD_ONBOARD    // Provide the onboard SD card to the host as a USB mass storage device.
918
+    #endif
919
+  #endif
920
+
910 921
 #endif // SDSUPPORT
911 922
 
912 923
 /**

+ 3
- 0
config/examples/Creality/CR-10_5S/Configuration.h View File

@@ -928,6 +928,9 @@
928 928
 
929 929
 // Before deploy/stow pause for user confirmation
930 930
 //#define PAUSE_BEFORE_DEPLOY_STOW
931
+#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
932
+  //#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
933
+#endif
931 934
 
932 935
 /**
933 936
  * Enable one or more of the following if probing seems unreliable.

+ 11
- 0
config/examples/Creality/CR-10_5S/Configuration_adv.h View File

@@ -907,6 +907,17 @@
907 907
   // Add an optimized binary file transfer mode, initiated with 'M28 B1'
908 908
   //#define BINARY_FILE_TRANSFER
909 909
 
910
+  // LPC-based boards have on-board SD Card options. Override here or defaults apply.
911
+  #ifdef TARGET_LPC1768
912
+    //#define LPC_SD_LCD          // Use the SD drive in the external LCD controller.
913
+    //#define LPC_SD_ONBOARD      // Use the SD drive on the control board. (No SD_DETECT_PIN. M21 to init.)
914
+    //#define LPC_SD_CUSTOM_CABLE // Use a custom cable to access the SD (as defined in a pins file).
915
+    //#define USB_SD_DISABLED     // Disable SD Card access over USB (for security).
916
+    #if ENABLED(LPC_SD_ONBOARD)
917
+      //#define USB_SD_ONBOARD    // Provide the onboard SD card to the host as a USB mass storage device.
918
+    #endif
919
+  #endif
920
+
910 921
 #endif // SDSUPPORT
911 922
 
912 923
 /**

+ 3
- 0
config/examples/Creality/CR-10mini/Configuration.h View File

@@ -946,6 +946,9 @@
946 946
 
947 947
 // Before deploy/stow pause for user confirmation
948 948
 //#define PAUSE_BEFORE_DEPLOY_STOW
949
+#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
950
+  //#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
951
+#endif
949 952
 
950 953
 /**
951 954
  * Enable one or more of the following if probing seems unreliable.

+ 11
- 0
config/examples/Creality/CR-10mini/Configuration_adv.h View File

@@ -907,6 +907,17 @@
907 907
   // Add an optimized binary file transfer mode, initiated with 'M28 B1'
908 908
   //#define BINARY_FILE_TRANSFER
909 909
 
910
+  // LPC-based boards have on-board SD Card options. Override here or defaults apply.
911
+  #ifdef TARGET_LPC1768
912
+    //#define LPC_SD_LCD          // Use the SD drive in the external LCD controller.
913
+    //#define LPC_SD_ONBOARD      // Use the SD drive on the control board. (No SD_DETECT_PIN. M21 to init.)
914
+    //#define LPC_SD_CUSTOM_CABLE // Use a custom cable to access the SD (as defined in a pins file).
915
+    //#define USB_SD_DISABLED     // Disable SD Card access over USB (for security).
916
+    #if ENABLED(LPC_SD_ONBOARD)
917
+      //#define USB_SD_ONBOARD    // Provide the onboard SD card to the host as a USB mass storage device.
918
+    #endif
919
+  #endif
920
+
910 921
 #endif // SDSUPPORT
911 922
 
912 923
 /**

+ 3
- 0
config/examples/Creality/CR-8/Configuration.h View File

@@ -937,6 +937,9 @@
937 937
 
938 938
 // Before deploy/stow pause for user confirmation
939 939
 //#define PAUSE_BEFORE_DEPLOY_STOW
940
+#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
941
+  //#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
942
+#endif
940 943
 
941 944
 /**
942 945
  * Enable one or more of the following if probing seems unreliable.

+ 11
- 0
config/examples/Creality/CR-8/Configuration_adv.h View File

@@ -907,6 +907,17 @@
907 907
   // Add an optimized binary file transfer mode, initiated with 'M28 B1'
908 908
   //#define BINARY_FILE_TRANSFER
909 909
 
910
+  // LPC-based boards have on-board SD Card options. Override here or defaults apply.
911
+  #ifdef TARGET_LPC1768
912
+    //#define LPC_SD_LCD          // Use the SD drive in the external LCD controller.
913
+    //#define LPC_SD_ONBOARD      // Use the SD drive on the control board. (No SD_DETECT_PIN. M21 to init.)
914
+    //#define LPC_SD_CUSTOM_CABLE // Use a custom cable to access the SD (as defined in a pins file).
915
+    //#define USB_SD_DISABLED     // Disable SD Card access over USB (for security).
916
+    #if ENABLED(LPC_SD_ONBOARD)
917
+      //#define USB_SD_ONBOARD    // Provide the onboard SD card to the host as a USB mass storage device.
918
+    #endif
919
+  #endif
920
+
910 921
 #endif // SDSUPPORT
911 922
 
912 923
 /**

+ 3
- 0
config/examples/Creality/Ender-2/Configuration.h View File

@@ -931,6 +931,9 @@
931 931
 
932 932
 // Before deploy/stow pause for user confirmation
933 933
 //#define PAUSE_BEFORE_DEPLOY_STOW
934
+#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
935
+  //#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
936
+#endif
934 937
 
935 938
 /**
936 939
  * Enable one or more of the following if probing seems unreliable.

+ 11
- 0
config/examples/Creality/Ender-2/Configuration_adv.h View File

@@ -904,6 +904,17 @@
904 904
   // Add an optimized binary file transfer mode, initiated with 'M28 B1'
905 905
   //#define BINARY_FILE_TRANSFER
906 906
 
907
+  // LPC-based boards have on-board SD Card options. Override here or defaults apply.
908
+  #ifdef TARGET_LPC1768
909
+    //#define LPC_SD_LCD          // Use the SD drive in the external LCD controller.
910
+    //#define LPC_SD_ONBOARD      // Use the SD drive on the control board. (No SD_DETECT_PIN. M21 to init.)
911
+    //#define LPC_SD_CUSTOM_CABLE // Use a custom cable to access the SD (as defined in a pins file).
912
+    //#define USB_SD_DISABLED     // Disable SD Card access over USB (for security).
913
+    #if ENABLED(LPC_SD_ONBOARD)
914
+      //#define USB_SD_ONBOARD    // Provide the onboard SD card to the host as a USB mass storage device.
915
+    #endif
916
+  #endif
917
+
907 918
 #endif // SDSUPPORT
908 919
 
909 920
 /**

+ 3
- 0
config/examples/Creality/Ender-3/Configuration.h View File

@@ -931,6 +931,9 @@
931 931
 
932 932
 // Before deploy/stow pause for user confirmation
933 933
 //#define PAUSE_BEFORE_DEPLOY_STOW
934
+#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
935
+  //#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
936
+#endif
934 937
 
935 938
 /**
936 939
  * Enable one or more of the following if probing seems unreliable.

+ 11
- 0
config/examples/Creality/Ender-3/Configuration_adv.h View File

@@ -904,6 +904,17 @@
904 904
   // Add an optimized binary file transfer mode, initiated with 'M28 B1'
905 905
   //#define BINARY_FILE_TRANSFER
906 906
 
907
+  // LPC-based boards have on-board SD Card options. Override here or defaults apply.
908
+  #ifdef TARGET_LPC1768
909
+    //#define LPC_SD_LCD          // Use the SD drive in the external LCD controller.
910
+    //#define LPC_SD_ONBOARD      // Use the SD drive on the control board. (No SD_DETECT_PIN. M21 to init.)
911
+    //#define LPC_SD_CUSTOM_CABLE // Use a custom cable to access the SD (as defined in a pins file).
912
+    //#define USB_SD_DISABLED     // Disable SD Card access over USB (for security).
913
+    #if ENABLED(LPC_SD_ONBOARD)
914
+      //#define USB_SD_ONBOARD    // Provide the onboard SD card to the host as a USB mass storage device.
915
+    #endif
916
+  #endif
917
+
907 918
 #endif // SDSUPPORT
908 919
 
909 920
 /**

+ 3
- 0
config/examples/Creality/Ender-4/Configuration.h View File

@@ -937,6 +937,9 @@
937 937
 
938 938
 // Before deploy/stow pause for user confirmation
939 939
 //#define PAUSE_BEFORE_DEPLOY_STOW
940
+#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
941
+  //#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
942
+#endif
940 943
 
941 944
 /**
942 945
  * Enable one or more of the following if probing seems unreliable.

+ 11
- 0
config/examples/Creality/Ender-4/Configuration_adv.h View File

@@ -907,6 +907,17 @@
907 907
   // Add an optimized binary file transfer mode, initiated with 'M28 B1'
908 908
   //#define BINARY_FILE_TRANSFER
909 909
 
910
+  // LPC-based boards have on-board SD Card options. Override here or defaults apply.
911
+  #ifdef TARGET_LPC1768
912
+    //#define LPC_SD_LCD          // Use the SD drive in the external LCD controller.
913
+    //#define LPC_SD_ONBOARD      // Use the SD drive on the control board. (No SD_DETECT_PIN. M21 to init.)
914
+    //#define LPC_SD_CUSTOM_CABLE // Use a custom cable to access the SD (as defined in a pins file).
915
+    //#define USB_SD_DISABLED     // Disable SD Card access over USB (for security).
916
+    #if ENABLED(LPC_SD_ONBOARD)
917
+      //#define USB_SD_ONBOARD    // Provide the onboard SD card to the host as a USB mass storage device.
918
+    #endif
919
+  #endif
920
+
910 921
 #endif // SDSUPPORT
911 922
 
912 923
 /**

+ 3
- 0
config/examples/Einstart-S/Configuration.h View File

@@ -937,6 +937,9 @@
937 937
 
938 938
 // Before deploy/stow pause for user confirmation
939 939
 //#define PAUSE_BEFORE_DEPLOY_STOW
940
+#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
941
+  //#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
942
+#endif
940 943
 
941 944
 /**
942 945
  * Enable one or more of the following if probing seems unreliable.

+ 11
- 0
config/examples/Einstart-S/Configuration_adv.h View File

@@ -907,6 +907,17 @@
907 907
   // Add an optimized binary file transfer mode, initiated with 'M28 B1'
908 908
   //#define BINARY_FILE_TRANSFER
909 909
 
910
+  // LPC-based boards have on-board SD Card options. Override here or defaults apply.
911
+  #ifdef TARGET_LPC1768
912
+    //#define LPC_SD_LCD          // Use the SD drive in the external LCD controller.
913
+    //#define LPC_SD_ONBOARD      // Use the SD drive on the control board. (No SD_DETECT_PIN. M21 to init.)
914
+    //#define LPC_SD_CUSTOM_CABLE // Use a custom cable to access the SD (as defined in a pins file).
915
+    //#define USB_SD_DISABLED     // Disable SD Card access over USB (for security).
916
+    #if ENABLED(LPC_SD_ONBOARD)
917
+      //#define USB_SD_ONBOARD    // Provide the onboard SD card to the host as a USB mass storage device.
918
+    #endif
919
+  #endif
920
+
910 921
 #endif // SDSUPPORT
911 922
 
912 923
 /**

+ 3
- 0
config/examples/Felix/Configuration.h View File

@@ -909,6 +909,9 @@
909 909
 
910 910
 // Before deploy/stow pause for user confirmation
911 911
 //#define PAUSE_BEFORE_DEPLOY_STOW
912
+#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
913
+  //#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
914
+#endif
912 915
 
913 916
 /**
914 917
  * Enable one or more of the following if probing seems unreliable.

+ 11
- 0
config/examples/Felix/Configuration_adv.h View File

@@ -907,6 +907,17 @@
907 907
   // Add an optimized binary file transfer mode, initiated with 'M28 B1'
908 908
   //#define BINARY_FILE_TRANSFER
909 909
 
910
+  // LPC-based boards have on-board SD Card options. Override here or defaults apply.
911
+  #ifdef TARGET_LPC1768
912
+    //#define LPC_SD_LCD          // Use the SD drive in the external LCD controller.
913
+    //#define LPC_SD_ONBOARD      // Use the SD drive on the control board. (No SD_DETECT_PIN. M21 to init.)
914
+    //#define LPC_SD_CUSTOM_CABLE // Use a custom cable to access the SD (as defined in a pins file).
915
+    //#define USB_SD_DISABLED     // Disable SD Card access over USB (for security).
916
+    #if ENABLED(LPC_SD_ONBOARD)
917
+      //#define USB_SD_ONBOARD    // Provide the onboard SD card to the host as a USB mass storage device.
918
+    #endif
919
+  #endif
920
+
910 921
 #endif // SDSUPPORT
911 922
 
912 923
 /**

+ 3
- 0
config/examples/Felix/DUAL/Configuration.h View File

@@ -909,6 +909,9 @@
909 909
 
910 910
 // Before deploy/stow pause for user confirmation
911 911
 //#define PAUSE_BEFORE_DEPLOY_STOW
912
+#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
913
+  //#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
914
+#endif
912 915
 
913 916
 /**
914 917
  * Enable one or more of the following if probing seems unreliable.

+ 3
- 0
config/examples/FlashForge/CreatorPro/Configuration.h View File

@@ -919,6 +919,9 @@
919 919
 
920 920
 // Before deploy/stow pause for user confirmation
921 921
 //#define PAUSE_BEFORE_DEPLOY_STOW
922
+#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
923
+  //#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
924
+#endif
922 925
 
923 926
 /**
924 927
  * Enable one or more of the following if probing seems unreliable.

+ 11
- 0
config/examples/FlashForge/CreatorPro/Configuration_adv.h View File

@@ -903,6 +903,17 @@
903 903
   // Add an optimized binary file transfer mode, initiated with 'M28 B1'
904 904
   //#define BINARY_FILE_TRANSFER
905 905
 
906
+  // LPC-based boards have on-board SD Card options. Override here or defaults apply.
907
+  #ifdef TARGET_LPC1768
908
+    //#define LPC_SD_LCD          // Use the SD drive in the external LCD controller.
909
+    //#define LPC_SD_ONBOARD      // Use the SD drive on the control board. (No SD_DETECT_PIN. M21 to init.)
910
+    //#define LPC_SD_CUSTOM_CABLE // Use a custom cable to access the SD (as defined in a pins file).
911
+    //#define USB_SD_DISABLED     // Disable SD Card access over USB (for security).
912
+    #if ENABLED(LPC_SD_ONBOARD)
913
+      //#define USB_SD_ONBOARD    // Provide the onboard SD card to the host as a USB mass storage device.
914
+    #endif
915
+  #endif
916
+
906 917
 #endif // SDSUPPORT
907 918
 
908 919
 /**

+ 3
- 0
config/examples/FolgerTech/i3-2020/Configuration.h View File

@@ -933,6 +933,9 @@
933 933
 
934 934
 // Before deploy/stow pause for user confirmation
935 935
 //#define PAUSE_BEFORE_DEPLOY_STOW
936
+#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
937
+  //#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
938
+#endif
936 939
 
937 940
 /**
938 941
  * Enable one or more of the following if probing seems unreliable.

+ 11
- 0
config/examples/FolgerTech/i3-2020/Configuration_adv.h View File

@@ -907,6 +907,17 @@
907 907
   // Add an optimized binary file transfer mode, initiated with 'M28 B1'
908 908
   //#define BINARY_FILE_TRANSFER
909 909
 
910
+  // LPC-based boards have on-board SD Card options. Override here or defaults apply.
911
+  #ifdef TARGET_LPC1768
912
+    //#define LPC_SD_LCD          // Use the SD drive in the external LCD controller.
913
+    //#define LPC_SD_ONBOARD      // Use the SD drive on the control board. (No SD_DETECT_PIN. M21 to init.)
914
+    //#define LPC_SD_CUSTOM_CABLE // Use a custom cable to access the SD (as defined in a pins file).
915
+    //#define USB_SD_DISABLED     // Disable SD Card access over USB (for security).
916
+    #if ENABLED(LPC_SD_ONBOARD)
917
+      //#define USB_SD_ONBOARD    // Provide the onboard SD card to the host as a USB mass storage device.
918
+    #endif
919
+  #endif
920
+
910 921
 #endif // SDSUPPORT
911 922
 
912 923
 /**

+ 0
- 0
config/examples/Formbot/Raptor/Configuration.h View File


Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save