Browse Source

Merge branch 'Marlin_v1' of https://github.com/ErikZalm/Marlin into Marlin_v1

neildarlow 11 years ago
parent
commit
bbe8fbe13d
5 changed files with 397 additions and 54 deletions
  1. 8
    0
      Marlin/Configuration_adv.h
  2. 2
    1
      Marlin/Marlin.h
  3. 62
    14
      Marlin/Marlin_main.cpp
  4. 159
    6
      Marlin/language.h
  5. 166
    33
      Marlin/ultralcd.cpp

+ 8
- 0
Marlin/Configuration_adv.h View File

239
 #define MANUAL_FEEDRATE {50*60, 50*60, 4*60, 60}  // set the speeds for manual moves (mm/min)
239
 #define MANUAL_FEEDRATE {50*60, 50*60, 4*60, 60}  // set the speeds for manual moves (mm/min)
240
 #endif
240
 #endif
241
 
241
 
242
+//Comment to disable setting feedrate multiplier via encoder
243
+#ifdef ULTIPANEL
244
+    #define ULTIPANEL_FEEDMULTIPLY
245
+#endif
246
+
242
 // minimum time in microseconds that a movement needs to take if the buffer is emptied.
247
 // minimum time in microseconds that a movement needs to take if the buffer is emptied.
243
 #define DEFAULT_MINSEGMENTTIME        20000
248
 #define DEFAULT_MINSEGMENTTIME        20000
244
 
249
 
279
 //=============================Additional Features===========================
284
 //=============================Additional Features===========================
280
 //===========================================================================
285
 //===========================================================================
281
 
286
 
287
+//#define CHDK 4        //Pin for triggering CHDK to take a picture see how to use it here http://captain-slow.dk/2014/03/09/3d-printing-timelapses/
288
+#define CHDK_DELAY 50 //How long in ms the pin should stay HIGH before going LOW again
289
+
282
 #define SD_FINISHED_STEPPERRELEASE true  //if sd support and the file is finished: disable steppers?
290
 #define SD_FINISHED_STEPPERRELEASE true  //if sd support and the file is finished: disable steppers?
283
 #define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the z enabled so your bed stays in place.
291
 #define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the z enabled so your bed stays in place.
284
 
292
 

+ 2
- 1
Marlin/Marlin.h View File

203
 extern float homing_feedrate[];
203
 extern float homing_feedrate[];
204
 extern bool axis_relative_modes[];
204
 extern bool axis_relative_modes[];
205
 extern int feedmultiply;
205
 extern int feedmultiply;
206
-extern int extrudemultiply; // Sets extrude multiply factor (in percent)
206
+extern int extrudemultiply; // Sets extrude multiply factor (in percent) for all extruders
207
+extern int extruder_multiply[EXTRUDERS]; // sets extrude multiply factor (in percent) for each extruder individually
207
 extern float volumetric_multiplier[EXTRUDERS]; // reciprocal of cross-sectional area of filament (in square millimeters), stored this way to reduce computational burden in planner
208
 extern float volumetric_multiplier[EXTRUDERS]; // reciprocal of cross-sectional area of filament (in square millimeters), stored this way to reduce computational burden in planner
208
 extern float current_position[NUM_AXIS] ;
209
 extern float current_position[NUM_AXIS] ;
209
 extern float add_homeing[3];
210
 extern float add_homeing[3];

+ 62
- 14
Marlin/Marlin_main.cpp View File

189
 int feedmultiply=100; //100->1 200->2
189
 int feedmultiply=100; //100->1 200->2
190
 int saved_feedmultiply;
190
 int saved_feedmultiply;
191
 int extrudemultiply=100; //100->1 200->2
191
 int extrudemultiply=100; //100->1 200->2
192
+int extruder_multiply[EXTRUDERS] = {100
193
+  #if EXTRUDERS > 1
194
+    , 100
195
+    #if EXTRUDERS > 2
196
+      , 100
197
+    #endif
198
+  #endif
199
+};
192
 float volumetric_multiplier[EXTRUDERS] = {1.0
200
 float volumetric_multiplier[EXTRUDERS] = {1.0
193
   #if EXTRUDERS > 1
201
   #if EXTRUDERS > 1
194
     , 1.0
202
     , 1.0
314
 bool CooldownNoWait = true;
322
 bool CooldownNoWait = true;
315
 bool target_direction;
323
 bool target_direction;
316
 
324
 
325
+//Insert variables if CHDK is defined
326
+#ifdef CHDK
327
+unsigned long chdkHigh = 0;
328
+boolean chdkActive = false;
329
+#endif
330
+
317
 //===========================================================================
331
 //===========================================================================
318
 //=============================Routines======================================
332
 //=============================Routines======================================
319
 //===========================================================================
333
 //===========================================================================
2422
     {
2436
     {
2423
       if(code_seen('S'))
2437
       if(code_seen('S'))
2424
       {
2438
       {
2425
-        extrudemultiply = code_value() ;
2439
+        int tmp_code = code_value();
2440
+        if (code_seen('T'))
2441
+        {
2442
+          if(setTargetedHotend(221)){
2443
+            break;
2444
+          }
2445
+          extruder_multiply[tmp_extruder] = tmp_code;
2446
+        }
2447
+        else
2448
+        {
2449
+          extrudemultiply = tmp_code ;
2450
+        }
2426
       }
2451
       }
2427
     }
2452
     }
2428
     break;
2453
     break;
2590
     #endif //PIDTEMP
2615
     #endif //PIDTEMP
2591
     case 240: // M240  Triggers a camera by emulating a Canon RC-1 : http://www.doc-diy.net/photo/rc-1_hacked/
2616
     case 240: // M240  Triggers a camera by emulating a Canon RC-1 : http://www.doc-diy.net/photo/rc-1_hacked/
2592
      {
2617
      {
2593
-      #if defined(PHOTOGRAPH_PIN) && PHOTOGRAPH_PIN > -1
2594
-        const uint8_t NUM_PULSES=16;
2595
-        const float PULSE_LENGTH=0.01524;
2596
-        for(int i=0; i < NUM_PULSES; i++) {
2597
-          WRITE(PHOTOGRAPH_PIN, HIGH);
2598
-          _delay_ms(PULSE_LENGTH);
2599
-          WRITE(PHOTOGRAPH_PIN, LOW);
2600
-          _delay_ms(PULSE_LENGTH);
2618
+     	#ifdef CHDK
2619
+       
2620
+         SET_OUTPUT(CHDK);
2621
+         WRITE(CHDK, HIGH);
2622
+         chdkHigh = millis();
2623
+         chdkActive = true;
2624
+       
2625
+       #else
2626
+     	
2627
+      	#if defined(PHOTOGRAPH_PIN) && PHOTOGRAPH_PIN > -1
2628
+	const uint8_t NUM_PULSES=16;
2629
+	const float PULSE_LENGTH=0.01524;
2630
+	for(int i=0; i < NUM_PULSES; i++) {
2631
+        WRITE(PHOTOGRAPH_PIN, HIGH);
2632
+        _delay_ms(PULSE_LENGTH);
2633
+        WRITE(PHOTOGRAPH_PIN, LOW);
2634
+        _delay_ms(PULSE_LENGTH);
2601
         }
2635
         }
2602
         delay(7.33);
2636
         delay(7.33);
2603
         for(int i=0; i < NUM_PULSES; i++) {
2637
         for(int i=0; i < NUM_PULSES; i++) {
2604
-          WRITE(PHOTOGRAPH_PIN, HIGH);
2605
-          _delay_ms(PULSE_LENGTH);
2606
-          WRITE(PHOTOGRAPH_PIN, LOW);
2607
-          _delay_ms(PULSE_LENGTH);
2638
+        WRITE(PHOTOGRAPH_PIN, HIGH);
2639
+        _delay_ms(PULSE_LENGTH);
2640
+        WRITE(PHOTOGRAPH_PIN, LOW);
2641
+        _delay_ms(PULSE_LENGTH);
2608
         }
2642
         }
2609
-      #endif
2643
+      	#endif
2644
+      #endif //chdk end if
2610
      }
2645
      }
2611
     break;
2646
     break;
2612
 #ifdef DOGLCD
2647
 #ifdef DOGLCD
3355
       }
3390
       }
3356
     }
3391
     }
3357
   }
3392
   }
3393
+  
3394
+  #ifdef CHDK //Check if pin should be set to LOW after M240 set it to HIGH
3395
+    if (chdkActive)
3396
+    {
3397
+      chdkActive = false;
3398
+      if (millis()-chdkHigh < CHDK_DELAY) return;
3399
+      WRITE(CHDK, LOW);
3400
+    }
3401
+  #endif
3402
+  
3358
   #if defined(KILL_PIN) && KILL_PIN > -1
3403
   #if defined(KILL_PIN) && KILL_PIN > -1
3359
     if( 0 == READ(KILL_PIN) )
3404
     if( 0 == READ(KILL_PIN) )
3360
       kill();
3405
       kill();
3522
         case 218:
3567
         case 218:
3523
           SERIAL_ECHO(MSG_M218_INVALID_EXTRUDER);
