Browse Source

Merge pull request #2989 from AnHardt/fix2661

Pre home display - Stepper release
Scott Lahteine 8 years ago
parent
commit
eb85342fd9
36 changed files with 252 additions and 67 deletions
  1. 3
    1
      Marlin/Configuration.h
  2. 8
    2
      Marlin/Configuration_adv.h
  3. 1
    0
      Marlin/Marlin.h
  4. 10
    6
      Marlin/Marlin_main.cpp
  5. 48
    16
      Marlin/dogm_lcd_implementation.h
  6. 3
    1
      Marlin/example_configurations/Felix/Configuration.h
  7. 3
    1
      Marlin/example_configurations/Felix/Configuration_DUAL.h
  8. 6
    0
      Marlin/example_configurations/Felix/Configuration_adv.h
  9. 3
    1
      Marlin/example_configurations/Hephestos/Configuration.h
  10. 6
    0
      Marlin/example_configurations/Hephestos/Configuration_adv.h
  11. 3
    1
      Marlin/example_configurations/K8200/Configuration.h
  12. 6
    0
      Marlin/example_configurations/K8200/Configuration_adv.h
  13. 3
    1
      Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h
  14. 3
    1
      Marlin/example_configurations/RigidBot/Configuration.h
  15. 6
    0
      Marlin/example_configurations/RigidBot/Configuration_adv.h
  16. 3
    1
      Marlin/example_configurations/SCARA/Configuration.h
  17. 6
    0
      Marlin/example_configurations/SCARA/Configuration_adv.h
  18. 3
    1
      Marlin/example_configurations/TAZ4/Configuration.h
  19. 6
    0
      Marlin/example_configurations/TAZ4/Configuration_adv.h
  20. 3
    1
      Marlin/example_configurations/WITBOX/Configuration.h
  21. 6
    0
      Marlin/example_configurations/WITBOX/Configuration_adv.h
  22. 3
    1
      Marlin/example_configurations/adafruit/ST7565/Configuration.h
  23. 3
    1
      Marlin/example_configurations/delta/biv2.5/Configuration.h
  24. 6
    0
      Marlin/example_configurations/delta/biv2.5/Configuration_adv.h
  25. 3
    1
      Marlin/example_configurations/delta/generic/Configuration.h
  26. 6
    0
      Marlin/example_configurations/delta/generic/Configuration_adv.h
  27. 3
    1
      Marlin/example_configurations/delta/kossel_mini/Configuration.h
  28. 6
    0
      Marlin/example_configurations/delta/kossel_mini/Configuration_adv.h
  29. 3
    1
      Marlin/example_configurations/delta/kossel_pro/Configuration.h
  30. 6
    0
      Marlin/example_configurations/delta/kossel_pro/Configuration_adv.h
  31. 3
    1
      Marlin/example_configurations/makibox/Configuration.h
  32. 6
    0
      Marlin/example_configurations/makibox/Configuration_adv.h
  33. 3
    1
      Marlin/example_configurations/tvrrug/Round2/Configuration.h
  34. 6
    0
      Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h
  35. 6
    4
      Marlin/ultralcd.cpp
  36. 50
    22
      Marlin/ultralcd_implementation_hitachi_HD44780.h

+ 3
- 1
Marlin/Configuration.h View File

349
 #define Z_ENABLE_ON 0
349
 #define Z_ENABLE_ON 0
350
 #define E_ENABLE_ON 0 // For all extruders
350
 #define E_ENABLE_ON 0 // For all extruders
351
 
351
 
352
-// Disables axis when it's not being used.
352
+// Disables axis stepper immediately when it's not being used.
353
 // WARNING: When motors turn off there is a chance of losing position accuracy!
353
 // WARNING: When motors turn off there is a chance of losing position accuracy!
354
 #define DISABLE_X false
354
 #define DISABLE_X false
355
 #define DISABLE_Y false
355
 #define DISABLE_Y false
356
 #define DISABLE_Z false
356
 #define DISABLE_Z false
357
+// Warn on display about possibly reduced accuracy
358
+//#define DISABLE_REDUCED_ACCURACY_WARNING
357
 
359
 
358
 // @section extruder
360
 // @section extruder
359
 
361
 

+ 8
- 2
Marlin/Configuration_adv.h View File

52
  * The maximum buffered steps/sec of the extruder motor is called "se".
52
  * The maximum buffered steps/sec of the extruder motor is called "se".
53
  * Start autotemp mode with M109 S<mintemp> B<maxtemp> F<factor>
53
  * Start autotemp mode with M109 S<mintemp> B<maxtemp> F<factor>
54
  * The target temperature is set to mintemp+factor*se[steps/sec] and is limited by
54
  * The target temperature is set to mintemp+factor*se[steps/sec] and is limited by
55
- * mintemp and maxtemp. Turn this off by excuting M109 without F*
55
+ * mintemp and maxtemp. Turn this off by executing M109 without F*
56
  * Also, if the temperature is set to a value below mintemp, it will not be changed by autotemp.
56
  * Also, if the temperature is set to a value below mintemp, it will not be changed by autotemp.
57
  * On an Ultimaker, some initial testing worked with M109 S215 B260 F1 in the start.gcode
57
  * On an Ultimaker, some initial testing worked with M109 S215 B260 F1 in the start.gcode
58
  */
58
  */
232
 #define INVERT_E_STEP_PIN false
232
 #define INVERT_E_STEP_PIN false
233
 
233
 
234
 // Default stepper release if idle. Set to 0 to deactivate.
234
 // Default stepper release if idle. Set to 0 to deactivate.
235
-#define DEFAULT_STEPPER_DEACTIVE_TIME 60
235
+// Steppers will shut down DEFAULT_STEPPER_DEACTIVE_TIME seconds after the last move when DISABLE_INACTIVE_? is true.
236
+// Time can be set by M18 and M84.
237
+#define DEFAULT_STEPPER_DEACTIVE_TIME 120
238
+#define DISABLE_INACTIVE_X true
239
+#define DISABLE_INACTIVE_Y true
240
+#define DISABLE_INACTIVE_Z true  // set to false if the nozzle will fall down on your printed part when print has finished.
241
+#define DISABLE_INACTIVE_E true
236
 
242
 
237
 #define DEFAULT_MINIMUMFEEDRATE       0.0     // minimum feedrate
243
 #define DEFAULT_MINIMUMFEEDRATE       0.0     // minimum feedrate
238
 #define DEFAULT_MINTRAVELFEEDRATE     0.0
244
 #define DEFAULT_MINTRAVELFEEDRATE     0.0

+ 1
- 0
Marlin/Marlin.h View File

259
 extern float min_pos[3]; // axis[n].min_pos
259
 extern float min_pos[3]; // axis[n].min_pos
260
 extern float max_pos[3]; // axis[n].max_pos
260
 extern float max_pos[3]; // axis[n].max_pos
261
 extern bool axis_known_position[3]; // axis[n].is_known
261
 extern bool axis_known_position[3]; // axis[n].is_known
262
+extern bool axis_homed[3]; // axis[n].is_homed
262
 
263
 
263
 #if ENABLED(DELTA)
264
 #if ENABLED(DELTA)
264
   extern float delta[3];
265
   extern float delta[3];

+ 10
- 6
Marlin/Marlin_main.cpp View File

245
 float current_position[NUM_AXIS] = { 0.0 };
245
 float current_position[NUM_AXIS] = { 0.0 };