3568
           SERIAL_ECHO(MSG_M218_INVALID_EXTRUDER);
3524
           break;
3569
           break;
3570
+        case 221:
3571
+          SERIAL_ECHO(MSG_M221_INVALID_EXTRUDER);
3572
+          break;
3525
       }
3573
       }
3526
       SERIAL_ECHOLN(tmp_extruder);
3574
       SERIAL_ECHOLN(tmp_extruder);
3527
       return true;
3575
       return true;

+ 159
- 6
Marlin/language.h View File

77
 	#define MSG_AUTO_HOME "Auto home"
77
 	#define MSG_AUTO_HOME "Auto home"
78
 	#define MSG_SET_ORIGIN "Set origin"
78
 	#define MSG_SET_ORIGIN "Set origin"
79
 	#define MSG_PREHEAT_PLA "Preheat PLA"
79
 	#define MSG_PREHEAT_PLA "Preheat PLA"
80
+	#define MSG_PREHEAT_PLA0 "Preheat PLA 1"
81
+	#define MSG_PREHEAT_PLA1 "Preheat PLA 2"
82
+	#define MSG_PREHEAT_PLA2 "Preheat PLA 3"
83
+	#define MSG_PREHEAT_PLA012 "Preheat PLA All"
84
+	#define MSG_PREHEAT_PLA_BEDONLY "Preheat PLA Bed"
80
 	#define MSG_PREHEAT_PLA_SETTINGS "Preheat PLA conf"
85
 	#define MSG_PREHEAT_PLA_SETTINGS "Preheat PLA conf"
81
 	#define MSG_PREHEAT_ABS "Preheat ABS"
86
 	#define MSG_PREHEAT_ABS "Preheat ABS"
87
+	#define MSG_PREHEAT_ABS0 "Preheat ABS 1"
88
+	#define MSG_PREHEAT_ABS1 "Preheat ABS 2"
89
+	#define MSG_PREHEAT_ABS2 "Preheat ABS 3"
90
+	#define MSG_PREHEAT_ABS012 "Preheat ABS All"
91
+	#define MSG_PREHEAT_ABS_BEDONLY "Preheat ABS Bed"
82
 	#define MSG_PREHEAT_ABS_SETTINGS "Preheat ABS conf"
92
 	#define MSG_PREHEAT_ABS_SETTINGS "Preheat ABS conf"
83
 	#define MSG_COOLDOWN "Cooldown"
93
 	#define MSG_COOLDOWN "Cooldown"
84
 	#define MSG_SWITCH_PS_ON "Switch power on"
94
 	#define MSG_SWITCH_PS_ON "Switch power on"
100
 	#define MSG_BED "Bed"
110
 	#define MSG_BED "Bed"
101
 	#define MSG_FAN_SPEED "Fan speed"
111
 	#define MSG_FAN_SPEED "Fan speed"
102
 	#define MSG_FLOW "Flow"
112
 	#define MSG_FLOW "Flow"
113
+	#define MSG_FLOW0 "Flow 0"
114
+	#define MSG_FLOW1 "Flow 1"
115
+	#define MSG_FLOW2 "Flow 2"
103
 	#define MSG_CONTROL "Control"
116
 	#define MSG_CONTROL "Control"
104
 	#define MSG_MIN " \002 Min"
117
 	#define MSG_MIN " \002 Min"
105
 	#define MSG_MAX " \002 Max"
118
 	#define MSG_MAX " \002 Max"
192
 	#define MSG_M105_INVALID_EXTRUDER "M105 Invalid extruder "
205
 	#define MSG_M105_INVALID_EXTRUDER "M105 Invalid extruder "
193
 	#define MSG_M200_INVALID_EXTRUDER "M200 Invalid extruder "
206
 	#define MSG_M200_INVALID_EXTRUDER "M200 Invalid extruder "
194
 	#define MSG_M218_INVALID_EXTRUDER "M218 Invalid extruder "
207
 	#define MSG_M218_INVALID_EXTRUDER "M218 Invalid extruder "
208
+	#define MSG_M221_INVALID_EXTRUDER "M221 Invalid extruder "
195
 	#define MSG_ERR_NO_THERMISTORS "No thermistors - no temperature"
209
 	#define MSG_ERR_NO_THERMISTORS "No thermistors - no temperature"
196
 	#define MSG_M109_INVALID_EXTRUDER "M109 Invalid extruder "
210
 	#define MSG_M109_INVALID_EXTRUDER "M109 Invalid extruder "
197
 	#define MSG_HEATING "Heating..."
211
 	#define MSG_HEATING "Heating..."
247
 
261
 
248
 #if LANGUAGE_CHOICE == 2
262
 #if LANGUAGE_CHOICE == 2
249
 
263
 
250
-
251
 // LCD Menu Messages
264
 // LCD Menu Messages
252
 // Please note these are limited to 17 characters!
265
 // Please note these are limited to 17 characters!
253
 
266
 
260
 	#define MSG_AUTO_HOME "Auto. poz. zerowa"
273
 	#define MSG_AUTO_HOME "Auto. poz. zerowa"
261
 	#define MSG_SET_ORIGIN "Ustaw punkt zero"
274
 	#define MSG_SET_ORIGIN "Ustaw punkt zero"
262
 	#define MSG_PREHEAT_PLA "Rozgrzej PLA"
275
 	#define MSG_PREHEAT_PLA "Rozgrzej PLA"
276
+	#define MSG_PREHEAT_PLA0 "Rozgrzej PLA 1"
277
+	#define MSG_PREHEAT_PLA1 "Rozgrzej PLA 2"
278
+	#define MSG_PREHEAT_PLA2 "Rozgrzej PLA 3"
279
+	#define MSG_PREHEAT_PLA012 "Roz. PLA Wszystko"
280
+	#define MSG_PREHEAT_PLA_BEDONLY "Rozgrzej PLA Loze"
263
 	#define MSG_PREHEAT_PLA_SETTINGS "Ustaw. rozg. PLA"
281
 	#define MSG_PREHEAT_PLA_SETTINGS "Ustaw. rozg. PLA"
264
 	#define MSG_PREHEAT_ABS "Rozgrzej ABS"
282
 	#define MSG_PREHEAT_ABS "Rozgrzej ABS"
283
+	#define MSG_PREHEAT_ABS0 "Rozgrzej ABS 1"
284
+	#define MSG_PREHEAT_ABS1 "Rozgrzej ABS 2"
285
+	#define MSG_PREHEAT_ABS2 "Rozgrzej ABS 3"
286
+	#define MSG_PREHEAT_ABS012 "Roz. ABS Wszystko"
287
+	#define MSG_PREHEAT_ABS_BEDONLY "Rozgrzej ABS Loze"
265
 	#define MSG_PREHEAT_ABS_SETTINGS "Ustaw. rozg. ABS"
288
 	#define MSG_PREHEAT_ABS_SETTINGS "Ustaw. rozg. ABS"
266
 	#define MSG_COOLDOWN "Chlodzenie"
289
 	#define MSG_COOLDOWN "Chlodzenie"
267
 	#define MSG_SWITCH_PS_ON "Wlacz zasilacz"
290
 	#define MSG_SWITCH_PS_ON "Wlacz zasilacz"
283
 	#define MSG_BED "Loze"
306
 	#define MSG_BED "Loze"
284
 	#define MSG_FAN_SPEED "Obroty wiatraka"
307
 	#define MSG_FAN_SPEED "Obroty wiatraka"
285
 	#define MSG_FLOW "Przeplyw"
308
 	#define MSG_FLOW "Przeplyw"
309
+	#define MSG_FLOW0 "Przeplyw 0"
310
+	#define MSG_FLOW1 "Przeplyw 1"
311
+	#define MSG_FLOW2 "Przeplyw 2"
286
 	#define MSG_CONTROL "Kontrola"
312
 	#define MSG_CONTROL "Kontrola"
287
 	#define MSG_MIN " \002 Min"
313
 	#define MSG_MIN " \002 Min"
288
 	#define MSG_MAX " \002 Max"
314
 	#define MSG_MAX " \002 Max"
378
 	#define MSG_M105_INVALID_EXTRUDER "M105 Niepoprawny ekstruder "
404
 	#define MSG_M105_INVALID_EXTRUDER "M105 Niepoprawny ekstruder "
379
 	#define MSG_M200_INVALID_EXTRUDER "M200 Niepoprawny ekstruder "
405
 	#define MSG_M200_INVALID_EXTRUDER "M200 Niepoprawny ekstruder "
380
 	#define MSG_M218_INVALID_EXTRUDER "M218 Niepoprawny ekstruder "
406
 	#define MSG_M218_INVALID_EXTRUDER "M218 Niepoprawny ekstruder "
407
+	#define MSG_M221_INVALID_EXTRUDER "M221 Niepoprawny ekstruder "
381
 	#define MSG_ERR_NO_THERMISTORS "Brak termistorow - brak temperatury :("
408
 	#define MSG_ERR_NO_THERMISTORS "Brak termistorow - brak temperatury :("
382
 	#define MSG_M109_INVALID_EXTRUDER "M109 Niepoprawny ekstruder "
409
 	#define MSG_M109_INVALID_EXTRUDER "M109 Niepoprawny ekstruder "
383
 	#define MSG_HEATING "Nagrzewanie ekstrudera..."
410
 	#define MSG_HEATING "Nagrzewanie ekstrudera..."
445
 	#define MSG_AUTO_HOME "Home auto."
472
 	#define MSG_AUTO_HOME "Home auto."
446
 	#define MSG_SET_ORIGIN "Regler origine"
473
 	#define MSG_SET_ORIGIN "Regler origine"
447
 	#define MSG_PREHEAT_PLA " Prechauffage PLA"
474
 	#define MSG_PREHEAT_PLA " Prechauffage PLA"
448
-	#define MSG_PREHEAT_PLA_SETTINGS " Regl. prech. PLA"
475
+	#define MSG_PREHEAT_PLA0 "Prechauff. PLA 1"
476
+        #define MSG_PREHEAT_PLA1 "Prechauff. PLA 2"
477
+	#define MSG_PREHEAT_PLA2 "Prechauff. PLA 3"
478
+	#define MSG_PREHEAT_PLA012 "Prech. PLA Tout"
479
+	#define MSG_PREHEAT_PLA_BEDONLY "Prech. PLA Plateau"
480
+	#define MSG_PREHEAT_PLA_SETTINGS "Regl. prech. PLA"
449
 	#define MSG_PREHEAT_ABS "Prechauffage ABS"
481
 	#define MSG_PREHEAT_ABS "Prechauffage ABS"
482
+	#define MSG_PREHEAT_ABS0 "Prechauff. ABS 1"
483
+	#define MSG_PREHEAT_ABS1 "Prechauff. ABS 2"
484
+	#define MSG_PREHEAT_ABS2 "Prechauff. ABS 3"
485
+	#define MSG_PREHEAT_ABS012 "Prech. ABS Tout"
486
+	#define MSG_PREHEAT_ABS_BEDONLY "Prech. ABS Plateau"
450
 	#define MSG_PREHEAT_ABS_SETTINGS "Regl. prech. ABS"
487
 	#define MSG_PREHEAT_ABS_SETTINGS "Regl. prech. ABS"
451
 	#define MSG_COOLDOWN "Refroidir"
488
 	#define MSG_COOLDOWN "Refroidir"
452
 	#define MSG_SWITCH_PS_ON "Allumer alim."
489
 	#define MSG_SWITCH_PS_ON "Allumer alim."
470
 	#define MSG_BED "Plateau"
507
 	#define MSG_BED "Plateau"
471
 	#define MSG_FAN_SPEED "Vite. ventilateur"
508
 	#define MSG_FAN_SPEED "Vite. ventilateur"
472
 	#define MSG_FLOW "Flux"
509
 	#define MSG_FLOW "Flux"
510
+	#define MSG_FLOW0 "Flux 0"
511
+	#define MSG_FLOW1 "Flux 1"
512
+	#define MSG_FLOW2 "Flux 2"
473
 	#define MSG_CONTROL "Controler"
513
 	#define MSG_CONTROL "Controler"
474
 	#define MSG_MIN " \002 Min"
514
 	#define MSG_MIN " \002 Min"
475
 	#define MSG_MAX " \002 Max"
515
 	#define MSG_MAX " \002 Max"
563
 	#define MSG_M105_INVALID_EXTRUDER "M105 Extruder invalide"
603
 	#define MSG_M105_INVALID_EXTRUDER "M105 Extruder invalide"
564
 	#define MSG_M200_INVALID_EXTRUDER "M200 Extruder invalide"
604
 	#define MSG_M200_INVALID_EXTRUDER "M200 Extruder invalide"
565
 	#define MSG_M218_INVALID_EXTRUDER "M218 Extruder invalide"
605
 	#define MSG_M218_INVALID_EXTRUDER "M218 Extruder invalide"
606
+	#define MSG_M221_INVALID_EXTRUDER "M221 Extruder invalide"
566
 	#define MSG_ERR_NO_THERMISTORS "Pas de thermistor, pas de temperature"
607
 	#define MSG_ERR_NO_THERMISTORS "Pas de thermistor, pas de temperature"
567
 	#define MSG_M109_INVALID_EXTRUDER "M109 Extruder invalide "
608
 	#define MSG_M109_INVALID_EXTRUDER "M109 Extruder invalide "
568
 	#define MSG_HEATING "En chauffe..."
609
 	#define MSG_HEATING "En chauffe..."
631
 	#define MSG_AUTO_HOME        "Auto Nullpunkt"
672
 	#define MSG_AUTO_HOME        "Auto Nullpunkt"
632
 	#define MSG_SET_ORIGIN       "Setze Nullpunkt"
673
 	#define MSG_SET_ORIGIN       "Setze Nullpunkt"
633
 	#define MSG_PREHEAT_PLA      "Vorwärmen PLA"
674
 	#define MSG_PREHEAT_PLA      "Vorwärmen PLA"
675
+	#define MSG_PREHEAT_PLA0     "Vorwärmen PLA 1"
676
+	#define MSG_PREHEAT_PLA1     "Vorwärmen PLA 2"
677
+	#define MSG_PREHEAT_PLA2     "Vorwärmen PLA 3"
678
+	#define MSG_PREHEAT_PLA012   "Vorw. PLA Alle"
679
+	#define MSG_PREHEAT_PLA_BEDONLY "Vorw. PLA Bett"
634
 	#define MSG_PREHEAT_PLA_SETTINGS "Vorwärm. PLA Ein."
680
 	#define MSG_PREHEAT_PLA_SETTINGS "Vorwärm. PLA Ein."
635
 	#define MSG_PREHEAT_ABS      "Vorwärmen ABS"
681
 	#define MSG_PREHEAT_ABS      "Vorwärmen ABS"
682
+	#define MSG_PREHEAT_ABS0     "Vorwärmen ABS 1"
683
+	#define MSG_PREHEAT_ABS1     "Vorwärmen ABS 2"
684
+	#define MSG_PREHEAT_ABS2     "Vorwärmen ABS 3"
685
+	#define MSG_PREHEAT_ABS012   "Vorw. ABS Alle"
686
+	#define MSG_PREHEAT_ABS_BEDONLY "Vorw. ABS Bett"
636
 	#define MSG_PREHEAT_ABS_SETTINGS "Vorwärm. ABS Ein."
687
 	#define MSG_PREHEAT_ABS_SETTINGS "Vorwärm. ABS Ein."
637
 	#define MSG_COOLDOWN         "Abkühlen"
688
 	#define MSG_COOLDOWN         "Abkühlen"
638
 	#define MSG_SWITCH_PS_ON     "Switch Power On"
689
 	#define MSG_SWITCH_PS_ON     "Switch Power On"
654
 	#define MSG_BED              "Bett"
705
 	#define MSG_BED              "Bett"
655
 	#define MSG_FAN_SPEED        "Lüftergeschw."
706
 	#define MSG_FAN_SPEED        "Lüftergeschw."
656
 	#define MSG_FLOW             "Fluss"
707
 	#define MSG_FLOW             "Fluss"
708
+	#define MSG_FLOW0            "Fluss 0"
709
+	#define MSG_FLOW1            "Fluss 1"
710
+	#define MSG_FLOW2            "Fluss 2"
657
 	#define MSG_CONTROL          "Einstellungen"
711
 	#define MSG_CONTROL          "Einstellungen"
658
 	#define MSG_MIN              "\002 Min"
712
 	#define MSG_MIN              "\002 Min"
659
 	#define MSG_MAX              "\002 Max"
713
 	#define MSG_MAX              "\002 Max"
749
 	#define MSG_M105_INVALID_EXTRUDER "M105 Invalid extruder "
803
 	#define MSG_M105_INVALID_EXTRUDER "M105 Invalid extruder "
750
 	#define MSG_M200_INVALID_EXTRUDER "M200 Invalid extruder "
804
 	#define MSG_M200_INVALID_EXTRUDER "M200 Invalid extruder "
751
 	#define MSG_M218_INVALID_EXTRUDER "M218 Invalid extruder "
805
 	#define MSG_M218_INVALID_EXTRUDER "M218 Invalid extruder "
806
+	#define MSG_M221_INVALID_EXTRUDER "M221 Invalid extruder "
752
 	#define MSG_ERR_NO_THERMISTORS "No thermistors - no temp"
807
 	#define MSG_ERR_NO_THERMISTORS "No thermistors - no temp"
753
 	#define MSG_M109_INVALID_EXTRUDER "M109 Invalid extruder "
808
 	#define MSG_M109_INVALID_EXTRUDER "M109 Invalid extruder "
754
 	#define MSG_HEATING "Heating..."
809
 	#define MSG_HEATING "Heating..."
816
 	#define MSG_AUTO_HOME "Llevar al origen"
871
 	#define MSG_AUTO_HOME "Llevar al origen"
817
 	#define MSG_SET_ORIGIN "Establecer cero"
872
 	#define MSG_SET_ORIGIN "Establecer cero"