246
 static float destination[NUM_AXIS] = { 0.0 };
246
 static float destination[NUM_AXIS] = { 0.0 };
247
 bool axis_known_position[3] = { false };
247
 bool axis_known_position[3] = { false };
248
+bool axis_homed[3] = { false };
248
 
249
 
249
 static long gcode_N, gcode_LastN, Stopped_gcode_LastN = 0;
250
 static long gcode_N, gcode_LastN, Stopped_gcode_LastN = 0;
250
 
251
 
1280
 
1281
 
1281
   static void run_z_probe() {
1282
   static void run_z_probe() {
1282
 
1283
 
1284
+    refresh_cmd_timeout(); // to prevent stepper_inactive_time from running out and EXTRUDER_RUNOUT_PREVENT from extruding
1285
+
1283
     #if ENABLED(DELTA)
1286
     #if ENABLED(DELTA)
1284
 
1287
 
1285
       float start_z = current_position[Z_AXIS];
1288
       float start_z = current_position[Z_AXIS];
1983
     feedrate = 0.0;
1986
     feedrate = 0.0;
1984
     endstops_hit_on_purpose(); // clear endstop hit flags
1987
     endstops_hit_on_purpose(); // clear endstop hit flags
1985
     axis_known_position[axis] = true;
1988
     axis_known_position[axis] = true;
1989
+    axis_homed[axis] = true;
1986
 
1990
 
1987
     #if ENABLED(Z_PROBE_SLED)
1991
     #if ENABLED(Z_PROBE_SLED)
1988
       // bring Z probe back
1992
       // bring Z probe back
3980
     }
3984
     }
3981
 
3985
 
3982
     idle();
3986
     idle();
3987
+    refresh_cmd_timeout(); // to prevent stepper_inactive_time from running out
3983
 
3988
 
3984
     #ifdef TEMP_RESIDENCY_TIME
3989
     #ifdef TEMP_RESIDENCY_TIME
3985
       // start/restart the TEMP_RESIDENCY_TIME timer whenever we reach target temp for the first time
3990
       // start/restart the TEMP_RESIDENCY_TIME timer whenever we reach target temp for the first time
3994
   }
3999
   }
3995
 
4000
 
3996
   LCD_MESSAGEPGM(MSG_HEATING_COMPLETE);
4001
   LCD_MESSAGEPGM(MSG_HEATING_COMPLETE);
3997
-  refresh_cmd_timeout();
3998
   print_job_start_ms = previous_cmd_ms;
4002
   print_job_start_ms = previous_cmd_ms;
3999
 }
4003
 }
4000
 
4004
 
4029
         #endif
4033
         #endif
4030
       }
4034
       }
4031
       idle();
4035
       idle();
4036
+      refresh_cmd_timeout(); // to prevent stepper_inactive_time from running out
4032
     }
4037
     }
4033
     LCD_MESSAGEPGM(MSG_BED_DONE);
4038
     LCD_MESSAGEPGM(MSG_BED_DONE);
4034
-    refresh_cmd_timeout();
4035
   }
4039
   }
4036
 
4040
 
4037
 #endif // HAS_TEMP_BED
4041
 #endif // HAS_TEMP_BED
6972
 
6976
 