818
 	#define MSG_PREHEAT_PLA "Precalentar PLA"
873
 	#define MSG_PREHEAT_PLA "Precalentar PLA"
874
+	#define MSG_PREHEAT_PLA0 "Precalentar PLA 1"
875
+	#define MSG_PREHEAT_PLA1 "Precalentar PLA 2"
876
+	#define MSG_PREHEAT_PLA2 "Precalentar PLA 3"
877
+	#define MSG_PREHEAT_PLA012 "Precal. PLA Todo"
878
+	#define MSG_PREHEAT_PLA_BEDONLY "Precal. PLA Base"
819
 	#define MSG_PREHEAT_PLA_SETTINGS "Ajustar temp. PLA"
879
 	#define MSG_PREHEAT_PLA_SETTINGS "Ajustar temp. PLA"
820
 	#define MSG_PREHEAT_ABS "Precalentar ABS"
880
 	#define MSG_PREHEAT_ABS "Precalentar ABS"
881
+	#define MSG_PREHEAT_ABS0 "Precalentar ABS 1"
882
+	#define MSG_PREHEAT_ABS1 "Precalentar ABS 2"
883
+	#define MSG_PREHEAT_ABS2 "Precalentar ABS 3"
884
+	#define MSG_PREHEAT_ABS012 "Precal. ABS Todo"
885
+	#define MSG_PREHEAT_ABS_BEDONLY "Precal. ABS Base"
821
 	#define MSG_PREHEAT_ABS_SETTINGS "Ajustar temp. ABS"
886
 	#define MSG_PREHEAT_ABS_SETTINGS "Ajustar temp. ABS"
822
 	#define MSG_COOLDOWN "Enfriar"
887
 	#define MSG_COOLDOWN "Enfriar"
823
 	#define MSG_SWITCH_PS_ON "Switch Power On"
888
 	#define MSG_SWITCH_PS_ON "Switch Power On"
839
 	#define MSG_BED "Base"
904
 	#define MSG_BED "Base"
840
 	#define MSG_FAN_SPEED "Ventilador"
905
 	#define MSG_FAN_SPEED "Ventilador"
841
 	#define MSG_FLOW "Flujo"
906
 	#define MSG_FLOW "Flujo"
907
+	#define MSG_FLOW0 "Flujo 0"
908
+	#define MSG_FLOW1 "Flujo 1"
909
+	#define MSG_FLOW2 "Flujo 2"
842
 	#define MSG_CONTROL "Control"
910
 	#define MSG_CONTROL "Control"
843
 	#define MSG_MIN "\002 Min"
911
 	#define MSG_MIN "\002 Min"
844
 	#define MSG_MAX "\002 Max"
912
 	#define MSG_MAX "\002 Max"
940
 	#define MSG_M105_INVALID_EXTRUDER "M105 Extrusor Invalido "
1008
 	#define MSG_M105_INVALID_EXTRUDER "M105 Extrusor Invalido "
941
 	#define MSG_M200_INVALID_EXTRUDER "M200 Extrusor Invalido "
1009
 	#define MSG_M200_INVALID_EXTRUDER "M200 Extrusor Invalido "
942
 	#define MSG_M218_INVALID_EXTRUDER "M218 Extrusor Invalido "
1010
 	#define MSG_M218_INVALID_EXTRUDER "M218 Extrusor Invalido "
1011
+	#define MSG_M221_INVALID_EXTRUDER "M221 Extrusor Invalido "
943
 	#define MSG_ERR_NO_THERMISTORS "No hay termistores - no temp"
1012
 	#define MSG_ERR_NO_THERMISTORS "No hay termistores - no temp"
944
 	#define MSG_M109_INVALID_EXTRUDER "M109 Extrusor Invalido "
1013
 	#define MSG_M109_INVALID_EXTRUDER "M109 Extrusor Invalido "
945
 	#define MSG_HEATING "Calentando..."
1014
 	#define MSG_HEATING "Calentando..."
997
 // LCD Menu Messages
1066
 // LCD Menu Messages
998
 // Please note these are limited to 17 characters!
1067
 // Please note these are limited to 17 characters!
999
 
1068
 
1000
-	#define WELCOME_MSG MACHINE_NAME			" Готов."
1069
+	#define WELCOME_MSG MACHINE_NAME			        "Готов."
1001
 	#define MSG_SD_INSERTED						"Карта вставлена"
1070
 	#define MSG_SD_INSERTED						"Карта вставлена"
1002
 	#define MSG_SD_REMOVED						"Карта извлечена"
1071
 	#define MSG_SD_REMOVED						"Карта извлечена"
1003
-	#define MSG_MAIN							"Меню            \003"
1072
+	#define MSG_MAIN							"Меню \003"
1004
 	#define MSG_AUTOSTART						"Автостарт"
1073
 	#define MSG_AUTOSTART						"Автостарт"
1005
 	#define MSG_DISABLE_STEPPERS 				"Выкл. двигатели"
1074
 	#define MSG_DISABLE_STEPPERS 				"Выкл. двигатели"
1006
 	#define MSG_AUTO_HOME						"Парковка"
1075
 	#define MSG_AUTO_HOME						"Парковка"
1007
 	#define MSG_SET_ORIGIN						"Запомнить ноль"
1076
 	#define MSG_SET_ORIGIN						"Запомнить ноль"
1008
 	#define MSG_PREHEAT_PLA 					"Преднагрев PLA"
1077
 	#define MSG_PREHEAT_PLA 					"Преднагрев PLA"
1078
+	#define MSG_PREHEAT_PLA0					"Преднагрев PLA0"
1079
+	#define MSG_PREHEAT_PLA1					"Преднагрев PLA1"
1080
+	#define MSG_PREHEAT_PLA2					"Преднагрев PLA2"
1081
+	#define MSG_PREHEAT_PLA012 					"Преднаг. PLA все"
1082
+	#define MSG_PREHEAT_PLA_BEDONLY 			"Пред. PLA Кровать"
1009
 	#define MSG_PREHEAT_PLA_SETTINGS  			"Настройки PLA"
1083
 	#define MSG_PREHEAT_PLA_SETTINGS  			"Настройки PLA"
1010
 	#define MSG_PREHEAT_ABS						"Преднагрев ABS"
1084
 	#define MSG_PREHEAT_ABS						"Преднагрев ABS"
1085
+	#define MSG_PREHEAT_ABS0					"Преднагрев ABS0"
1086
+	#define MSG_PREHEAT_ABS1					"Преднагрев ABS1"
1087
+	#define MSG_PREHEAT_ABS2					"Преднагрев ABS2"
1088
+	#define MSG_PREHEAT_ABS012 					"Преднаг. ABS все "
1089
+	#define MSG_PREHEAT_ABS_BEDONLY 			"Пред. ABS Кровать"
1011
 	#define MSG_PREHEAT_ABS_SETTINGS  			"Настройки ABS"
1090
 	#define MSG_PREHEAT_ABS_SETTINGS  			"Настройки ABS"
1012
 	#define MSG_COOLDOWN						"Охлаждение"
1091
 	#define MSG_COOLDOWN						"Охлаждение"
1013
 	#define MSG_SWITCH_PS_ON					"Switch Power On"
1092
 	#define MSG_SWITCH_PS_ON					"Switch Power On"
1029
 	#define MSG_BED								"\002 Кровать:"
1108
 	#define MSG_BED								"\002 Кровать:"
1030
 	#define MSG_FAN_SPEED						"Куллер:"
1109
 	#define MSG_FAN_SPEED						"Куллер:"
1031
 	#define MSG_FLOW							"Поток:"
1110
 	#define MSG_FLOW							"Поток:"
1111
+	#define MSG_FLOW0 " Поток0:"
1112
+	#define MSG_FLOW1 " Поток1:"
1113
+	#define MSG_FLOW2 " Поток2:"
1032
 	#define MSG_CONTROL							"Настройки \003"
1114
 	#define MSG_CONTROL							"Настройки \003"
1033
 	#define MSG_MIN								"\002 Минимум:"
1115
 	#define MSG_MIN								"\002 Минимум:"
1034
 	#define MSG_MAX								"\002 Максимум:"
1116
 	#define MSG_MAX								"\002 Максимум:"
1068
 	#define MSG_WATCH							"Обзор           \003"
1150
 	#define MSG_WATCH							"Обзор           \003"
1069
 	#define MSG_PREPARE							"Действия        \x7E"
1151
 	#define MSG_PREPARE							"Действия        \x7E"
1070
 	#define MSG_TUNE							"Настройки       \x7E"
1152
 	#define MSG_TUNE							"Настройки       \x7E"
1071
-	#define MSG_RESUME_PRINT  					"Продолжить печать"
1072
-	#define MSG_RESUME_PRINT					"Продолжить печать"
1153
+	#define MSG_PAUSE_PRINT  					"Продолжить печать"
1154
+	#define MSG_RESUME_PRINT					"возобн. печать"
1073
 	#define MSG_STOP_PRINT 						"Остановить печать"
1155
 	#define MSG_STOP_PRINT 						"Остановить печать"
1074
 	#define MSG_CARD_MENU						"Меню карты      \x7E"