6973
   if (stepper_inactive_time && ms > previous_cmd_ms + stepper_inactive_time
6977
   if (stepper_inactive_time && ms > previous_cmd_ms + stepper_inactive_time
6974
       && !ignore_stepper_queue && !blocks_queued()) {
6978
       && !ignore_stepper_queue && !blocks_queued()) {
6975
-    #if DISABLE_X == true
6979
+    #if DISABLE_INACTIVE_X == true
6976
       disable_x();
6980
       disable_x();
6977
     #endif
6981
     #endif
6978
-    #if DISABLE_Y == true
6982
+    #if DISABLE_INACTIVE_Y == true
6979
       disable_y();
6983
       disable_y();
6980
     #endif
6984
     #endif
6981
-    #if DISABLE_Z == true
6985
+    #if DISABLE_INACTIVE_Z == true
6982
       disable_z();
6986
       disable_z();
6983
     #endif
6987
     #endif
6984
-    #if DISABLE_E == true
6988
+    #if DISABLE_INACTIVE_E == true
6985
       disable_e0();
6989
       disable_e0();
6986
       disable_e1();
6990
       disable_e1();
6987
       disable_e2();
6991
       disable_e2();

+ 48
- 16
Marlin/dogm_lcd_implementation.h View File

270
   lcd_print(itostr3(int(heater >= 0 ? degHotend(heater) : degBed()) + 0.5));
270
   lcd_print(itostr3(int(heater >= 0 ? degHotend(heater) : degBed()) + 0.5));
271
 
271
 
272
   lcd_printPGM(PSTR(LCD_STR_DEGREE " "));
272
   lcd_printPGM(PSTR(LCD_STR_DEGREE " "));
273
-  if (!isHeatingHotend(0)) {
273
+  if (heater >= 0 ? !isHeatingHotend(heater) : !isHeatingBed()) {
274
     u8g.drawBox(x+7,y,2,2);
274
     u8g.drawBox(x+7,y,2,2);
275
   }
275
   }
276
   else {
276
   else {
338
     }
338
     }
339
 
339
 
340
   // X, Y, Z-Coordinates
340
   // X, Y, Z-Coordinates
341
+  // Before homing the axis letters are blinking 'X' <-> '?'.
342
+  // When axis is homed but axis_known_position is false the axis letters are blinking 'X' <-> ' '.
343
+  // When everything is ok you see a constant 'X'.
341
   #define XYZ_BASELINE 38
344
   #define XYZ_BASELINE 38
342
   lcd_setFont(FONT_STATUSMENU);
345
   lcd_setFont(FONT_STATUSMENU);
343
 
346
 
348
   #endif
351
   #endif
349
   u8g.setColorIndex(0); // white on black
352
   u8g.setColorIndex(0); // white on black
350
   u8g.setPrintPos(2, XYZ_BASELINE);
353
   u8g.setPrintPos(2, XYZ_BASELINE);
351
-  lcd_print('X');
354
+  if (blink & 1)
355
+    lcd_printPGM(PSTR("X"));
356
+  else {
357
+    if (!axis_homed[X_AXIS])
358
+      lcd_printPGM(PSTR("?"));
359
+    else
360
+      #if DISABLED(DISABLE_REDUCED_ACCURACY_WARNING)
361
+        if (!axis_known_position[X_AXIS])
362
+          lcd_printPGM(PSTR(" "));
363
+        else
364
+      #endif
365
+      lcd_printPGM(PSTR("X"));
366
+  }
352
   u8g.drawPixel(8, XYZ_BASELINE - 5);
367
   u8g.drawPixel(8, XYZ_BASELINE - 5);
353
   u8g.drawPixel(8, XYZ_BASELINE - 3);
368
   u8g.drawPixel(8, XYZ_BASELINE - 3);
354
   u8g.setPrintPos(10, XYZ_BASELINE);
369
   u8g.setPrintPos(10, XYZ_BASELINE);
355
-  if (axis_known_position[X_AXIS])
356
-    lcd_print(ftostr31ns(current_position[X_AXIS]));
357
-  else
358
-    lcd_printPGM(PSTR("---"));
370
+  lcd_print(ftostr31ns(current_position[X_AXIS]));
371
+
359
   u8g.setPrintPos(43, XYZ_BASELINE);
372
   u8g.setPrintPos(43, XYZ_BASELINE);
360
-  lcd_print('Y');
373
+  if (blink & 1)
374
+    lcd_printPGM(PSTR("Y"));
375
+  else {
376
+    if (!axis_homed[Y_AXIS])
377
+      lcd_printPGM(PSTR("?"));
378
+    else
379
+      #if DISABLED(DISABLE_REDUCED_ACCURACY_WARNING)
380
+        if (!axis_known_position[Y_AXIS])
381
+          lcd_printPGM(PSTR(" "));
382
+        else
383
+      #endif
384
+      lcd_printPGM(PSTR("Y"));
385
+  }
361
   u8g.drawPixel(49, XYZ_BASELINE - 5);
386
   u8g.drawPixel(49, XYZ_BASELINE - 5);
362
   u8g.drawPixel(49, XYZ_BASELINE - 3);
387
   u8g.drawPixel(49, XYZ_BASELINE - 3);
363
   u8g.setPrintPos(51, XYZ_BASELINE);
388
   u8g.setPrintPos(51, XYZ_BASELINE);
364
-  if (axis_known_position[Y_AXIS])
365
-    lcd_print(ftostr31ns(current_position[Y_AXIS]));
366
-  else
367
-    lcd_printPGM(PSTR("---"));
389
+  lcd_print(ftostr31ns(current_position[Y_AXIS]));
390
+
368
   u8g.setPrintPos(83, XYZ_BASELINE);
391
   u8g.setPrintPos(83, XYZ_BASELINE);
369
-  lcd_print('Z');
392
+  if (blink & 1)
393
+    lcd_printPGM(PSTR("Z"));
394
+  else {
395
+    if (!axis_homed[Z_AXIS])
396
+      lcd_printPGM(PSTR("?"));
397
+    else
398
+      #if DISABLED(DISABLE_REDUCED_ACCURACY_WARNING)
399
+        if (!axis_known_position[Z_AXIS])
400
+          lcd_printPGM(PSTR(" "));
401
+        else
402
+      #endif
403
+      lcd_printPGM(PSTR("Z"));
404
+  }
370
   u8g.drawPixel(89, XYZ_BASELINE - 5);
405
   u8g.drawPixel(89, XYZ_BASELINE - 5);
371
   u8g.drawPixel(89, XYZ_BASELINE - 3);
406
   u8g.drawPixel(89, XYZ_BASELINE - 3);
372
   u8g.setPrintPos(91, XYZ_BASELINE);
407
   u8g.setPrintPos(91, XYZ_BASELINE);
373
-  if (axis_known_position[Z_AXIS])
374
-    lcd_print(ftostr32sp(current_position[Z_AXIS]));
375
-  else
376
-    lcd_printPGM(PSTR("---.--"));
408
+  lcd_print(ftostr32sp(current_position[Z_AXIS]));
377
   u8g.setColorIndex(1); // black on white
409
   u8g.setColorIndex(1); // black on white
378
 
410
 
379
   // Feedrate
411
   // Feedrate

+ 3
- 1
Marlin/example_configurations/Felix/Configuration.h View File

331
 #define Z_ENABLE_ON 0
331
 #define Z_ENABLE_ON 0
332
 #define E_ENABLE_ON 0 // For all extruders
332
 #define E_ENABLE_ON 0 // For all extruders
333
 
333
 
334
-// Disables axis when it's not being used.
334
+// Disables axis stepper immediately when it's not being used.
335
 // WARNING: When motors turn off there is a chance of losing position accuracy!
335
 // WARNING: When motors turn off there is a chance of losing position accuracy!
336
 #define DISABLE_X false
336
 #define DISABLE_X false
337
 #define DISABLE_Y false
337
 #define DISABLE_Y false
338
 #define DISABLE_Z false
338
 #define DISABLE_Z false
339
+// Warn on display about possibly reduced accuracy
340
+//#define DISABLE_REDUCED_ACCURACY_WARNING
339
 
341
 
340
 // @section extruder
342
 // @section extruder
341
 
343
 

+ 3
- 1
Marlin/example_configurations/Felix/Configuration_DUAL.h View File

315
 #define Z_ENABLE_ON 0
315
 #define Z_ENABLE_ON 0
316
 #define E_ENABLE_ON 0 // For all extruders
316
 #define E_ENABLE_ON 0 // For all extruders
317
 
317
 
318
-// Disables axis when it's not being used.
318
+// Disables axis stepper immediately when it's not being used.
319
 // WARNING: When motors turn off there is a chance of losing position accuracy!
319
 // WARNING: When motors turn off there is a chance of losing position accuracy!
320
 #define DISABLE_X false
320
 #define DISABLE_X false
321
 #define DISABLE_Y false
321
 #define DISABLE_Y false
322
 #define DISABLE_Z false
322
 #define DISABLE_Z false
323
+// Warn on display about possibly reduced accuracy
324
+//#define DISABLE_REDUCED_ACCURACY_WARNING
323
 #define DISABLE_E false // For all extruders
325
 #define DISABLE_E false // For all extruders
324
 #define DISABLE_INACTIVE_EXTRUDER true //disable only inactive extruders and keep active extruder enabled
326
 #define DISABLE_INACTIVE_EXTRUDER true //disable only inactive extruders and keep active extruder enabled
325
 
327
 

+ 6
- 0
Marlin/example_configurations/Felix/Configuration_adv.h View File

232
 #define INVERT_E_STEP_PIN false
232
 #define INVERT_E_STEP_PIN false
233
 
233
 
234
 // Default stepper release if idle. Set to 0 to deactivate.
234
 // Default stepper release if idle. Set to 0 to deactivate.
235
+// Steppers will shut down DEFAULT_STEPPER_DEACTIVE_TIME seconds after the last move when DISABLE_INACTIVE_? is true.
236
+// Time can be set by M18 and M84.
235
 #define DEFAULT_STEPPER_DEACTIVE_TIME 60
237
 #define DEFAULT_STEPPER_DEACTIVE_TIME 60
238
+#define DISABLE_INACTIVE_X true
239
+#define DISABLE_INACTIVE_Y true
240
+#define DISABLE_INACTIVE_Z true  // set to false if the nozzle will fall down on your printed part when print has finished.
241
+#define DISABLE_INACTIVE_E true
236
 
242
 
237
 #define DEFAULT_MINIMUMFEEDRATE       0.0     // minimum feedrate
243
 #define DEFAULT_MINIMUMFEEDRATE       0.0     // minimum feedrate
238
 #define DEFAULT_MINTRAVELFEEDRATE     0.0
244
 #define DEFAULT_MINTRAVELFEEDRATE     0.0

+ 3
- 1
Marlin/example_configurations/Hephestos/Configuration.h View File

341
 #define Z_ENABLE_ON 0
341
 #define Z_ENABLE_ON 0
342
 #define E_ENABLE_ON 0 // For all extruders
342
 #define E_ENABLE_ON 0 // For all extruders
343
 
343
 
344
-// Disables axis when it's not being used.
344
+// Disables axis stepper immediately when it's not being used.
345
 // WARNING: When motors turn off there is a chance of losing position accuracy!
345
 // WARNING: When motors turn off there is a chance of losing position accuracy!
346
 #define DISABLE_X false
346
 #define DISABLE_X false
347
 #define DISABLE_Y false
347
 #define DISABLE_Y false
348
 #define DISABLE_Z false
348
 #define DISABLE_Z false
349
+// Warn on display about possibly reduced accuracy
350
+//#define DISABLE_REDUCED_ACCURACY_WARNING
349
 
351
 
350
 // @section extruder
352
 // @section extruder
351
 
353
 

+ 6
- 0
Marlin/example_configurations/Hephestos/Configuration_adv.h View File

232
 #define INVERT_E_STEP_PIN false
232
 #define INVERT_E_STEP_PIN false
233
 
233
 
234
 // Default stepper release if idle. Set to 0 to deactivate.
234
 // Default stepper release if idle. Set to 0 to deactivate.
235
+// Steppers will shut down DEFAULT_STEPPER_DEACTIVE_TIME seconds after the last move when DISABLE_INACTIVE_? is true.
236
+// Time can be set by M18 and M84.
235
 #define DEFAULT_STEPPER_DEACTIVE_TIME 60
237
 #define DEFAULT_STEPPER_DEACTIVE_TIME 60
238
+#define DISABLE_INACTIVE_X true
239
+#define DISABLE_INACTIVE_Y true
240
+#define DISABLE_INACTIVE_Z true  // set to false if the nozzle will fall down on your printed part when print has finished.
241
+#define DISABLE_INACTIVE_E true
236
 
242
 
237
 #define DEFAULT_MINIMUMFEEDRATE       0.0     // minimum feedrate
243
 #define DEFAULT_MINIMUMFEEDRATE       0.0     // minimum feedrate
238
 #define DEFAULT_MINTRAVELFEEDRATE     0.0
244
 #define DEFAULT_MINTRAVELFEEDRATE     0.0

+ 3
- 1
Marlin/example_configurations/K8200/Configuration.h View File

364
 #define Z_ENABLE_ON 0
364
 #define Z_ENABLE_ON 0
365
 #define E_ENABLE_ON 0 // For all extruders
365
 #define E_ENABLE_ON 0 // For all extruders
366
 
366
 
367
-// Disables axis when it's not being used.
367
+// Disables axis stepper immediately when it's not being used.
368
 // WARNING: When motors turn off there is a chance of losing position accuracy!
368
 // WARNING: When motors turn off there is a chance of losing position accuracy!
369
 #define DISABLE_X false
369
 #define DISABLE_X false
370
 #define DISABLE_Y false
370
 #define DISABLE_Y false
371
 #define DISABLE_Z false // not for K8200 -> looses Steps
371
 #define DISABLE_Z false // not for K8200 -> looses Steps
372
+// Warn on display about possibly reduced accuracy
373
+//#define DISABLE_REDUCED_ACCURACY_WARNING
372
 
374
 
373
 // @section extruder
375
 // @section extruder
374
 
376
 

+ 6
- 0
Marlin/example_configurations/K8200/Configuration_adv.h View File

237
 #define INVERT_E_STEP_PIN false
237
 #define INVERT_E_STEP_PIN false
238
 
238
 
239
 // Default stepper release if idle. Set to 0 to deactivate.
239
 // Default stepper release if idle. Set to 0 to deactivate.
240
+// Steppers will shut down DEFAULT_STEPPER_DEACTIVE_TIME seconds after the last move when DISABLE_INACTIVE_? is true.
241
+// Time can be set by M18 and M84.
240
 #define DEFAULT_STEPPER_DEACTIVE_TIME 60
242
 #define DEFAULT_STEPPER_DEACTIVE_TIME 60
243
+#define DISABLE_INACTIVE_X true
244
+#define DISABLE_INACTIVE_Y true
245
+#define DISABLE_INACTIVE_Z true  // set to false if the nozzle will fall down on your printed part when print has finished.
246
+#define DISABLE_INACTIVE_E true
241
 
247
 
242
 #define DEFAULT_MINIMUMFEEDRATE       0.0     // minimum feedrate
248
 #define DEFAULT_MINIMUMFEEDRATE       0.0     // minimum feedrate
243
 #define DEFAULT_MINTRAVELFEEDRATE     0.0
249
 #define DEFAULT_MINTRAVELFEEDRATE     0.0

+ 3
- 1
Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h View File

349
 #define Z_ENABLE_ON 0
349
 #define Z_ENABLE_ON 0
350
 #define E_ENABLE_ON 0 // For all extruders
350
 #define E_ENABLE_ON 0 // For all extruders
351
 
351
 
352
-// Disables axis when it's not being used.
352
+// Disables axis stepper immediately when it's not being used.
353
 // WARNING: When motors turn off there is a chance of losing position accuracy!
353
 // WARNING: When motors turn off there is a chance of losing position accuracy!
354
 #define DISABLE_X false
354
 #define DISABLE_X false
355
 #define DISABLE_Y false
355
 #define DISABLE_Y false
356
 #define DISABLE_Z false
356
 #define DISABLE_Z false
357
+// Warn on display about possibly reduced accuracy
358
+//#define DISABLE_REDUCED_ACCURACY_WARNING
357
 
359
 
358
 // @section extruder
360
 // @section extruder
359
 
361
 

+ 3
- 1
Marlin/example_configurations/RigidBot/Configuration.h View File

340
 #define Z_ENABLE_ON 0
340
 #define Z_ENABLE_ON 0
341
 #define E_ENABLE_ON 0 // For all extruders
341
 #define E_ENABLE_ON 0 // For all extruders
342
 
342
 
343
-// Disables axis when it's not being used.
343
+// Disables axis stepper immediately when it's not being used.
344
 // WARNING: When motors turn off there is a chance of losing position accuracy!
344
 // WARNING: When motors turn off there is a chance of losing position accuracy!
345
 #define DISABLE_X false
345
 #define DISABLE_X false
346
 #define DISABLE_Y false
346
 #define DISABLE_Y false
347
 #define DISABLE_Z false
347
 #define DISABLE_Z false
348
+// Warn on display about possibly reduced accuracy
349
+//#define DISABLE_REDUCED_ACCURACY_WARNING
348
 
350
 
349
 // @section extruder
351
 // @section extruder
350
 
352
 

+ 6
- 0
Marlin/example_configurations/RigidBot/Configuration_adv.h View File

232
 #define INVERT_E_STEP_PIN false
232
 #define INVERT_E_STEP_PIN false
233
 
233
 
234
 // Default stepper release if idle. Set to 0 to deactivate.
234
 // Default stepper release if idle. Set to 0 to deactivate.
235
+// Steppers will shut down DEFAULT_STEPPER_DEACTIVE_TIME seconds after the last move when DISABLE_INACTIVE_? is true.
236
+// Time can be set by M18 and M84.
235
 #define DEFAULT_STEPPER_DEACTIVE_TIME 60
237
 #define DEFAULT_STEPPER_DEACTIVE_TIME 60
238
+#define DISABLE_INACTIVE_X true
239
+#define DISABLE_INACTIVE_Y true
240
+#define DISABLE_INACTIVE_Z true  // set to false if the nozzle will fall down on your printed part when print has finished.
241
+#define DISABLE_INACTIVE_E true
236
 
242
 
237
 #define DEFAULT_MINIMUMFEEDRATE       0.0     // minimum feedrate
243
 #define DEFAULT_MINIMUMFEEDRATE       0.0     // minimum feedrate
238
 #define DEFAULT_MINTRAVELFEEDRATE     0.0
244
 #define DEFAULT_MINTRAVELFEEDRATE     0.0

+ 3
- 1
Marlin/example_configurations/SCARA/Configuration.h View File

357
 #define Z_ENABLE_ON 0
357
 #define Z_ENABLE_ON 0
358
 #define E_ENABLE_ON 0 // For all extruders
358
 #define E_ENABLE_ON 0 // For all extruders
359
 
359
 
360
-// Disables axis when it's not being used.
360
+// Disables axis stepper immediately when it's not being used.
361
 // WARNING: When motors turn off there is a chance of losing position accuracy!
361
 // WARNING: When motors turn off there is a chance of losing position accuracy!
362
 #define DISABLE_X false
362
 #define DISABLE_X false
363
 #define DISABLE_Y false
363
 #define DISABLE_Y false
364
 #define DISABLE_Z false
364
 #define DISABLE_Z false
365
+// Warn on display about possibly reduced accuracy
366
+//#define DISABLE_REDUCED_ACCURACY_WARNING
365
 
367
 
366
 // @section extruder
368
 // @section extruder
367
 
369
 

+ 6
- 0
Marlin/example_configurations/SCARA/Configuration_adv.h View File

232
 #define INVERT_E_STEP_PIN false
232
 #define INVERT_E_STEP_PIN false
233
 
233
 
234
 // Default stepper release if idle. Set to 0 to deactivate.
234
 // Default stepper release if idle. Set to 0 to deactivate.
235
+// Steppers will shut down DEFAULT_STEPPER_DEACTIVE_TIME seconds after the last move when DISABLE_INACTIVE_? is true.
236
+// Time can be set by M18 and M84.
235
 #define DEFAULT_STEPPER_DEACTIVE_TIME 240
237
 #define DEFAULT_STEPPER_DEACTIVE_TIME 240
238
+#define DISABLE_INACTIVE_X true
239
+#define DISABLE_INACTIVE_Y true
240
+#define DISABLE_INACTIVE_Z true  // set to false if the nozzle will fall down on your printed part when print has finished.
241
+#define DISABLE_INACTIVE_E true
236
 
242
 
237
 #define DEFAULT_MINIMUMFEEDRATE       0.0     // minimum feedrate
243
 #define DEFAULT_MINIMUMFEEDRATE       0.0     // minimum feedrate
238
 #define DEFAULT_MINTRAVELFEEDRATE     0.0
244
 #define DEFAULT_MINTRAVELFEEDRATE     0.0

+ 3
- 1
Marlin/example_configurations/TAZ4/Configuration.h View File

369
 #define Z_ENABLE_ON 0
369
 #define Z_ENABLE_ON 0
370
 #define E_ENABLE_ON 0 // For all extruders
370
 #define E_ENABLE_ON 0 // For all extruders
371
 
371
 
372
-// Disables axis when it's not being used.
372
+// Disables axis stepper immediately when it's not being used.
373
 // WARNING: When motors turn off there is a chance of losing position accuracy!
373
 // WARNING: When motors turn off there is a chance of losing position accuracy!
374
 #define DISABLE_X false
374
 #define DISABLE_X false
375
 #define DISABLE_Y false
375
 #define DISABLE_Y false
376
 #define DISABLE_Z false
376
 #define DISABLE_Z false
377
+// Warn on display about possibly reduced accuracy
378
+//#define DISABLE_REDUCED_ACCURACY_WARNING
377
 
379
 
378
 // @section extruder
380
 // @section extruder
379
 
381
 

+ 6
- 0
Marlin/example_configurations/TAZ4/Configuration_adv.h View File

240
 #define INVERT_E_STEP_PIN false
240
 #define INVERT_E_STEP_PIN false
241
 
241
 
242
 // Default stepper release if idle. Set to 0 to deactivate.
242
 // Default stepper release if idle. Set to 0 to deactivate.
243
+// Steppers will shut down DEFAULT_STEPPER_DEACTIVE_TIME seconds after the last move when DISABLE_INACTIVE_? is true.
244
+// Time can be set by M18 and M84.
243
 #define DEFAULT_STEPPER_DEACTIVE_TIME 60
245
 #define DEFAULT_STEPPER_DEACTIVE_TIME 60
246
+#define DISABLE_INACTIVE_X true
247
+#define DISABLE_INACTIVE_Y true
248
+#define DISABLE_INACTIVE_Z true  // set to false if the nozzle will fall down on your printed part when print has finished.
249
+#define DISABLE_INACTIVE_E true
244
 
250
 
245
 #define DEFAULT_MINIMUMFEEDRATE       0.0     // minimum feedrate
251
 #define DEFAULT_MINIMUMFEEDRATE       0.0     // minimum feedrate
246
 #define DEFAULT_MINTRAVELFEEDRATE     0.0
252
 #define DEFAULT_MINTRAVELFEEDRATE     0.0

+ 3
- 1
Marlin/example_configurations/WITBOX/Configuration.h View File

341
 #define Z_ENABLE_ON 0
341
 #define Z_ENABLE_ON 0
342
 #define E_ENABLE_ON 0 // For all extruders
342
 #define E_ENABLE_ON 0 // For all extruders
343
 
343
 
344
-// Disables axis when it's not being used.
344
+// Disables axis stepper immediately when it's not being used.
345
 // WARNING: When motors turn off there is a chance of losing position accuracy!
345
 // WARNING: When motors turn off there is a chance of losing position accuracy!
346
 #define DISABLE_X false
346
 #define DISABLE_X false
347
 #define DISABLE_Y false
347
 #define DISABLE_Y false
348
 #define DISABLE_Z true
348
 #define DISABLE_Z true
349
+// Warn on display about possibly reduced accuracy
350
+//#define DISABLE_REDUCED_ACCURACY_WARNING
349
 
351
 
350
 // @section extruder
352
 // @section extruder
351
 
353
 

+ 6
- 0
Marlin/example_configurations/WITBOX/Configuration_adv.h View File

232
 #define INVERT_E_STEP_PIN false
232
 #define INVERT_E_STEP_PIN false
233
 
233
 
234
 // Default stepper release if idle. Set to 0 to deactivate.
234
 // Default stepper release if idle. Set to 0 to deactivate.
235
+// Steppers will shut down DEFAULT_STEPPER_DEACTIVE_TIME seconds after the last move when DISABLE_INACTIVE_? is true.
236
+// Time can be set by M18 and M84.
235
 #define DEFAULT_STEPPER_DEACTIVE_TIME 60
237
 #define DEFAULT_STEPPER_DEACTIVE_TIME 60
238
+#define DISABLE_INACTIVE_X true
239
+#define DISABLE_INACTIVE_Y true
240
+#define DISABLE_INACTIVE_Z true  // set to false if the nozzle will fall down on your printed part when print has finished.
241
+#define DISABLE_INACTIVE_E true
236
 
242
 
237
 #define DEFAULT_MINIMUMFEEDRATE       0.0     // minimum feedrate
243
 #define DEFAULT_MINIMUMFEEDRATE       0.0     // minimum feedrate
238
 #define DEFAULT_MINTRAVELFEEDRATE     0.0
244
 #define DEFAULT_MINTRAVELFEEDRATE     0.0

+ 3
- 1
Marlin/example_configurations/adafruit/ST7565/Configuration.h View File

349
 #define Z_ENABLE_ON 0
349
 #define Z_ENABLE_ON 0
350
 #define E_ENABLE_ON 0 // For all extruders
350
 #define E_ENABLE_ON 0 // For all extruders
351
 
351
 
352
-// Disables axis when it's not being used.
352
+// Disables axis stepper immediately when it's not being used.
353
 // WARNING: When motors turn off there is a chance of losing position accuracy!
353
 // WARNING: When motors turn off there is a chance of losing position accuracy!
354
 #define DISABLE_X false
354
 #define DISABLE_X false
355
 #define DISABLE_Y false
355
 #define DISABLE_Y false
356
 #define DISABLE_Z false
356
 #define DISABLE_Z false
357
+// Warn on display about possibly reduced accuracy
358
+//#define DISABLE_REDUCED_ACCURACY_WARNING
357
 
359
 
358
 // @section extruder
360
 // @section extruder
359
 
361
 

+ 3
- 1
Marlin/example_configurations/delta/biv2.5/Configuration.h View File

384
 #define Z_ENABLE_ON 0
384
 #define Z_ENABLE_ON 0
385
 #define E_ENABLE_ON 0 // For all extruders
385
 #define E_ENABLE_ON 0 // For all extruders
386
 
386
 
387
-// Disables axis when it's not being used.
387
+// Disables axis stepper immediately when it's not being used.
388
 // WARNING: When motors turn off there is a chance of losing position accuracy!
388
 // WARNING: When motors turn off there is a chance of losing position accuracy!
389
 #define DISABLE_X false
389
 #define DISABLE_X false
390
 #define DISABLE_Y false
390
 #define DISABLE_Y false
391
 #define DISABLE_Z false
391
 #define DISABLE_Z false
392
+// Warn on display about possibly reduced accuracy
393
+//#define DISABLE_REDUCED_ACCURACY_WARNING
392
 
394
 
393
 // @section extruder
395
 // @section extruder
394
 
396
 

+ 6
- 0
Marlin/example_configurations/delta/biv2.5/Configuration_adv.h View File

232
 #define INVERT_E_STEP_PIN false
232
 #define INVERT_E_STEP_PIN false
233
 
233
 
234
 // Default stepper release if idle. Set to 0 to deactivate.
234
 // Default stepper release if idle. Set to 0 to deactivate.
235
+// Steppers will shut down DEFAULT_STEPPER_DEACTIVE_TIME seconds after the last move when DISABLE_INACTIVE_? is true.
236
+// Time can be set by M18 and M84.
235
 #define DEFAULT_STEPPER_DEACTIVE_TIME 0
237
 #define DEFAULT_STEPPER_DEACTIVE_TIME 0
238
+#define DISABLE_INACTIVE_X true
239
+#define DISABLE_INACTIVE_Y true
240
+#define DISABLE_INACTIVE_Z true  // set to false if the nozzle will fall down on your printed part when print has finished.
241
+#define DISABLE_INACTIVE_E true
236
 
242
 
237
 #define DEFAULT_MINIMUMFEEDRATE       0.0     // minimum feedrate
243
 #define DEFAULT_MINIMUMFEEDRATE       0.0     // minimum feedrate
238
 #define DEFAULT_MINTRAVELFEEDRATE     0.0
244
 #define DEFAULT_MINTRAVELFEEDRATE     0.0

+ 3
- 1
Marlin/example_configurations/delta/generic/Configuration.h View File

384
 #define Z_ENABLE_ON 0
384
 #define Z_ENABLE_ON 0
385
 #define E_ENABLE_ON 0 // For all extruders
385
 #define E_ENABLE_ON 0 // For all extruders
386
 
386
 
387
-// Disables axis when it's not being used.
387
+// Disables axis stepper immediately when it's not being used.
388
 // WARNING: When motors turn off there is a chance of losing position accuracy!
388
 // WARNING: When motors turn off there is a chance of losing position accuracy!
389
 #define DISABLE_X false
389
 #define DISABLE_X false
390
 #define DISABLE_Y false
390
 #define DISABLE_Y false
391
 #define DISABLE_Z false
391
 #define DISABLE_Z false
392
+// Warn on display about possibly reduced accuracy
393
+//#define DISABLE_REDUCED_ACCURACY_WARNING
392
 
394
 
393
 // @section extruder
395
 // @section extruder
394
 
396
 

+ 6
- 0
Marlin/example_configurations/delta/generic/Configuration_adv.h View File

232
 #define INVERT_E_STEP_PIN false
232
 #define INVERT_E_STEP_PIN false
233
 
233
 
234
 // Default stepper release if idle. Set to 0 to deactivate.
234
 // Default stepper release if idle. Set to 0 to deactivate.
235
+// Steppers will shut down DEFAULT_STEPPER_DEACTIVE_TIME seconds after the last move when DISABLE_INACTIVE_? is true.
236
+// Time can be set by M18 and M84.
235
 #define DEFAULT_STEPPER_DEACTIVE_TIME 60
237
 #define DEFAULT_STEPPER_DEACTIVE_TIME 60
238
+#define DISABLE_INACTIVE_X true
239
+#define DISABLE_INACTIVE_Y true
240
+#define DISABLE_INACTIVE_Z true  // set to false if the nozzle will fall down on your printed part when print has finished.
241
+#define DISABLE_INACTIVE_E true
236
 
242
 
237
 #define DEFAULT_MINIMUMFEEDRATE       0.0     // minimum feedrate
243
 #define DEFAULT_MINIMUMFEEDRATE       0.0     // minimum feedrate
238
 #define DEFAULT_MINTRAVELFEEDRATE     0.0
244
 #define DEFAULT_MINTRAVELFEEDRATE     0.0

+ 3
- 1
Marlin/example_configurations/delta/kossel_mini/Configuration.h View File

384
 #define Z_ENABLE_ON 0
384
 #define Z_ENABLE_ON 0
385
 #define E_ENABLE_ON 0 // For all extruders
385
 #define E_ENABLE_ON 0 // For all extruders
386
 
386
 
387
-// Disables axis when it's not being used.
387
+// Disables axis stepper immediately when it's not being used.
388
 // WARNING: When motors turn off there is a chance of losing position accuracy!
388
 // WARNING: When motors turn off there is a chance of losing position accuracy!
389
 #define DISABLE_X false
389
 #define DISABLE_X false
390
 #define DISABLE_Y false
390
 #define DISABLE_Y false
391
 #define DISABLE_Z false
391
 #define DISABLE_Z false
392
+// Warn on display about possibly reduced accuracy
393
+//#define DISABLE_REDUCED_ACCURACY_WARNING
392
 
394
 
393
 // @section extruder
395
 // @section extruder
394
 
396
 

+ 6
- 0
Marlin/example_configurations/delta/kossel_mini/Configuration_adv.h View File

232
 #define INVERT_E_STEP_PIN false
232
 #define INVERT_E_STEP_PIN false
233
 
233
 
234
 // Default stepper release if idle. Set to 0 to deactivate.
234
 // Default stepper release if idle. Set to 0 to deactivate.
235
+// Steppers will shut down DEFAULT_STEPPER_DEACTIVE_TIME seconds after the last move when DISABLE_INACTIVE_? is true.
236
+// Time can be set by M18 and M84.
235
 #define DEFAULT_STEPPER_DEACTIVE_TIME 60
237
 #define DEFAULT_STEPPER_DEACTIVE_TIME 60
238
+#define DISABLE_INACTIVE_X true
239
+#define DISABLE_INACTIVE_Y true
240
+#define DISABLE_INACTIVE_Z true  // set to false if the nozzle will fall down on your printed part when print has finished.
241
+#define DISABLE_INACTIVE_E true
236
 
242
 
237
 #define DEFAULT_MINIMUMFEEDRATE       0.0     // minimum feedrate
243
 #define DEFAULT_MINIMUMFEEDRATE       0.0     // minimum feedrate
238
 #define DEFAULT_MINTRAVELFEEDRATE     0.0
244
 #define DEFAULT_MINTRAVELFEEDRATE     0.0

+ 3
- 1
Marlin/example_configurations/delta/kossel_pro/Configuration.h View File

371
 #define Z_ENABLE_ON 0
371
 #define Z_ENABLE_ON 0
372
 #define E_ENABLE_ON 0 // For all extruders
372
 #define E_ENABLE_ON 0 // For all extruders
373
 
373
 
374
-// Disables axis when it's not being used.
374
+// Disables axis stepper immediately when it's not being used.
375
 // WARNING: When motors turn off there is a chance of losing position accuracy!
375
 // WARNING: When motors turn off there is a chance of losing position accuracy!
376
 #define DISABLE_X false
376
 #define DISABLE_X false
377
 #define DISABLE_Y false
377
 #define DISABLE_Y false
378
 #define DISABLE_Z false
378
 #define DISABLE_Z false
379
+// Warn on display about possibly reduced accuracy
380
+//#define DISABLE_REDUCED_ACCURACY_WARNING
379
 
381
 
380
 // @section extruder
382
 // @section extruder
381
 
383
 

+ 6
- 0
Marlin/example_configurations/delta/kossel_pro/Configuration_adv.h View File

236
 #define INVERT_E_STEP_PIN false
236
 #define INVERT_E_STEP_PIN false
237
 
237
 
238
 // Default stepper release if idle. Set to 0 to deactivate.
238
 // Default stepper release if idle. Set to 0 to deactivate.
239
+// Steppers will shut down DEFAULT_STEPPER_DEACTIVE_TIME seconds after the last move when DISABLE_INACTIVE_? is true.
240
+// Time can be set by M18 and M84.
239
 #define DEFAULT_STEPPER_DEACTIVE_TIME 60
241
 #define DEFAULT_STEPPER_DEACTIVE_TIME 60
242
+#define DISABLE_INACTIVE_X true
243
+#define DISABLE_INACTIVE_Y true
244
+#define DISABLE_INACTIVE_Z true  // set to false if the nozzle will fall down on your printed part when print has finished.
245
+#define DISABLE_INACTIVE_E true
240
 
246
 
241
 #define DEFAULT_MINIMUMFEEDRATE       0.0     // minimum feedrate
247
 #define DEFAULT_MINIMUMFEEDRATE       0.0     // minimum feedrate
242
 #define DEFAULT_MINTRAVELFEEDRATE     0.0
248
 #define DEFAULT_MINTRAVELFEEDRATE     0.0

+ 3
- 1
Marlin/example_configurations/makibox/Configuration.h View File

352
 #define Z_ENABLE_ON 0
352
 #define Z_ENABLE_ON 0
353
 #define E_ENABLE_ON 0 // For all extruders
353
 #define E_ENABLE_ON 0 // For all extruders
354
 
354
 
355
-// Disables axis when it's not being used.
355
+// Disables axis stepper immediately when it's not being used.
356
 // WARNING: When motors turn off there is a chance of losing position accuracy!
356
 // WARNING: When motors turn off there is a chance of losing position accuracy!
357
 #define DISABLE_X false
357
 #define DISABLE_X false
358
 #define DISABLE_Y false
358
 #define DISABLE_Y false
359
 #define DISABLE_Z false
359
 #define DISABLE_Z false
360
+// Warn on display about possibly reduced accuracy
361
+//#define DISABLE_REDUCED_ACCURACY_WARNING
360
 
362
 
361
 // @section extruder
363
 // @section extruder
362
 
364
 

+ 6
- 0
Marlin/example_configurations/makibox/Configuration_adv.h View File

232
 #define INVERT_E_STEP_PIN false
232
 #define INVERT_E_STEP_PIN false
233
 
233
 
234
 // Default stepper release if idle. Set to 0 to deactivate.
234
 // Default stepper release if idle. Set to 0 to deactivate.
235
+// Steppers will shut down DEFAULT_STEPPER_DEACTIVE_TIME seconds after the last move when DISABLE_INACTIVE_? is true.
236
+// Time can be set by M18 and M84.
235
 #define DEFAULT_STEPPER_DEACTIVE_TIME 60
237
 #define DEFAULT_STEPPER_DEACTIVE_TIME 60
238
+#define DISABLE_INACTIVE_X true
239
+#define DISABLE_INACTIVE_Y true
240
+#define DISABLE_INACTIVE_Z true  // set to false if the nozzle will fall down on your printed part when print has finished.
241
+#define DISABLE_INACTIVE_E true
236
 
242
 
237
 #define DEFAULT_MINIMUMFEEDRATE       0.0     // minimum feedrate
243
 #define DEFAULT_MINIMUMFEEDRATE       0.0     // minimum feedrate
238
 #define DEFAULT_MINTRAVELFEEDRATE     0.0
244
 #define DEFAULT_MINTRAVELFEEDRATE     0.0

+ 3
- 1
Marlin/example_configurations/tvrrug/Round2/Configuration.h View File

339
 #define Z_ENABLE_ON 1
339
 #define Z_ENABLE_ON 1
340
 #define E_ENABLE_ON 1 // For all extruders
340
 #define E_ENABLE_ON 1 // For all extruders
341
 
341
 
342
-// Disables axis when it's not being used.
342
+// Disables axis stepper immediately when it's not being used.
343
 // WARNING: When motors turn off there is a chance of losing position accuracy!
343
 // WARNING: When motors turn off there is a chance of losing position accuracy!
344
 #define DISABLE_X false
344
 #define DISABLE_X false
345
 #define DISABLE_Y false
345
 #define DISABLE_Y false
346
 #define DISABLE_Z false
346
 #define DISABLE_Z false
347
+// Warn on display about possibly reduced accuracy
348
+//#define DISABLE_REDUCED_ACCURACY_WARNING
347
 
349
 
348
 // @section extruder
350
 // @section extruder
349
 
351
 

+ 6
- 0
Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h View File

232
 #define INVERT_E_STEP_PIN false
232
 #define INVERT_E_STEP_PIN false
233
 
233
 
234
 // Default stepper release if idle. Set to 0 to deactivate.
234
 // Default stepper release if idle. Set to 0 to deactivate.
235
+// Steppers will shut down DEFAULT_STEPPER_DEACTIVE_TIME seconds after the last move when DISABLE_INACTIVE_? is true.
236
+// Time can be set by M18 and M84.
235
 #define DEFAULT_STEPPER_DEACTIVE_TIME 60
237
 #define DEFAULT_STEPPER_DEACTIVE_TIME 60
238
+#define DISABLE_INACTIVE_X true
239
+#define DISABLE_INACTIVE_Y true
240
+#define DISABLE_INACTIVE_Z true  // set to false if the nozzle will fall down on your printed part when print has finished.
241
+#define DISABLE_INACTIVE_E true
236
 
242
 
237
 #define DEFAULT_MINIMUMFEEDRATE       0.0     // minimum feedrate
243
 #define DEFAULT_MINIMUMFEEDRATE       0.0     // minimum feedrate
238
 #define DEFAULT_MINTRAVELFEEDRATE     0.0
244
 #define DEFAULT_MINTRAVELFEEDRATE     0.0

+ 6
- 4
Marlin/ultralcd.cpp View File

1736
     }
1736
     }
1737
     #if ENABLED(DOGLCD)  // Changes due to different driver architecture of the DOGM display
1737
     #if ENABLED(DOGLCD)  // Changes due to different driver architecture of the DOGM display
1738
         if (lcdDrawUpdate) {
1738
         if (lcdDrawUpdate) {
1739
-          blink++;     // Variable for fan animation and alive dot
1739
+          blink++;     // Variable for animation and alive dot
1740
           u8g.firstPage();
1740
           u8g.firstPage();
1741
           do {
1741
           do {
1742
             lcd_setFont(FONT_MENU);
1742
             lcd_setFont(FONT_MENU);
1743
             u8g.setPrintPos(125, 0);
1743
             u8g.setPrintPos(125, 0);
1744
-            if (blink % 2) u8g.setColorIndex(1); else u8g.setColorIndex(0); // Set color for the alive dot
1744
+            if (blink & 1) u8g.setColorIndex(1); else u8g.setColorIndex(0); // Set color for the alive dot
1745
             u8g.drawPixel(127, 63); // draw alive dot
1745
             u8g.drawPixel(127, 63); // draw alive dot
1746
             u8g.setColorIndex(1); // black on white
1746
             u8g.setColorIndex(1); // black on white
1747
             (*currentMenu)();
1747
             (*currentMenu)();
1748
           } while (u8g.nextPage());
1748
           } while (u8g.nextPage());
1749
         }
1749
         }