1156
 	#define MSG_CARD_MENU						"Меню карты      \x7E"
1075
 	#define MSG_NO_CARD							"Нет карты"
1157
 	#define MSG_NO_CARD							"Нет карты"
1122
 	#define MSG_M105_INVALID_EXTRUDER			"M105 ошибка экструдера "
1204
 	#define MSG_M105_INVALID_EXTRUDER			"M105 ошибка экструдера "
1123
 	#define MSG_M200_INVALID_EXTRUDER			"M200 ошибка экструдера "
1205
 	#define MSG_M200_INVALID_EXTRUDER			"M200 ошибка экструдера "
1124
 	#define MSG_M218_INVALID_EXTRUDER			"M218 ошибка экструдера "
1206
 	#define MSG_M218_INVALID_EXTRUDER			"M218 ошибка экструдера "
1207
+	#define MSG_M221_INVALID_EXTRUDER			"M221 ошибка экструдера "
1125
 	#define MSG_ERR_NO_THERMISTORS				"Нет термистра - нет температуры"
1208
 	#define MSG_ERR_NO_THERMISTORS				"Нет термистра - нет температуры"
1126
 	#define MSG_M109_INVALID_EXTRUDER			"M109 ошибка экструдера "
1209
 	#define MSG_M109_INVALID_EXTRUDER			"M109 ошибка экструдера "
1127
 	#define MSG_HEATING							"Нагрев...  "
1210
 	#define MSG_HEATING							"Нагрев...  "
1187
 	#define MSG_AUTO_HOME            "Auto Home"
1270
 	#define MSG_AUTO_HOME            "Auto Home"
1188
 	#define MSG_SET_ORIGIN           "Imposta Origine"
1271
 	#define MSG_SET_ORIGIN           "Imposta Origine"
1189
 	#define MSG_PREHEAT_PLA          "Preriscalda PLA"
1272
 	#define MSG_PREHEAT_PLA          "Preriscalda PLA"
1273
+	#define MSG_PREHEAT_PLA0         "Preriscalda PLA 1"
1274
+	#define MSG_PREHEAT_PLA1         "Preriscalda PLA 2"
1275
+	#define MSG_PREHEAT_PLA2         "Preriscalda PLA 3"
1276
+	#define MSG_PREHEAT_PLA012       "Preris. PLA Tutto"
1277
+	#define MSG_PREHEAT_PLA_BEDONLY  "Preri. PLA Piatto"
1190
 	#define MSG_PREHEAT_PLA_SETTINGS "Preris. PLA Conf"
1278
 	#define MSG_PREHEAT_PLA_SETTINGS "Preris. PLA Conf"
1191
 	#define MSG_PREHEAT_ABS          "Preriscalda ABS"
1279
 	#define MSG_PREHEAT_ABS          "Preriscalda ABS"
1280
+	#define MSG_PREHEAT_ABS0         "Preriscalda ABS 1"
1281
+	#define MSG_PREHEAT_ABS1         "Preriscalda ABS 2"
1282
+	#define MSG_PREHEAT_ABS2         "Preriscalda ABS 3"
1283
+	#define MSG_PREHEAT_ABS012       "Preris. ABS Tutto"
1284
+	#define MSG_PREHEAT_ABS_BEDONLY  "Preri. ABS Piatto"
1192
 	#define MSG_PREHEAT_ABS_SETTINGS "Preris. ABS Conf"
1285
 	#define MSG_PREHEAT_ABS_SETTINGS "Preris. ABS Conf"
1193
 	#define MSG_COOLDOWN             "Raffredda"
1286
 	#define MSG_COOLDOWN             "Raffredda"
1194
 	#define MSG_SWITCH_PS_ON         "Switch Power On"
1287
 	#define MSG_SWITCH_PS_ON         "Switch Power On"
1210
 	#define MSG_BED                  "Piatto"
1303
 	#define MSG_BED                  "Piatto"
1211
 	#define MSG_FAN_SPEED            "Ventola"
1304
 	#define MSG_FAN_SPEED            "Ventola"
1212
 	#define MSG_FLOW                 "Flusso"
1305
 	#define MSG_FLOW                 "Flusso"
1306
+	#define MSG_FLOW0                "Flusso 0"
1307
+	#define MSG_FLOW1                "Flusso 1"
1308
+	#define MSG_FLOW2                "Flusso 2"
1213
 	#define MSG_CONTROL              "Controllo"
1309
 	#define MSG_CONTROL              "Controllo"
1214
 	#define MSG_MIN                  " \002 Min:"
1310
 	#define MSG_MIN                  " \002 Min:"
1215
 	#define MSG_MAX                  " \002 Max:"
1311
 	#define MSG_MAX                  " \002 Max:"
1303
 	#define MSG_M105_INVALID_EXTRUDER "M105 Estrusore non valido "
1399
 	#define MSG_M105_INVALID_EXTRUDER "M105 Estrusore non valido "
1304
 	#define MSG_M200_INVALID_EXTRUDER "M200 Estrusore non valido "
1400
 	#define MSG_M200_INVALID_EXTRUDER "M200 Estrusore non valido "
1305
 	#define MSG_M218_INVALID_EXTRUDER "M218 Estrusore non valido "
1401
 	#define MSG_M218_INVALID_EXTRUDER "M218 Estrusore non valido "
1402
+	#define MSG_M221_INVALID_EXTRUDER "M221 Estrusore non valido "
1306
 	#define MSG_ERR_NO_THERMISTORS   "Nessun Termistore - nessuna temperatura"
1403
 	#define MSG_ERR_NO_THERMISTORS   "Nessun Termistore - nessuna temperatura"
1307
 	#define MSG_M109_INVALID_EXTRUDER "M109 Estrusore non valido "
1404
 	#define MSG_M109_INVALID_EXTRUDER "M109 Estrusore non valido "
1308
 	#define MSG_HEATING              "Riscaldamento..."
1405
 	#define MSG_HEATING              "Riscaldamento..."
1370
 	#define MSG_AUTO_HOME "Ir para origen"
1467
 	#define MSG_AUTO_HOME "Ir para origen"
1371
 	#define MSG_SET_ORIGIN "Estabelecer orig."
1468
 	#define MSG_SET_ORIGIN "Estabelecer orig."
1372
 	#define MSG_PREHEAT_PLA "Pre-aquecer PLA"
1469
 	#define MSG_PREHEAT_PLA "Pre-aquecer PLA"
1470
+	#define MSG_PREHEAT_PLA0 " pre-aquecer PLA 1"
1471
+	#define MSG_PREHEAT_PLA1 " pre-aquecer PLA 2"
1472
+	#define MSG_PREHEAT_PLA2 " pre-aquecer PLA 3"
1473
+	#define MSG_PREHEAT_PLA012 " pre-aq. PLA Tudo"
1474
+	#define MSG_PREHEAT_PLA_BEDONLY  " pre-aq. PLA \002Base"
1373
 	#define MSG_PREHEAT_PLA_SETTINGS "PLA setting"
1475
 	#define MSG_PREHEAT_PLA_SETTINGS "PLA setting"
1374
 	#define MSG_PREHEAT_ABS "Pre-aquecer ABS"
1476
 	#define MSG_PREHEAT_ABS "Pre-aquecer ABS"
1477
+	#define MSG_PREHEAT_ABS0 " pre-aquecer ABS 1"
1478
+	#define MSG_PREHEAT_ABS1 " pre-aquecer ABS 2"
1479
+	#define MSG_PREHEAT_ABS2 " pre-aquecer ABS 3"
1480
+	#define MSG_PREHEAT_ABS012 " pre-aq. ABS Tudo"
1481
+	#define MSG_PREHEAT_ABS_BEDONLY  " pre-aq. ABS \002Base"
1375
 	#define MSG_PREHEAT_ABS_SETTINGS "ABS setting"
1482
 	#define MSG_PREHEAT_ABS_SETTINGS "ABS setting"
1376
 	#define MSG_COOLDOWN "Esfriar"
1483
 	#define MSG_COOLDOWN "Esfriar"
1377
 	#define MSG_SWITCH_PS_ON "Switch Power On"
1484
 	#define MSG_SWITCH_PS_ON "Switch Power On"
1395
 	#define MSG_BED "\002Base:"
1502
 	#define MSG_BED "\002Base:"
1396
 	#define MSG_FAN_SPEED "Velocidade vento."
1503
 	#define MSG_FAN_SPEED "Velocidade vento."
1397
 	#define MSG_FLOW "Fluxo:"
1504
 	#define MSG_FLOW "Fluxo:"
1505
+	#define MSG_FLOW0 "Fluxo0:"
1506
+	#define MSG_FLOW1 "Fluxo1:"
1507
+	#define MSG_FLOW2 "Fluxo2:"
1398
 	#define MSG_CONTROL "Controle \003"
1508
 	#define MSG_CONTROL "Controle \003"
1399
 	#define MSG_MIN "\002 Min:"
1509
 	#define MSG_MIN "\002 Min:"
1400
 	#define MSG_MAX "\002 Max:"