1750
     #else
1750
     #else
1751
-      if (lcdDrawUpdate)
1751
+      if (lcdDrawUpdate) {
1752
+        blink++;     // Variable for animation
1752
         (*currentMenu)();
1753
         (*currentMenu)();
1753
-    #endif
1754
+      }
1755
+      #endif
1754
 
1756
 
1755
     #if ENABLED(LCD_HAS_STATUS_INDICATORS)
1757
     #if ENABLED(LCD_HAS_STATUS_INDICATORS)
1756
       lcd_implementation_update_indicators();
1758
       lcd_implementation_update_indicators();

+ 50
- 22
Marlin/ultralcd_implementation_hitachi_HD44780.h View File

3
 
3
 
4
 /**
4
 /**
5
 * Implementation of the LCD display routines for a Hitachi HD44780 display. These are common LCD character displays.
5
 * Implementation of the LCD display routines for a Hitachi HD44780 display. These are common LCD character displays.
6
-* When selecting the Russian language, a slightly different LCD implementation is used to handle UTF8 characters.
7
 **/
6
 **/
8
 
7
 
9
-//#if DISABLED(REPRAPWORLD_KEYPAD)
10
-//  extern volatile uint8_t buttons;  //the last checked buttons in a bit array.
11
-//#else
12
-  extern volatile uint8_t buttons;  //an extended version of the last checked buttons in a bit array.
13
-//#endif
8
+static unsigned char blink = 0; // Variable for animation
9
+extern volatile uint8_t buttons;  //an extended version of the last checked buttons in a bit array.
14
 
10
 
15
 ////////////////////////////////////
11
 ////////////////////////////////////
16
 // Setup button and encode mappings for each panel (into 'buttons' variable
12
 // Setup button and encode mappings for each panel (into 'buttons' variable
627
         LCD_TEMP(degBed(), degTargetBed(), LCD_STR_BEDTEMP[0]);
623
         LCD_TEMP(degBed(), degTargetBed(), LCD_STR_BEDTEMP[0]);
628
 
624
 
629
       #else
625
       #else
626
+        // Before homing the axis letters are blinking 'X' <-> '?'.
627
+        // When axis is homed but axis_known_position is false the axis letters are blinking 'X' <-> ' '.
628
+        // When everything is ok you see a constant 'X'.
629
+
630
+        if (blink & 1)
631
+          lcd_printPGM(PSTR("X"));
632
+        else {
633
+          if (!axis_homed[X_AXIS])
634
+            lcd_printPGM(PSTR("?"));
635
+          else 
636
+            #if DISABLED(DISABLE_REDUCED_ACCURACY_WARNING)
637
+              if (!axis_known_position[X_AXIS])
638
+                lcd_printPGM(PSTR(" "));
639
+              else
640
+            #endif
641
+            lcd_printPGM(PSTR("X"));
642
+        }
630
 