1510
 	#define MSG_MAX "\002 Max:"
1492
 	#define MSG_M105_INVALID_EXTRUDER "M105 Extrusor inválido "
1602
 	#define MSG_M105_INVALID_EXTRUDER "M105 Extrusor inválido "
1493
 	#define MSG_M200_INVALID_EXTRUDER "M200 Extrusor inválido "
1603
 	#define MSG_M200_INVALID_EXTRUDER "M200 Extrusor inválido "
1494
 	#define MSG_M218_INVALID_EXTRUDER "M218 Extrusor inválido "
1604
 	#define MSG_M218_INVALID_EXTRUDER "M218 Extrusor inválido "
1605
+	#define MSG_M221_INVALID_EXTRUDER "M221 Extrusor inválido "
1495
 	#define MSG_ERR_NO_THERMISTORS "Nao ha termistor - no temp"
1606
 	#define MSG_ERR_NO_THERMISTORS "Nao ha termistor - no temp"
1496
 	#define MSG_M109_INVALID_EXTRUDER "M109 Extrusor inválido "
1607
 	#define MSG_M109_INVALID_EXTRUDER "M109 Extrusor inválido "
1497
 	#define MSG_HEATING "Aquecendo..."
1608
 	#define MSG_HEATING "Aquecendo..."
1560
 	#define MSG_AUTO_HOME "Aja referenssiin"
1671
 	#define MSG_AUTO_HOME "Aja referenssiin"
1561
 	#define MSG_SET_ORIGIN "Aseta origo"
1672
 	#define MSG_SET_ORIGIN "Aseta origo"
1562
 	#define MSG_PREHEAT_PLA "Esilammita PLA"
1673
 	#define MSG_PREHEAT_PLA "Esilammita PLA"
1674
+	#define MSG_PREHEAT_PLA0 "Esilammita PLA 1"
1675
+	#define MSG_PREHEAT_PLA1 "Esilammita PLA 2"
1676
+	#define MSG_PREHEAT_PLA2 "Esilammita PLA 3"
1677
+	#define MSG_PREHEAT_PLA012 "Esila. PLA Kaikki"
1678
+	#define MSG_PREHEAT_PLA_BEDONLY  "Esila. PLA Alusta"
1563
 	#define MSG_PREHEAT_PLA_SETTINGS "Esilamm. PLA konf"
1679
 	#define MSG_PREHEAT_PLA_SETTINGS "Esilamm. PLA konf"
1564
 	#define MSG_PREHEAT_ABS "Esilammita ABS"
1680
 	#define MSG_PREHEAT_ABS "Esilammita ABS"
1681
+	#define MSG_PREHEAT_ABS0 "Esilammita ABS 1"
1682
+	#define MSG_PREHEAT_ABS1 "Esilammita ABS 2"
1683
+	#define MSG_PREHEAT_ABS2 "Esilammita ABS 3"
1684
+	#define MSG_PREHEAT_ABS012 "Esila. ABS Kaikki"
1685
+	#define MSG_PREHEAT_ABS_BEDONLY  "Esila. ABS Alusta"
1565
 	#define MSG_PREHEAT_ABS_SETTINGS "Esilamm. ABS konf"
1686
 	#define MSG_PREHEAT_ABS_SETTINGS "Esilamm. ABS konf"
1566
 	#define MSG_COOLDOWN "Jaahdyta"
1687
 	#define MSG_COOLDOWN "Jaahdyta"
1567
 	#define MSG_SWITCH_PS_ON "Virta paalle"
1688
 	#define MSG_SWITCH_PS_ON "Virta paalle"
1583
 	#define MSG_BED "Alusta"
1704
 	#define MSG_BED "Alusta"
1584
 	#define MSG_FAN_SPEED "Tuul. nopeus"
1705
 	#define MSG_FAN_SPEED "Tuul. nopeus"
1585
 	#define MSG_FLOW "Virtaus"
1706
 	#define MSG_FLOW "Virtaus"
1707
+	#define MSG_FLOW0 "Virtaus 0"
1708
+	#define MSG_FLOW1 "Virtaus 1"
1709
+	#define MSG_FLOW2 "Virtaus 2"
1586
 	#define MSG_CONTROL "Kontrolli"
1710
 	#define MSG_CONTROL "Kontrolli"
1587
 	#define MSG_MIN " \002 Min"
1711
 	#define MSG_MIN " \002 Min"
1588
 	#define MSG_MAX " \002 Max"
1712
 	#define MSG_MAX " \002 Max"
1675
 	#define MSG_M105_INVALID_EXTRUDER "M105 Virheellinen suutin "
1799
 	#define MSG_M105_INVALID_EXTRUDER "M105 Virheellinen suutin "
1676
 	#define MSG_M200_INVALID_EXTRUDER "M200 Virheellinen suutin "
1800
 	#define MSG_M200_INVALID_EXTRUDER "M200 Virheellinen suutin "
1677
 	#define MSG_M218_INVALID_EXTRUDER "M218 Virheellinen suutin "
1801
 	#define MSG_M218_INVALID_EXTRUDER "M218 Virheellinen suutin "
1802
+	#define MSG_M221_INVALID_EXTRUDER "M221 Virheellinen suutin "
1678
 	#define MSG_ERR_NO_THERMISTORS "Ei termistoreja - ei lampotiloja"
1803
 	#define MSG_ERR_NO_THERMISTORS "Ei termistoreja - ei lampotiloja"
1679
 	#define MSG_M109_INVALID_EXTRUDER "M109 Virheellinen suutin "
1804
 	#define MSG_M109_INVALID_EXTRUDER "M109 Virheellinen suutin "
1680
 	#define MSG_HEATING "Lammitan..."
1805
 	#define MSG_HEATING "Lammitan..."
1743
 	#define MSG_AUTO_HOME "Levar a l'orichen"
1868
 	#define MSG_AUTO_HOME "Levar a l'orichen"
1744
 	#define MSG_SET_ORIGIN "Establir zero"
1869
 	#define MSG_SET_ORIGIN "Establir zero"
1745
 	#define MSG_PREHEAT_PLA "Precalentar PLA"
1870
 	#define MSG_PREHEAT_PLA "Precalentar PLA"
1871
+	#define MSG_PREHEAT_PLA0 "Precalentar PLA0"
1872
+	#define MSG_PREHEAT_PLA1 "Precalentar PLA1"
1873
+	#define MSG_PREHEAT_PLA2 "Precalentar PLA2"
1874
+	#define MSG_PREHEAT_PLA012 "Precalentar PLA a"
1875
+	#define MSG_PREHEAT_PLA_BEDONLY  "Prec. PLA Base"
1746
 	#define MSG_PREHEAT_PLA_SETTINGS "Achustar tem. PLA"
1876
 	#define MSG_PREHEAT_PLA_SETTINGS "Achustar tem. PLA"
1747
 	#define MSG_PREHEAT_ABS "Precalentar ABS"
1877
 	#define MSG_PREHEAT_ABS "Precalentar ABS"
1878
+	#define MSG_PREHEAT_ABS0 "Precalentar ABS0"
1879
+	#define MSG_PREHEAT_ABS1 "Precalentar ABS1"
1880
+	#define MSG_PREHEAT_ABS2 "Precalentar ABS2"
1881
+	#define MSG_PREHEAT_ABS012 "Precalentar ABS a"
1882
+	#define MSG_PREHEAT_ABS_BEDONLY  "Prec. ABS Base"
1748
 	#define MSG_PREHEAT_ABS_SETTINGS "Achustar tem. ABS"
1883
 	#define MSG_PREHEAT_ABS_SETTINGS "Achustar tem. ABS"
1749
 	#define MSG_COOLDOWN "Enfriar"
1884
 	#define MSG_COOLDOWN "Enfriar"
1750
 	#define MSG_SWITCH_PS_ON "Enchegar Fuent"
1885
 	#define MSG_SWITCH_PS_ON "Enchegar Fuent"
1766
 	#define MSG_BED "Base"
1901
 	#define MSG_BED "Base"
1767
 	#define MSG_FAN_SPEED "Ixoriador"
1902
 	#define MSG_FAN_SPEED "Ixoriador"
1768
 	#define MSG_FLOW "Fluxo"
1903
 	#define MSG_FLOW "Fluxo"
1904
+	#define MSG_FLOW0 "Fluxo 0"
1905
+	#define MSG_FLOW1 "Fluxo 1"
1906
+	#define MSG_FLOW2 "Fluxo 2"
1769
 	#define MSG_CONTROL "Control"
1907
 	#define MSG_CONTROL "Control"
1770
 	#define MSG_MIN "\002 Min"
1908
 	#define MSG_MIN "\002 Min"
1771
 	#define MSG_MAX "\002 Max"
1909
 	#define MSG_MAX "\002 Max"
1867
 	#define MSG_M105_INVALID_EXTRUDER "M105 Extrusor Invalido "
2005
 	#define MSG_M105_INVALID_EXTRUDER "M105 Extrusor Invalido "
1868
 	#define MSG_M200_INVALID_EXTRUDER "M200 Extrusor Invalido "
2006
 	#define MSG_M200_INVALID_EXTRUDER "M200 Extrusor Invalido "
1869
 	#define MSG_M218_INVALID_EXTRUDER "M218 Extrusor Invalido "
2007
 	#define MSG_M218_INVALID_EXTRUDER "M218 Extrusor Invalido "
2008
+	#define MSG_M221_INVALID_EXTRUDER "M221 Extrusor Invalido "
1870
 	#define MSG_ERR_NO_THERMISTORS "No i hai termistores - no temp"
2009
 	#define MSG_ERR_NO_THERMISTORS "No i hai termistores - no temp"
1871
 	#define MSG_M109_INVALID_EXTRUDER "M109 Extrusor Invalido "
2010
 	#define MSG_M109_INVALID_EXTRUDER "M109 Extrusor Invalido "
1872
 	#define MSG_HEATING "Calentando..."
2011
 	#define MSG_HEATING "Calentando..."
1932
 	#define MSG_AUTO_HOME "Auto home"
2071
 	#define MSG_AUTO_HOME "Auto home"
1933
 	#define MSG_SET_ORIGIN "Nulpunt instellen"
2072
 	#define MSG_SET_ORIGIN "Nulpunt instellen"
1934
 	#define MSG_PREHEAT_PLA "PLA voorverwarmen"
2073
 	#define MSG_PREHEAT_PLA "PLA voorverwarmen"
2074
+	#define MSG_PREHEAT_PLA0 "PLA voorverw. 0"
2075
+	#define MSG_PREHEAT_PLA1 "PLA voorverw. 1"
2076
+	#define MSG_PREHEAT_PLA2 "PLA voorverw. 2"
2077
+	#define MSG_PREHEAT_PLA012 "PLA voorverw. aan"
2078
+	#define MSG_PREHEAT_PLA_BEDONLY  "PLA voorverw. Bed"
1935
 	#define MSG_PREHEAT_PLA_SETTINGS "PLA verw. conf"
2079
 	#define MSG_PREHEAT_PLA_SETTINGS "PLA verw. conf"
1936
 	#define MSG_PREHEAT_ABS "ABS voorverwarmen"
2080
 	#define MSG_PREHEAT_ABS "ABS voorverwarmen"
2081
+	#define MSG_PREHEAT_ABS0 "ABS voorverw. 0"
2082
+	#define MSG_PREHEAT_ABS1 "ABS voorverw. 1"
2083
+	#define MSG_PREHEAT_ABS2 "ABS voorverw. 2"
2084
+	#define MSG_PREHEAT_ABS012 "ABS voorverw. aan"
2085
+	#define MSG_PREHEAT_ABS_BEDONLY  "ABS voorverw. Bed"
1937
 	#define MSG_PREHEAT_ABS_SETTINGS "ABS verw. conf"
2086
 	#define MSG_PREHEAT_ABS_SETTINGS "ABS verw. conf"
1938
 	#define MSG_COOLDOWN "Afkoelen"
2087
 	#define MSG_COOLDOWN "Afkoelen"
1939
 	#define MSG_SWITCH_PS_ON "Stroom aan"
2088
 	#define MSG_SWITCH_PS_ON "Stroom aan"
1955
 	#define MSG_BED "Bed"
2104
 	#define MSG_BED "Bed"
1956
 	#define MSG_FAN_SPEED "Fan snelheid"
2105
 	#define MSG_FAN_SPEED "Fan snelheid"
1957
 	#define MSG_FLOW "Flow"
2106
 	#define MSG_FLOW "Flow"
2107
+	#define MSG_FLOW0 "Flow 0"
2108
+	#define MSG_FLOW1 "Flow 1"
2109
+	#define MSG_FLOW2 "Flow 2"
1958
 	#define MSG_CONTROL "Control"
2110
 	#define MSG_CONTROL "Control"
1959
 	#define MSG_MIN " \002 Min"
2111
 	#define MSG_MIN " \002 Min"
1960
 	#define MSG_MAX " \002 Max"
2112
 	#define MSG_MAX " \002 Max"
2047
 	#define MSG_M105_INVALID_EXTRUDER "M105 Ongeldige extruder "
2199
 	#define MSG_M105_INVALID_EXTRUDER "M105 Ongeldige extruder "
2048
 	#define MSG_M200_INVALID_EXTRUDER "M200 Ongeldige extruder "
2200
 	#define MSG_M200_INVALID_EXTRUDER "M200 Ongeldige extruder "
2049
 	#define MSG_M218_INVALID_EXTRUDER "M218 Ongeldige extruder "
2201
 	#define MSG_M218_INVALID_EXTRUDER "M218 Ongeldige extruder "
2202
+	#define MSG_M221_INVALID_EXTRUDER "M221 Ongeldige extruder "
2050
 	#define MSG_ERR_NO_THERMISTORS "Geen thermistors - geen temperatuur"
2203
 	#define MSG_ERR_NO_THERMISTORS "Geen thermistors - geen temperatuur"
2051
 	#define MSG_M109_INVALID_EXTRUDER "M109 Ongeldige extruder "
2204
 	#define MSG_M109_INVALID_EXTRUDER "M109 Ongeldige extruder "
2052
 	#define MSG_HEATING "Opwarmen..."
2205
 	#define MSG_HEATING "Opwarmen..."

+ 166
- 33
Marlin/ultralcd.cpp View File

196
         lcd_quick_feedback();
196
         lcd_quick_feedback();
197
     }
197
     }
198
 
198
 
199
+#ifdef ULTIPANEL_FEEDMULTIPLY
199
     // Dead zone at 100% feedrate
200
     // Dead zone at 100% feedrate
200
     if ((feedmultiply < 100 && (feedmultiply + int(encoderPosition)) > 100) ||
201
     if ((feedmultiply < 100 && (feedmultiply + int(encoderPosition)) > 100) ||
201
             (feedmultiply > 100 && (feedmultiply + int(encoderPosition)) < 100))
202
             (feedmultiply > 100 && (feedmultiply + int(encoderPosition)) < 100))
219
         feedmultiply += int(encoderPosition);
220
         feedmultiply += int(encoderPosition);
220
         encoderPosition = 0;
221
         encoderPosition = 0;
221
     }
222
     }
223
+#endif//ULTIPANEL_FEEDMULTIPLY
222
 
224
 
223
     if (feedmultiply < 10)
225
     if (feedmultiply < 10)
224
         feedmultiply = 10;
226
         feedmultiply = 10;
302
 }
304
 }
303
 #endif
305
 #endif
304
 
306
 
305
-void lcd_preheat_pla()
306
-{
307
-    setTargetHotend0(plaPreheatHotendTemp);
308
-    setTargetHotend1(plaPreheatHotendTemp);
309
-    setTargetHotend2(plaPreheatHotendTemp);
310
-    setTargetBed(plaPreheatHPBTemp);
311
-    fanSpeed = plaPreheatFanSpeed;
312
-    lcd_return_to_status();
313
-    setWatch(); // heater sanity check timer
314
-}
315
-
316
-void lcd_preheat_abs()
317
-{
318
-    setTargetHotend0(absPreheatHotendTemp);
319
-    setTargetHotend1(absPreheatHotendTemp);
320
-    setTargetHotend2(absPreheatHotendTemp);
321
-    setTargetBed(absPreheatHPBTemp);
322
-    fanSpeed = absPreheatFanSpeed;
323
-    lcd_return_to_status();
324
-    setWatch(); // heater sanity check timer
325
-}
326
-
327
-static void lcd_cooldown()
328
-{
329
-    setTargetHotend0(0);
330
-    setTargetHotend1(0);
331
-    setTargetHotend2(0);
332
-    setTargetBed(0);
333
-    lcd_return_to_status();
334
-}
335
-
336
 #ifdef BABYSTEPPING
307
 #ifdef BABYSTEPPING
337
 static void lcd_babystep_x()
308
 static void lcd_babystep_x()
338
 {
309
 {
412
 #endif
383
 #endif
413
     MENU_ITEM_EDIT(int3, MSG_FAN_SPEED, &fanSpeed, 0, 255);
384
     MENU_ITEM_EDIT(int3, MSG_FAN_SPEED, &fanSpeed, 0, 255);
414
     MENU_ITEM_EDIT(int3, MSG_FLOW, &extrudemultiply, 10, 999);
385
     MENU_ITEM_EDIT(int3, MSG_FLOW, &extrudemultiply, 10, 999);
386
+    MENU_ITEM_EDIT(int3, MSG_FLOW0, &extruder_multiply[0], 10, 999);
387
+#if TEMP_SENSOR_1 != 0
388
+    MENU_ITEM_EDIT(int3, MSG_FLOW1, &extruder_multiply[1], 10, 999);
389
+#endif
390
+#if TEMP_SENSOR_2 != 0
391
+    MENU_ITEM_EDIT(int3, MSG_FLOW2, &extruder_multiply[2], 10, 999);
392
+#endif
415
 
393
 
416
 #ifdef BABYSTEPPING
394
 #ifdef BABYSTEPPING
417
     #ifdef BABYSTEP_XY
395
     #ifdef BABYSTEP_XY
426
     END_MENU();
404
     END_MENU();
427
 }
405
 }