643
 
631
-        lcd.print('X');
632
-        if (axis_known_position[X_AXIS])
633
-          lcd.print(ftostr4sign(current_position[X_AXIS]));
634
-        else
635
-          lcd_printPGM(PSTR(" ---"));
636
-
637
-        lcd_printPGM(PSTR(" Y"));
638
-        if (axis_known_position[Y_AXIS])
639
-          lcd.print(ftostr4sign(current_position[Y_AXIS]));
640
-        else
641
-          lcd_printPGM(PSTR(" ---"));
644
+        lcd.print(ftostr4sign(current_position[X_AXIS]));
645
+
646
+        lcd_printPGM(PSTR(" "));
647
+        if (blink & 1)
648
+          lcd_printPGM(PSTR("Y"));
649
+        else {
650
+          if (!axis_homed[Y_AXIS])
651
+            lcd_printPGM(PSTR("?"));
652
+          else 
653
+            #if DISABLED(DISABLE_REDUCED_ACCURACY_WARNING)
654
+              if (!axis_known_position[Y_AXIS])
655
+                lcd_printPGM(PSTR(" "));
656
+              else
657
+            #endif
658
+            lcd_printPGM(PSTR("Y"));
659
+        }
660
+        lcd.print(ftostr4sign(current_position[Y_AXIS]));
642
 
661
 
643
       #endif // EXTRUDERS > 1 || TEMP_SENSOR_BED != 0
662
       #endif // EXTRUDERS > 1 || TEMP_SENSOR_BED != 0
644
 
663
 
645
     #endif // LCD_WIDTH >= 20
664
     #endif // LCD_WIDTH >= 20
646
 
665
 
647
     lcd.setCursor(LCD_WIDTH - 8, 1);
666
     lcd.setCursor(LCD_WIDTH - 8, 1);
648
-    lcd_printPGM(PSTR("Z "));
649
-    if (axis_known_position[Z_AXIS])
650
-      lcd.print(ftostr32sp(current_position[Z_AXIS] + 0.00001));
651
-    else
652
-      lcd_printPGM(PSTR("---.--"));
667
+    if (blink & 1)
668
+      lcd_printPGM(PSTR("Z"));
669
+    else {
670
+      if (!axis_homed[Z_AXIS])
671
+        lcd_printPGM(PSTR("?"));
672
+      else 
673
+        #if DISABLED(DISABLE_REDUCED_ACCURACY_WARNING)
674
+          if (!axis_known_position[Z_AXIS])
675
+            lcd_printPGM(PSTR(" "));
676
+          else
677
+        #endif
678
+        lcd_printPGM(PSTR("Z"));
679
+    }
680
+    lcd.print(ftostr32sp(current_position[Z_AXIS] + 0.00001));
653
 
681
 
654
   #endif // LCD_HEIGHT > 2
682
   #endif // LCD_HEIGHT > 2
655
 
683
 

Loading…
Cancel
Save