428
 
406
 
407
+void lcd_preheat_pla0()
408
+{
409
+    setTargetHotend0(plaPreheatHotendTemp);
410
+    setTargetBed(plaPreheatHPBTemp);
411
+    fanSpeed = plaPreheatFanSpeed;
412
+    lcd_return_to_status();
413
+    setWatch(); // heater sanity check timer
414
+}
415
+
416
+void lcd_preheat_abs0()
417
+{
418
+    setTargetHotend0(absPreheatHotendTemp);
419
+    setTargetBed(absPreheatHPBTemp);
420
+    fanSpeed = absPreheatFanSpeed;
421
+    lcd_return_to_status();
422
+    setWatch(); // heater sanity check timer
423
+}
424
+
425
+#if TEMP_SENSOR_1 != 0 //2nd extruder preheat
426
+void lcd_preheat_pla1()
427
+{
428
+    setTargetHotend1(plaPreheatHotendTemp);
429
+    setTargetBed(plaPreheatHPBTemp);
430
+    fanSpeed = plaPreheatFanSpeed;
431
+    lcd_return_to_status();
432
+    setWatch(); // heater sanity check timer
433
+}
434
+
435
+void lcd_preheat_abs1()
436
+{
437
+    setTargetHotend1(absPreheatHotendTemp);
438
+    setTargetBed(absPreheatHPBTemp);
439
+    fanSpeed = absPreheatFanSpeed;
440
+    lcd_return_to_status();
441
+    setWatch(); // heater sanity check timer
442
+}
443
+#endif //2nd extruder preheat
444
+
445
+#if TEMP_SENSOR_2 != 0 //3 extruder preheat
446
+void lcd_preheat_pla2()
447
+{
448
+    setTargetHotend2(plaPreheatHotendTemp);
449
+    setTargetBed(plaPreheatHPBTemp);
450
+    fanSpeed = plaPreheatFanSpeed;
451
+    lcd_return_to_status();
452
+    setWatch(); // heater sanity check timer
453
+}
454
+
455
+void lcd_preheat_abs2()
456
+{
457
+    setTargetHotend2(absPreheatHotendTemp);
458
+    setTargetBed(absPreheatHPBTemp);
459
+    fanSpeed = absPreheatFanSpeed;
460
+    lcd_return_to_status();
461
+    setWatch(); // heater sanity check timer
462
+}
463
+#endif //3 extruder preheat
464
+
465
+#if TEMP_SENSOR_1 != 0 || TEMP_SENSOR_2 != 0 //more than one extruder present
466
+void lcd_preheat_pla012()
467
+{
468
+    setTargetHotend0(plaPreheatHotendTemp);
469
+    setTargetHotend1(plaPreheatHotendTemp);
470
+    setTargetHotend2(plaPreheatHotendTemp);
471
+    setTargetBed(plaPreheatHPBTemp);
472
+    fanSpeed = plaPreheatFanSpeed;
473
+    lcd_return_to_status();
474
+    setWatch(); // heater sanity check timer
475
+}
476
+
477
+void lcd_preheat_abs012()
478
+{
479
+    setTargetHotend0(absPreheatHotendTemp);
480
+    setTargetHotend1(absPreheatHotendTemp);
481
+    setTargetHotend2(absPreheatHotendTemp);
482
+    setTargetBed(absPreheatHPBTemp);
483
+    fanSpeed = absPreheatFanSpeed;
484
+    lcd_return_to_status();
485
+    setWatch(); // heater sanity check timer
486
+}
487
+#endif //more than one extruder present
488
+
489
+void lcd_preheat_pla_bedonly()
490
+{
491
+    setTargetBed(plaPreheatHPBTemp);
492
+    fanSpeed = plaPreheatFanSpeed;
493
+    lcd_return_to_status();
494
+    setWatch(); // heater sanity check timer
495
+}
496
+
497
+void lcd_preheat_abs_bedonly()
498
+{
499
+    setTargetBed(absPreheatHPBTemp);
500
+    fanSpeed = absPreheatFanSpeed;
501
+    lcd_return_to_status();
502
+    setWatch(); // heater sanity check timer
503
+}
504
+
505
+static void lcd_preheat_pla_menu()
506
+{
507
+    START_MENU();
508
+    MENU_ITEM(back, MSG_PREPARE, lcd_prepare_menu);
509
+    MENU_ITEM(function, MSG_PREHEAT_PLA0, lcd_preheat_pla0);
510
+#if TEMP_SENSOR_1 != 0 //2 extruder preheat
511
+    MENU_ITEM(function, MSG_PREHEAT_PLA1, lcd_preheat_pla1);
512
+#endif //2 extruder preheat
513
+#if TEMP_SENSOR_2 != 0 //3 extruder preheat
514
+    MENU_ITEM(function, MSG_PREHEAT_PLA2, lcd_preheat_pla2);
515
+#endif //3 extruder preheat
516
+#if TEMP_SENSOR_1 != 0 || TEMP_SENSOR_2 != 0 //all extruder preheat
517
+    MENU_ITEM(function, MSG_PREHEAT_PLA012, lcd_preheat_pla012);
518
+#endif //2 extruder preheat
519
+#if TEMP_SENSOR_BED != 0
520
+    MENU_ITEM(function, MSG_PREHEAT_PLA_BEDONLY, lcd_preheat_pla_bedonly);
521
+#endif
522
+    END_MENU();
523
+}
524
+
525
+static void lcd_preheat_abs_menu()
526
+{
527
+    START_MENU();
528
+    MENU_ITEM(back, MSG_PREPARE, lcd_prepare_menu);
529
+    MENU_ITEM(function, MSG_PREHEAT_ABS0, lcd_preheat_abs0);
530
+#if TEMP_SENSOR_1 != 0 //2 extruder preheat
531
+    MENU_ITEM(function, MSG_PREHEAT_ABS1, lcd_preheat_abs1);
532
+#endif //2 extruder preheat
533
+#if TEMP_SENSOR_2 != 0 //3 extruder preheat
534
+    MENU_ITEM(function, MSG_PREHEAT_ABS2, lcd_preheat_abs2);
535
+#endif //3 extruder preheat
536
+#if TEMP_SENSOR_1 != 0 || TEMP_SENSOR_2 != 0 //all extruder preheat
537
+    MENU_ITEM(function, MSG_PREHEAT_ABS012, lcd_preheat_abs012);
538
+#endif //2 extruder preheat
539
+#if TEMP_SENSOR_BED != 0
540
+    MENU_ITEM(function, MSG_PREHEAT_ABS_BEDONLY, lcd_preheat_abs_bedonly);
541
+#endif
542
+    END_MENU();
543
+}
544
+
545
+void lcd_cooldown()
546
+{
547
+    setTargetHotend0(0);
548
+    setTargetHotend1(0);
549
+    setTargetHotend2(0);
550
+    setTargetBed(0);
551
+    fanSpeed = 0;
552
+    lcd_return_to_status();
553
+}
554
+
429
 static void lcd_prepare_menu()
555
 static void lcd_prepare_menu()
430
 {
556
 {
431
     START_MENU();
557
     START_MENU();
438
     MENU_ITEM(gcode, MSG_DISABLE_STEPPERS, PSTR("M84"));
564
     MENU_ITEM(gcode, MSG_DISABLE_STEPPERS, PSTR("M84"));
439
     MENU_ITEM(gcode, MSG_AUTO_HOME, PSTR("G28"));
565
     MENU_ITEM(gcode, MSG_AUTO_HOME, PSTR("G28"));
440
     //MENU_ITEM(gcode, MSG_SET_ORIGIN, PSTR("G92 X0 Y0 Z0"));
566
     //MENU_ITEM(gcode, MSG_SET_ORIGIN, PSTR("G92 X0 Y0 Z0"));
441
-    MENU_ITEM(function, MSG_PREHEAT_PLA, lcd_preheat_pla);
442
-    MENU_ITEM(function, MSG_PREHEAT_ABS, lcd_preheat_abs);
567
+#if TEMP_SENSOR_0 != 0
568
+  #if TEMP_SENSOR_1 != 0 || TEMP_SENSOR_2 != 0 || TEMP_SENSOR_BED != 0
569
+    MENU_ITEM(submenu, MSG_PREHEAT_PLA, lcd_preheat_pla_menu);
570
+    MENU_ITEM(submenu, MSG_PREHEAT_ABS, lcd_preheat_abs_menu);
571
+  #else
572
+    MENU_ITEM(function, MSG_PREHEAT_PLA, lcd_preheat_pla0);
573
+    MENU_ITEM(function, MSG_PREHEAT_ABS, lcd_preheat_abs0);
574
+  #endif
575
+#endif
443
     MENU_ITEM(function, MSG_COOLDOWN, lcd_cooldown);
576
     MENU_ITEM(function, MSG_COOLDOWN, lcd_cooldown);
444
 #if PS_ON_PIN > -1
577
 #if PS_ON_PIN > -1
445
     if (powersupply)
578
     if (powersupply)

Loading…
Cancel
Save