Преглед на файлове

SINGLENOZZLE: EXTRUDERS versus HOTENDS

Scott Lahteine преди 8 години
родител
ревизия
cd441ce652
променени са 50 файла, в които са добавени 550 реда и са изтрити 458 реда
  1. 29
    9
      Marlin/Conditionals.h
  2. 6
    6
      Marlin/Configuration.h
  3. 1
    1
      Marlin/Configuration_adv.h
  4. 46
    46
      Marlin/Marlin_main.cpp
  5. 55
    36
      Marlin/SanityCheck.h
  6. 8
    8
      Marlin/boards.h
  7. 9
    9
      Marlin/configuration_store.cpp
  8. 4
    4
      Marlin/dogm_bitmaps.h
  9. 2
    2
      Marlin/dogm_lcd_implementation.h
  10. 6
    6
      Marlin/example_configurations/Felix/Configuration.h
  11. 1
    1
      Marlin/example_configurations/Felix/Configuration_adv.h
  12. 6
    6
      Marlin/example_configurations/Felix/DUAL/Configuration.h
  13. 6
    6
      Marlin/example_configurations/Hephestos/Configuration.h
  14. 1
    1
      Marlin/example_configurations/Hephestos/Configuration_adv.h
  15. 6
    6
      Marlin/example_configurations/Hephestos_2/Configuration.h
  16. 1
    1
      Marlin/example_configurations/Hephestos_2/Configuration_adv.h
  17. 6
    6
      Marlin/example_configurations/K8200/Configuration.h
  18. 1
    1
      Marlin/example_configurations/K8200/Configuration_adv.h
  19. 6
    6
      Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h
  20. 6
    6
      Marlin/example_configurations/RigidBot/Configuration.h
  21. 1
    1
      Marlin/example_configurations/RigidBot/Configuration_adv.h
  22. 6
    6
      Marlin/example_configurations/SCARA/Configuration.h
  23. 1
    1
      Marlin/example_configurations/SCARA/Configuration_adv.h
  24. 6
    6
      Marlin/example_configurations/TAZ4/Configuration.h
  25. 1
    1
      Marlin/example_configurations/TAZ4/Configuration_adv.h
  26. 6
    6
      Marlin/example_configurations/WITBOX/Configuration.h
  27. 1
    1
      Marlin/example_configurations/WITBOX/Configuration_adv.h
  28. 6
    6
      Marlin/example_configurations/adafruit/ST7565/Configuration.h
  29. 6
    6
      Marlin/example_configurations/delta/biv2.5/Configuration.h
  30. 1
    1
      Marlin/example_configurations/delta/biv2.5/Configuration_adv.h
  31. 6
    6
      Marlin/example_configurations/delta/generic/Configuration.h
  32. 1
    1
      Marlin/example_configurations/delta/generic/Configuration_adv.h
  33. 6
    6
      Marlin/example_configurations/delta/kossel_mini/Configuration.h
  34. 1
    1
      Marlin/example_configurations/delta/kossel_mini/Configuration_adv.h
  35. 6
    6
      Marlin/example_configurations/delta/kossel_pro/Configuration.h
  36. 1
    1
      Marlin/example_configurations/delta/kossel_pro/Configuration_adv.h
  37. 6
    6
      Marlin/example_configurations/delta/kossel_xl/Configuration.h
  38. 1
    1
      Marlin/example_configurations/delta/kossel_xl/Configuration_adv.h
  39. 6
    6
      Marlin/example_configurations/makibox/Configuration.h
  40. 1
    1
      Marlin/example_configurations/makibox/Configuration_adv.h
  41. 6
    6
      Marlin/example_configurations/tvrrug/Round2/Configuration.h
  42. 1
    1
      Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h
  43. 23
    4
      Marlin/pins.h
  44. 1
    1
      Marlin/pins_MEGACONTROLLER.h
  45. 8
    8
      Marlin/pins_RAMPS_14.h
  46. 1
    1
      Marlin/pins_RUMBA.h
  47. 94
    94
      Marlin/temperature.cpp
  48. 70
    36
      Marlin/temperature.h
  49. 61
    61
      Marlin/ultralcd.cpp
  50. 9
    9
      Marlin/ultralcd_implementation_hitachi_HD44780.h

+ 29
- 9
Marlin/Conditionals.h Целия файл

@@ -536,6 +536,21 @@
536 536
   #define HAS_PID_FOR_BOTH (ENABLED(PIDTEMP) && ENABLED(PIDTEMPBED))
537 537
 
538 538
   /**
539
+   * SINGLENOZZLE needs to differentiate EXTRUDERS and HOTENDS
540
+   * And all "extruders" are in the same place.
541
+   */
542
+  #if ENABLED(SINGLENOZZLE)
543
+    #define HOTENDS 1
544
+    #undef TEMP_SENSOR_1_AS_REDUNDANT
545
+    #undef HOTEND_OFFSET_X
546
+    #undef HOTEND_OFFSET_Y
547
+    #define HOTEND_OFFSET_X { 0 }
548
+    #define HOTEND_OFFSET_Y { 0 }
549
+  #else
550
+    #define HOTENDS EXTRUDERS
551
+  #endif
552
+
553
+  /**
539 554
    * ARRAY_BY_EXTRUDERS based on EXTRUDERS
540 555
    */
541 556
   #if EXTRUDERS > 3
@@ -551,15 +566,20 @@
551 566
   #define ARRAY_BY_EXTRUDERS1(v1) ARRAY_BY_EXTRUDERS(v1, v1, v1, v1)
552 567
 
553 568
   /**
554
-   * With SINGLENOZZLE all "extruders" are in the same place
569
+   * ARRAY_BY_HOTENDS based on HOTENDS
555 570
    */
556
-  #if ENABLED(SINGLENOZZLE)
557
-    #undef EXTRUDER_OFFSET_X
558
-    #undef EXTRUDER_OFFSET_Y
559
-    #define EXTRUDER_OFFSET_X { 0 }
560
-    #define EXTRUDER_OFFSET_Y { 0 }
571
+  #if HOTENDS > 3
572
+    #define ARRAY_BY_HOTENDS(v1, v2, v3, v4) { v1, v2, v3, v4 }
573
+  #elif HOTENDS > 2
574
+    #define ARRAY_BY_HOTENDS(v1, v2, v3, v4) { v1, v2, v3 }
575
+  #elif HOTENDS > 1
576
+    #define ARRAY_BY_HOTENDS(v1, v2, v3, v4) { v1, v2 }
577
+  #else
578
+    #define ARRAY_BY_HOTENDS(v1, v2, v3, v4) { v1 }
561 579
   #endif
562 580
 
581
+  #define ARRAY_BY_HOTENDS1(v1) ARRAY_BY_HOTENDS(v1, v1, v1, v1)
582
+
563 583
   /**
564 584
    * Z_DUAL_ENDSTOPS endstop reassignment
565 585
    */
@@ -695,11 +715,11 @@
695 715
    * Helper Macros for heaters and extruder fan
696 716
    */
697 717
   #define WRITE_HEATER_0P(v) WRITE(HEATER_0_PIN, v)
698
-  #if EXTRUDERS > 1 || ENABLED(HEATERS_PARALLEL)
718
+  #if HOTENDS > 1 || ENABLED(HEATERS_PARALLEL)
699 719
     #define WRITE_HEATER_1(v) WRITE(HEATER_1_PIN, v)
700
-    #if EXTRUDERS > 2
720
+    #if HOTENDS > 2
701 721
       #define WRITE_HEATER_2(v) WRITE(HEATER_2_PIN, v)
702
-      #if EXTRUDERS > 3
722
+      #if HOTENDS > 3
703 723
         #define WRITE_HEATER_3(v) WRITE(HEATER_3_PIN, v)
704 724
       #endif
705 725
     #endif

+ 6
- 6
Marlin/Configuration.h Целия файл

@@ -126,8 +126,8 @@
126 126
 // Offset of the extruders (uncomment if using more than one and relying on firmware to position when changing).
127 127
 // The offset has to be X=0, Y=0 for the extruder 0 hotend (default extruder).
128 128
 // For the other hotends it is their distance from the extruder 0 hotend.
129
-//#define EXTRUDER_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
130
-//#define EXTRUDER_OFFSET_Y {0.0, 5.00}  // (in mm) for each extruder, offset of the hotend on the Y axis
129
+//#define HOTEND_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
130
+//#define HOTEND_OFFSET_Y {0.0, 5.00}  // (in mm) for each extruder, offset of the hotend on the Y axis
131 131
 
132 132
 //// The following define selects which power supply you have. Please choose the one that matches your setup
133 133
 // 1 = ATX
@@ -224,8 +224,8 @@
224 224
 #define BED_MAXTEMP 150
225 225
 
226 226
 // If you want the M105 heater power reported in watts, define the BED_WATTS, and (shared for all extruders) EXTRUDER_WATTS
227
-//#define EXTRUDER_WATTS (12.0*12.0/6.7) // P=U^2/R
228
-//#define BED_WATTS (12.0*12.0/1.1)      // P=U^2/R
227
+//#define HOTEND_WATTS (12.0*12.0/6.7) // P=U^2/R
228
+//#define BED_WATTS (12.0*12.0/1.1)    // P=U^2/R
229 229
 
230 230
 //===========================================================================
231 231
 //============================= PID Settings ================================
@@ -241,8 +241,8 @@
241 241
   //#define PID_DEBUG // Sends debug data to the serial port.
242 242
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
243 243
   //#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
244
-  //#define PID_PARAMS_PER_EXTRUDER // Uses separate PID parameters for each extruder (useful for mismatched extruders)
245
-                                    // Set/get with gcode: M301 E[extruder number, 0-2]
244
+  //#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
245
+                                  // Set/get with gcode: M301 E[extruder number, 0-2]
246 246
   #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
247 247
                                   // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
248 248
   #define PID_INTEGRAL_DRIVE_MAX PID_MAX  //limit for the integral term

+ 1
- 1
Marlin/Configuration_adv.h Целия файл

@@ -237,7 +237,7 @@
237 237
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
238 238
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position
239 239
   #define X2_HOME_POS X2_MAX_POS // default home position is the maximum carriage position
240
-      // However: In this mode the EXTRUDER_OFFSET_X value for the second extruder provides a software
240
+      // However: In this mode the HOTEND_OFFSET_X value for the second extruder provides a software
241 241
       // override for X2_HOME_POS. This also allow recalibration of the distance between the two endstops
242 242
       // without modifying the firmware (through the "M218 T1 X???" command).
243 243
       // Remember: you should set the second extruder x-offset to 0 in your slicer.

+ 46
- 46
Marlin/Marlin_main.cpp Целия файл

@@ -356,16 +356,16 @@ static uint8_t target_extruder;
356 356
 #endif
357 357
 
358 358
 // Extruder offsets
359
-#if EXTRUDERS > 1
360
-  #ifndef EXTRUDER_OFFSET_X
361
-    #define EXTRUDER_OFFSET_X { 0 } // X offsets for each extruder
359
+#if HOTENDS > 1
360
+  #ifndef HOTEND_OFFSET_X
361
+    #define HOTEND_OFFSET_X { 0 } // X offsets for each extruder
362 362
   #endif
363
-  #ifndef EXTRUDER_OFFSET_Y
364
-    #define EXTRUDER_OFFSET_Y { 0 } // Y offsets for each extruder
363
+  #ifndef HOTEND_OFFSET_Y
364
+    #define HOTEND_OFFSET_Y { 0 } // Y offsets for each extruder
365 365
   #endif
366
-  float extruder_offset[][EXTRUDERS] = {
367
-    EXTRUDER_OFFSET_X,
368
-    EXTRUDER_OFFSET_Y
366
+  float hotend_offset[][HOTENDS] = {
367
+    HOTEND_OFFSET_X,
368
+    HOTEND_OFFSET_Y
369 369
     #if ENABLED(DUAL_X_CARRIAGE)
370 370
       , { 0 } // Z offsets for each extruder
371 371
     #endif
@@ -1249,7 +1249,7 @@ XYZ_CONSTS_FROM_CONFIG(signed char, home_dir, HOME_DIR);
1249 1249
        * This allow soft recalibration of the second extruder offset position
1250 1250
        * without firmware reflash (through the M218 command).
1251 1251
        */
1252
-      return (extruder_offset[X_AXIS][1] > 0) ? extruder_offset[X_AXIS][1] : X2_HOME_POS;
1252
+      return (hotend_offset[X_AXIS][1] > 0) ? hotend_offset[X_AXIS][1] : X2_HOME_POS;
1253 1253
   }
1254 1254
 
1255 1255
   static int x_home_dir(int extruder) {
@@ -1280,7 +1280,7 @@ static void update_software_endstops(AxisEnum axis) {
1280 1280
 
1281 1281
   #if ENABLED(DUAL_X_CARRIAGE)
1282 1282
     if (axis == X_AXIS) {
1283
-      float dual_max_x = max(extruder_offset[X_AXIS][1], X2_MAX_POS);
1283
+      float dual_max_x = max(hotend_offset[X_AXIS][1], X2_MAX_POS);
1284 1284
       if (active_extruder != 0) {
1285 1285
         sw_endstop_min[X_AXIS] = X2_MIN_POS + offs;
1286 1286
         sw_endstop_max[X_AXIS] = dual_max_x + offs;
@@ -4407,8 +4407,8 @@ inline void gcode_M104() {
4407 4407
       SERIAL_PROTOCOLPGM(" /");
4408 4408
       SERIAL_PROTOCOL_F(thermalManager.degTargetBed(), 1);
4409 4409
     #endif
4410
-    #if EXTRUDERS > 1
4411
-      for (int8_t e = 0; e < EXTRUDERS; ++e) {
4410
+    #if HOTENDS > 1
4411
+      for (int8_t e = 0; e < HOTENDS; ++e) {
4412 4412
         SERIAL_PROTOCOLPGM(" T");
4413 4413
         SERIAL_PROTOCOL(e);
4414 4414
         SERIAL_PROTOCOLCHAR(':');
@@ -4433,8 +4433,8 @@ inline void gcode_M104() {
4433 4433
     #else
4434 4434
       SERIAL_PROTOCOL(thermalManager.getHeaterPower(target_extruder));
4435 4435
     #endif
4436
-    #if EXTRUDERS > 1
4437
-      for (int8_t e = 0; e < EXTRUDERS; ++e) {
4436
+    #if HOTENDS > 1
4437
+      for (int8_t e = 0; e < HOTENDS; ++e) {
4438 4438
         SERIAL_PROTOCOLPGM(" @");
4439 4439
         SERIAL_PROTOCOL(e);
4440 4440
         SERIAL_PROTOCOLCHAR(':');
@@ -4453,13 +4453,13 @@ inline void gcode_M104() {
4453 4453
         SERIAL_PROTOCOLPGM("C->");
4454 4454
         SERIAL_PROTOCOL_F(thermalManager.rawBedTemp() / OVERSAMPLENR, 0);
4455 4455
       #endif
4456
-      for (int8_t cur_extruder = 0; cur_extruder < EXTRUDERS; ++cur_extruder) {
4456
+      for (int8_t cur_hotend = 0; cur_hotend < HOTENDS; ++cur_hotend) {
4457 4457
         SERIAL_PROTOCOLPGM("  T");
4458
-        SERIAL_PROTOCOL(cur_extruder);
4458
+        SERIAL_PROTOCOL(cur_hotend);
4459 4459
         SERIAL_PROTOCOLCHAR(':');
4460
-        SERIAL_PROTOCOL_F(thermalManager.degHotend(cur_extruder), 1);
4460
+        SERIAL_PROTOCOL_F(thermalManager.degHotend(cur_hotend), 1);
4461 4461
         SERIAL_PROTOCOLPGM("C->");
4462
-        SERIAL_PROTOCOL_F(thermalManager.rawHotendTemp(cur_extruder) / OVERSAMPLENR, 0);
4462
+        SERIAL_PROTOCOL_F(thermalManager.rawHotendTemp(cur_hotend) / OVERSAMPLENR, 0);
4463 4463
       }
4464 4464
     #endif
4465 4465
   }
@@ -5391,7 +5391,7 @@ inline void gcode_M206() {
5391 5391
 
5392 5392
 #endif // FWRETRACT
5393 5393
 
5394
-#if EXTRUDERS > 1
5394
+#if HOTENDS > 1
5395 5395
 
5396 5396
   /**
5397 5397
    * M218 - set hotend offset (in mm)
@@ -5404,29 +5404,29 @@ inline void gcode_M206() {
5404 5404
   inline void gcode_M218() {
5405 5405
     if (get_target_extruder_from_command(218)) return;
5406 5406
 
5407
-    if (code_seen('X')) extruder_offset[X_AXIS][target_extruder] = code_value();
5408
-    if (code_seen('Y')) extruder_offset[Y_AXIS][target_extruder] = code_value();
5407
+    if (code_seen('X')) hotend_offset[X_AXIS][target_extruder] = code_value();
5408
+    if (code_seen('Y')) hotend_offset[Y_AXIS][target_extruder] = code_value();
5409 5409
 
5410 5410
     #if ENABLED(DUAL_X_CARRIAGE)
5411
-      if (code_seen('Z')) extruder_offset[Z_AXIS][target_extruder] = code_value();
5411
+      if (code_seen('Z')) hotend_offset[Z_AXIS][target_extruder] = code_value();
5412 5412
     #endif
5413 5413
 
5414 5414
     SERIAL_ECHO_START;
5415 5415
     SERIAL_ECHOPGM(MSG_HOTEND_OFFSET);
5416
-    for (int e = 0; e < EXTRUDERS; e++) {
5416
+    for (int e = 0; e < HOTENDS; e++) {
5417 5417
       SERIAL_CHAR(' ');
5418
-      SERIAL_ECHO(extruder_offset[X_AXIS][e]);
5418
+      SERIAL_ECHO(hotend_offset[X_AXIS][e]);
5419 5419
       SERIAL_CHAR(',');
5420
-      SERIAL_ECHO(extruder_offset[Y_AXIS][e]);
5420
+      SERIAL_ECHO(hotend_offset[Y_AXIS][e]);
5421 5421
       #if ENABLED(DUAL_X_CARRIAGE)
5422 5422
         SERIAL_CHAR(',');
5423
-        SERIAL_ECHO(extruder_offset[Z_AXIS][e]);
5423
+        SERIAL_ECHO(hotend_offset[Z_AXIS][e]);
5424 5424
       #endif
5425 5425
     }
5426 5426
     SERIAL_EOL;
5427 5427
   }
5428 5428
 
5429
-#endif // EXTRUDERS > 1
5429
+#endif // HOTENDS > 1
5430 5430
 
5431 5431
 /**
5432 5432
  * M220: Set speed percentage factor, aka "Feed Rate" (M220 S95)
@@ -5556,7 +5556,7 @@ inline void gcode_M226() {
5556 5556
     // default behaviour (omitting E parameter) is to update for extruder 0 only
5557 5557
     int e = code_seen('E') ? code_value() : 0; // extruder being updated
5558 5558
 
5559
-    if (e < EXTRUDERS) { // catch bad input value
5559
+    if (e < HOTENDS) { // catch bad input value
5560 5560
       if (code_seen('P')) PID_PARAM(Kp, e) = code_value();
5561 5561
       if (code_seen('I')) PID_PARAM(Ki, e) = scalePID_i(code_value());
5562 5562
       if (code_seen('D')) PID_PARAM(Kd, e) = scalePID_d(code_value());
@@ -5568,10 +5568,10 @@ inline void gcode_M226() {
5568 5568
 
5569 5569
       thermalManager.updatePID();
5570 5570
       SERIAL_ECHO_START;
5571
-      #if ENABLED(PID_PARAMS_PER_EXTRUDER)
5571
+      #if ENABLED(PID_PARAMS_PER_HOTEND)
5572 5572
         SERIAL_ECHO(" e:"); // specify extruder in serial output
5573 5573
         SERIAL_ECHO(e);
5574
-      #endif // PID_PARAMS_PER_EXTRUDER
5574
+      #endif // PID_PARAMS_PER_HOTEND
5575 5575
       SERIAL_ECHO(" p:");
5576 5576
       SERIAL_ECHO(PID_PARAM(Kp, e));
5577 5577
       SERIAL_ECHO(" i:");
@@ -5690,7 +5690,7 @@ inline void gcode_M303() {
5690 5690
 
5691 5691
     float temp = code_seen('S') ? code_value() : (e < 0 ? 70.0 : 150.0);
5692 5692
 
5693
-    if (e >= 0 && e < EXTRUDERS)
5693
+    if (e >= 0 && e < HOTENDS)
5694 5694
       target_extruder = e;
5695 5695
 
5696 5696
     KEEPALIVE_STATE(NOT_BUSY); // don't send "busy: processing" messages during autotune output
@@ -6272,13 +6272,13 @@ inline void gcode_M503() {
6272 6272
         SERIAL_ECHO_START;
6273 6273
         SERIAL_ECHOPGM(MSG_HOTEND_OFFSET);
6274 6274
         SERIAL_CHAR(' ');
6275
-        SERIAL_ECHO(extruder_offset[X_AXIS][0]);
6275
+        SERIAL_ECHO(hotend_offset[X_AXIS][0]);
6276 6276
         SERIAL_CHAR(',');
6277
-        SERIAL_ECHO(extruder_offset[Y_AXIS][0]);
6277
+        SERIAL_ECHO(hotend_offset[Y_AXIS][0]);
6278 6278
         SERIAL_CHAR(' ');
6279 6279
         SERIAL_ECHO(duplicate_extruder_x_offset);
6280 6280
         SERIAL_CHAR(',');
6281
-        SERIAL_ECHOLN(extruder_offset[Y_AXIS][1]);
6281
+        SERIAL_ECHOLN(hotend_offset[Y_AXIS][1]);
6282 6282
         break;
6283 6283
       case DXC_FULL_CONTROL_MODE:
6284 6284
       case DXC_AUTO_PARK_MODE:
@@ -6436,7 +6436,7 @@ inline void gcode_T(uint8_t tmp_extruder) {
6436 6436
     #endif
6437 6437
   }
6438 6438
 
6439
-  #if EXTRUDERS > 1
6439
+  #if HOTENDS > 1
6440 6440
     if (tmp_extruder != active_extruder) {
6441 6441
       // Save current position to return to after applying extruder offset
6442 6442
       set_destination_to_current();
@@ -6454,8 +6454,8 @@ inline void gcode_T(uint8_t tmp_extruder) {
6454 6454
         }
6455 6455
 
6456 6456
         // apply Y & Z extruder offset (x offset is already used in determining home pos)
6457
-        current_position[Y_AXIS] -= extruder_offset[Y_AXIS][active_extruder] - extruder_offset[Y_AXIS][tmp_extruder];
6458
-        current_position[Z_AXIS] -= extruder_offset[Z_AXIS][active_extruder] - extruder_offset[Z_AXIS][tmp_extruder];
6457
+        current_position[Y_AXIS] -= hotend_offset[Y_AXIS][active_extruder] - hotend_offset[Y_AXIS][tmp_extruder];
6458
+        current_position[Z_AXIS] -= hotend_offset[Z_AXIS][active_extruder] - hotend_offset[Z_AXIS][tmp_extruder];
6459 6459
         active_extruder = tmp_extruder;
6460 6460
 
6461 6461
         // This function resets the max/min values - the current position may be overwritten below.
@@ -6485,11 +6485,11 @@ inline void gcode_T(uint8_t tmp_extruder) {
6485 6485
       #else // !DUAL_X_CARRIAGE
6486 6486
         #if ENABLED(AUTO_BED_LEVELING_FEATURE)
6487 6487
           // Offset extruder, make sure to apply the bed level rotation matrix
6488
-          vector_3 tmp_offset_vec = vector_3(extruder_offset[X_AXIS][tmp_extruder],
6489
-                                             extruder_offset[Y_AXIS][tmp_extruder],
6488
+          vector_3 tmp_offset_vec = vector_3(hotend_offset[X_AXIS][tmp_extruder],
6489
+                                             hotend_offset[Y_AXIS][tmp_extruder],
6490 6490
                                              0),
6491
-                   act_offset_vec = vector_3(extruder_offset[X_AXIS][active_extruder],
6492
-                                             extruder_offset[Y_AXIS][active_extruder],
6491
+                   act_offset_vec = vector_3(hotend_offset[X_AXIS][active_extruder],
6492
+                                             hotend_offset[Y_AXIS][active_extruder],
6493 6493
                                              0),
6494 6494
                    offset_vec = tmp_offset_vec - act_offset_vec;
6495 6495
 
@@ -6521,7 +6521,7 @@ inline void gcode_T(uint8_t tmp_extruder) {
6521 6521
 
6522 6522
           // The newly-selected extruder is actually at...
6523 6523
           for (int i=X_AXIS; i<=Y_AXIS; i++) {
6524
-            float diff = extruder_offset[i][tmp_extruder] - extruder_offset[i][active_extruder];
6524
+            float diff = hotend_offset[i][tmp_extruder] - hotend_offset[i][active_extruder];
6525 6525
             current_position[i] += diff;
6526 6526
             position_shift[i] += diff; // Offset the coordinate space
6527 6527
             update_software_endstops((AxisEnum)i);
@@ -6552,7 +6552,7 @@ inline void gcode_T(uint8_t tmp_extruder) {
6552 6552
       enable_solenoid_on_active_extruder();
6553 6553
     #endif // EXT_SOLENOID
6554 6554
 
6555
-  #endif // EXTRUDERS > 1
6555
+  #endif // HOTENDS > 1
6556 6556
 
6557 6557
   feedrate = stored_feedrate;
6558 6558
 
@@ -6983,7 +6983,7 @@ void process_next_command() {
6983 6983
           break;
6984 6984
       #endif // FWRETRACT
6985 6985
 
6986
-      #if EXTRUDERS > 1
6986
+      #if HOTENDS > 1
6987 6987
         case 218: // M218 - set hotend offset (in mm), T<extruder_number> X<offset_on_X> Y<offset_on_Y>
6988 6988
           gcode_M218();
6989 6989
           break;
@@ -7853,8 +7853,8 @@ void prepare_move() {
7853 7853
     float max_temp = 0.0;
7854 7854
     if (ELAPSED(millis(), next_status_led_update_ms)) {
7855 7855
       next_status_led_update_ms += 500; // Update every 0.5s
7856
-      for (int8_t cur_extruder = 0; cur_extruder < EXTRUDERS; ++cur_extruder)
7857
-        max_temp = max(max(max_temp, thermalManager.degHotend(cur_extruder)), thermalManager.degTargetHotend(cur_extruder));
7856
+      for (int8_t cur_hotend = 0; cur_hotend < HOTENDS; ++cur_hotend)
7857
+        max_temp = max(max(max_temp, thermalManager.degHotend(cur_hotend)), thermalManager.degTargetHotend(cur_hotend));
7858 7858
       #if HAS_TEMP_BED
7859 7859
         max_temp = max(max(max_temp, thermalManager.degTargetBed()), thermalManager.degBed());
7860 7860
       #endif

+ 55
- 36
Marlin/SanityCheck.h Целия файл

@@ -468,39 +468,45 @@
468 468
 /**
469 469
  * Test Heater, Temp Sensor, and Extruder Pins; Sensor Type must also be set.
470 470
  */
471
-#if EXTRUDERS > 3
472
-  #if TEMP_SENSOR_3 == 0
473
-    #error "TEMP_SENSOR_3 is required with 4 EXTRUDERS."
474
-  #elif !HAS_HEATER_3
475
-    #error "HEATER_3_PIN not defined for this board."
476
-  #elif !PIN_EXISTS(TEMP_3)
477
-    #error "TEMP_3_PIN not defined for this board."
478
-  #elif !PIN_EXISTS(E3_STEP) || !PIN_EXISTS(E3_DIR) || !PIN_EXISTS(E3_ENABLE)
479
-    #error "E3_STEP_PIN, E3_DIR_PIN, or E3_ENABLE_PIN not defined for this board."
480
-  #endif
481
-#elif EXTRUDERS > 2
482
-  #if TEMP_SENSOR_2 == 0
483
-    #error "TEMP_SENSOR_2 is required with 3 or more EXTRUDERS."
484
-  #elif !HAS_HEATER_2
485
-    #error "HEATER_2_PIN not defined for this board."
486
-  #elif !PIN_EXISTS(TEMP_2)
487
-    #error "TEMP_2_PIN not defined for this board."
488
-  #elif !PIN_EXISTS(E2_STEP) || !PIN_EXISTS(E2_DIR) || !PIN_EXISTS(E2_ENABLE)
489
-    #error "E2_STEP_PIN, E2_DIR_PIN, or E2_ENABLE_PIN not defined for this board."
471
+#if !HAS_HEATER_0
472
+  #error "HEATER_0_PIN not defined for this board."
473
+#elif !PIN_EXISTS(TEMP_0)
474
+  #error "TEMP_0_PIN not defined for this board."
475
+#elif !PIN_EXISTS(E0_STEP) || !PIN_EXISTS(E0_DIR) || !PIN_EXISTS(E0_ENABLE)
476
+  #error "E0_STEP_PIN, E0_DIR_PIN, or E0_ENABLE_PIN not defined for this board."
477
+#elif TEMP_SENSOR_0 == 0
478
+  #error "TEMP_SENSOR_0 is required."
479
+#endif
480
+
481
+#if HOTENDS > 1 || ENABLED(HEATERS_PARALLEL)
482
+  #if !HAS_HEATER_1
483
+    #error "HEATER_1_PIN not defined for this board."
490 484
   #endif
491
-#elif EXTRUDERS > 1
485
+#endif
486
+
487
+#if HOTENDS > 1
492 488
   #if TEMP_SENSOR_1 == 0
493
-    #error "TEMP_SENSOR_1 is required with 2 or more EXTRUDERS."
489
+    #error "TEMP_SENSOR_1 is required with 2 or more HOTENDS."
494 490
   #elif !PIN_EXISTS(TEMP_1)
495 491
     #error "TEMP_1_PIN not defined for this board."
496
-  #elif !PIN_EXISTS(E1_STEP) || !PIN_EXISTS(E1_DIR) || !PIN_EXISTS(E1_ENABLE)
497
-    #error "E1_STEP_PIN, E1_DIR_PIN, or E1_ENABLE_PIN not defined for this board."
498 492
   #endif
499
-#endif
500
-
501
-#if EXTRUDERS > 1 || ENABLED(HEATERS_PARALLEL)
502
-  #if !HAS_HEATER_1
503
-    #error "HEATER_1_PIN not defined for this board."
493
+  #if HOTENDS > 2
494
+    #if TEMP_SENSOR_2 == 0
495
+      #error "TEMP_SENSOR_2 is required with 3 or more HOTENDS."
496
+    #elif !HAS_HEATER_2
497
+      #error "HEATER_2_PIN not defined for this board."
498
+    #elif !PIN_EXISTS(TEMP_2)
499
+      #error "TEMP_2_PIN not defined for this board."
500
+    #endif
501
+    #if HOTENDS > 3
502
+      #if TEMP_SENSOR_3 == 0
503
+        #error "TEMP_SENSOR_3 is required with 4 HOTENDS."
504
+      #elif !HAS_HEATER_3
505
+        #error "HEATER_3_PIN not defined for this board."
506
+      #elif !PIN_EXISTS(TEMP_3)
507
+        #error "TEMP_3_PIN not defined for this board."
508
+      #endif
509
+    #endif
504 510
   #endif
505 511
 #endif
506 512
 
@@ -508,14 +514,21 @@
508 514
   #error "TEMP_SENSOR_1 is required with TEMP_SENSOR_1_AS_REDUNDANT."
509 515
 #endif
510 516
 
511
-#if !HAS_HEATER_0
512
-  #error "HEATER_0_PIN not defined for this board."
513
-#elif !PIN_EXISTS(TEMP_0)
514
-  #error "TEMP_0_PIN not defined for this board."
515
-#elif !PIN_EXISTS(E0_STEP) || !PIN_EXISTS(E0_DIR) || !PIN_EXISTS(E0_ENABLE)
516
-  #error "E0_STEP_PIN, E0_DIR_PIN, or E0_ENABLE_PIN not defined for this board."
517
-#elif TEMP_SENSOR_0 == 0
518
-  #error "TEMP_SENSOR_0 is required."
517
+/**
518
+ * Test Extruder Pins
519
+ */
520
+#if EXTRUDERS > 3
521
+  #if !PIN_EXISTS(E3_STEP) || !PIN_EXISTS(E3_DIR) || !PIN_EXISTS(E3_ENABLE)
522
+    #error E3_STEP_PIN, E3_DIR_PIN, or E3_ENABLE_PIN not defined for this board.
523
+  #endif
524
+#elif EXTRUDERS > 2
525
+  #if !PIN_EXISTS(E2_STEP) || !PIN_EXISTS(E2_DIR) || !PIN_EXISTS(E2_ENABLE)
526
+    #error E2_STEP_PIN, E2_DIR_PIN, or E2_ENABLE_PIN not defined for this board.
527
+  #endif
528
+#elif EXTRUDERS > 1
529
+  #if !PIN_EXISTS(E1_STEP) || !PIN_EXISTS(E1_DIR) || !PIN_EXISTS(E1_ENABLE)
530
+    #error E1_STEP_PIN, E1_DIR_PIN, or E1_ENABLE_PIN not defined for this board.
531
+  #endif
519 532
 #endif
520 533
 
521 534
 /**
@@ -574,6 +587,12 @@
574 587
   #error "Z_DUAL_ENDSTOPS settings are simplified. Just set Z2_USE_ENDSTOP to the endstop you want to repurpose for Z2"
575 588
 #elif defined(LANGUAGE_INCLUDE)
576 589
   #error "LANGUAGE_INCLUDE has been replaced by LCD_LANGUAGE. Please update your configuration."
590
+#elif defined(EXTRUDER_OFFSET_X) || defined(EXTRUDER_OFFSET_Y)
591
+  #error "EXTRUDER_OFFSET_[XY] is deprecated. Use HOTEND_OFFSET_[XY] instead."
592
+#elif defined(PID_PARAMS_PER_EXTRUDER)
593
+  #error "PID_PARAMS_PER_EXTRUDER is deprecated. Use PID_PARAMS_PER_HOTEND instead."
594
+#elif defined(EXTRUDER_WATTS)
595
+  #error "EXTRUDER_WATTS is deprecated. Use HOTEND_WATTS instead."
577 596
 #endif
578 597
 
579 598
 #endif //SANITYCHECK_H

+ 8
- 8
Marlin/boards.h Целия файл

@@ -32,17 +32,17 @@
32 32
 #define BOARD_CHEAPTRONIC       2    // Cheaptronic v1.0
33 33
 #define BOARD_SETHI             20   // Sethi 3D_1
34 34
 #define BOARD_RAMPS_OLD         3    // MEGA/RAMPS up to 1.2
35
-#define BOARD_RAMPS_13_EFB      33   // RAMPS 1.3 (Power outputs: Extruder, Fan, Bed)
36
-#define BOARD_RAMPS_13_EEB      34   // RAMPS 1.3 (Power outputs: Extruder0, Extruder1, Bed)
37
-#define BOARD_RAMPS_13_EFF      35   // RAMPS 1.3 (Power outputs: Extruder, Fan, Fan)
38
-#define BOARD_RAMPS_13_EEF      36   // RAMPS 1.3 (Power outputs: Extruder0, Extruder1, Fan)
35
+#define BOARD_RAMPS_13_EFB      33   // RAMPS 1.3 (Power outputs: Hotend, Fan, Bed)
36
+#define BOARD_RAMPS_13_EEB      34   // RAMPS 1.3 (Power outputs: Hotend0, Hotend1, Bed)
37
+#define BOARD_RAMPS_13_EFF      35   // RAMPS 1.3 (Power outputs: Hotend, Fan0, Fan1)
38
+#define BOARD_RAMPS_13_EEF      36   // RAMPS 1.3 (Power outputs: Hotend0, Hotend1, Fan)
39 39
 #define BOARD_RAMPS_13_SF       38   // RAMPS 1.3 (Power outputs: Spindle, Controller Fan)
40 40
 #define BOARD_FELIX2            37   // Felix 2.0+ Electronics Board (RAMPS like)
41 41
 #define BOARD_RIGIDBOARD        42   // Invent-A-Part RigidBoard
42
-#define BOARD_RAMPS_14_EFB      43   // RAMPS 1.4 (Power outputs: Extruder, Fan, Bed)
43
-#define BOARD_RAMPS_14_EEB      44   // RAMPS 1.4 (Power outputs: Extruder0, Extruder1, Bed)
44
-#define BOARD_RAMPS_14_EFF      45   // RAMPS 1.4 (Power outputs: Extruder, Fan, Fan)
45
-#define BOARD_RAMPS_14_EEF      46   // RAMPS 1.4 (Power outputs: Extruder0, Extruder1, Fan)
42
+#define BOARD_RAMPS_14_EFB      43   // RAMPS 1.4 (Power outputs: Hotend, Fan, Bed)
43
+#define BOARD_RAMPS_14_EEB      44   // RAMPS 1.4 (Power outputs: Hotend0, Hotend1, Bed)
44
+#define BOARD_RAMPS_14_EFF      45   // RAMPS 1.4 (Power outputs: Hotend, Fan0, Fan1)
45
+#define BOARD_RAMPS_14_EEF      46   // RAMPS 1.4 (Power outputs: Hotend0, Hotend1, Fan)
46 46
 #define BOARD_RAMPS_14_SF       48   // RAMPS 1.4 (Power outputs: Spindle, Controller Fan)
47 47
 #define BOARD_GEN6              5    // Gen6
48 48
 #define BOARD_GEN6_DELUXE       51   // Gen6 deluxe

+ 9
- 9
Marlin/configuration_store.cpp Целия файл

@@ -246,7 +246,7 @@ void Config_StoreSettings()  {
246 246
   for (uint8_t e = 0; e < 4; e++) {
247 247
 
248 248
     #if ENABLED(PIDTEMP)
249
-      if (e < EXTRUDERS) {
249
+      if (e < HOTENDS) {
250 250
         EEPROM_WRITE_VAR(i, PID_PARAM(Kp, e));
251 251
         EEPROM_WRITE_VAR(i, PID_PARAM(Ki, e));
252 252
         EEPROM_WRITE_VAR(i, PID_PARAM(Kd, e));
@@ -266,7 +266,7 @@ void Config_StoreSettings()  {
266 266
         for (uint8_t q = 3; q--;) EEPROM_WRITE_VAR(i, dummy); // Ki, Kd, Kc
267 267
       }
268 268
 
269
-  } // Extruders Loop
269
+  } // Hotends Loop
270 270
 
271 271
   #if DISABLED(PID_ADD_EXTRUSION_RATE)
272 272
     int lpq_len = 20;
@@ -426,7 +426,7 @@ void Config_RetrieveSettings() {
426 426
     #if ENABLED(PIDTEMP)
427 427
       for (uint8_t e = 0; e < 4; e++) { // 4 = max extruders currently supported by Marlin
428 428
         EEPROM_READ_VAR(i, dummy); // Kp
429
-        if (e < EXTRUDERS && dummy != DUMMY_PID_VALUE) {
429
+        if (e < HOTENDS && dummy != DUMMY_PID_VALUE) {
430 430
           // do not need to scale PID values as the values in EEPROM are already scaled
431 431
           PID_PARAM(Kp, e) = dummy;
432 432
           EEPROM_READ_VAR(i, PID_PARAM(Ki, e));
@@ -584,8 +584,8 @@ void Config_ResetDefault() {
584 584
   #endif
585 585
 
586 586
   #if ENABLED(PIDTEMP)
587
-    #if ENABLED(PID_PARAMS_PER_EXTRUDER)
588
-      for (uint8_t e = 0; e < EXTRUDERS; e++)
587
+    #if ENABLED(PID_PARAMS_PER_HOTEND)
588
+      for (uint8_t e = 0; e < HOTENDS; e++)
589 589
     #else
590 590
       int e = 0; UNUSED(e); // only need to write once
591 591
     #endif
@@ -801,9 +801,9 @@ void Config_PrintSettings(bool forReplay) {
801 801
       SERIAL_ECHOLNPGM("PID settings:");
802 802
     }
803 803
     #if ENABLED(PIDTEMP)
804
-      #if EXTRUDERS > 1
804
+      #if HOTENDS > 1
805 805
         if (forReplay) {
806
-          for (uint8_t i = 0; i < EXTRUDERS; i++) {
806
+          for (uint8_t i = 0; i < HOTENDS; i++) {
807 807
             CONFIG_ECHO_START;
808 808
             SERIAL_ECHOPAIR("  M301 E", i);
809 809
             SERIAL_ECHOPAIR(" P", PID_PARAM(Kp, i));
@@ -817,8 +817,8 @@ void Config_PrintSettings(bool forReplay) {
817 817
           }
818 818
         }
819 819
         else
820
-      #endif // EXTRUDERS > 1
821
-      // !forReplay || EXTRUDERS == 1
820
+      #endif // HOTENDS > 1
821
+      // !forReplay || HOTENDS == 1
822 822
       {
823 823
         CONFIG_ECHO_START;
824 824
         SERIAL_ECHOPAIR("  M301 P", PID_PARAM(Kp, 0)); // for compatibility with hosts, only echo values for E0

+ 4
- 4
Marlin/dogm_bitmaps.h Целия файл

@@ -110,7 +110,7 @@
110 110
 // be displayed.
111 111
 
112 112
 #if HAS_TEMP_BED
113
-  #if EXTRUDERS == 1
113
+  #if HOTENDS == 1
114 114
     #define STATUS_SCREENWIDTH     115 //Width in pixels
115 115
     #define STATUS_SCREENHEIGHT     19 //Height in pixels
116 116
     #define STATUS_SCREENBYTEWIDTH  15 //Width in bytes
@@ -160,7 +160,7 @@
160 160
       0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x7F, 0xFF, 0xE0,
161 161
       0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00
162 162
     };
163
-  #elif EXTRUDERS == 2
163
+  #elif HOTENDS == 2
164 164
     #define STATUS_SCREENWIDTH     115 //Width in pixels
165 165
     #define STATUS_SCREENHEIGHT     19 //Height in pixels
166 166
     #define STATUS_SCREENBYTEWIDTH  15 //Width in bytes
@@ -262,7 +262,7 @@
262 262
     };
263 263
   #endif // Extruders
264 264
 #else
265
-  #if EXTRUDERS == 1
265
+  #if HOTENDS == 1
266 266
     #define STATUS_SCREENWIDTH     115 //Width in pixels
267 267
     #define STATUS_SCREENHEIGHT     19 //Height in pixels
268 268
     #define STATUS_SCREENBYTEWIDTH  15 //Width in bytes
@@ -312,7 +312,7 @@
312 312
       0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xE0,
313 313
       0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
314 314
     };
315
-  #elif EXTRUDERS == 2
315
+  #elif HOTENDS == 2
316 316
     #define STATUS_SCREENWIDTH     115 //Width in pixels
317 317
     #define STATUS_SCREENHEIGHT     19 //Height in pixels
318 318
     #define STATUS_SCREENBYTEWIDTH  15 //Width in bytes

+ 2
- 2
Marlin/dogm_lcd_implementation.h Целия файл

@@ -370,10 +370,10 @@ static void lcd_implementation_status_screen() {
370 370
   #endif
371 371
 
372 372
   // Extruders
373
-  for (int i = 0; i < EXTRUDERS; i++) _draw_heater_status(5 + i * 25, i);
373
+  for (int i = 0; i < HOTENDS; i++) _draw_heater_status(5 + i * 25, i);
374 374
 
375 375
   // Heated bed
376
-  #if EXTRUDERS < 4 && HAS_TEMP_BED
376
+  #if HOTENDS < 4 && HAS_TEMP_BED
377 377
     _draw_heater_status(81, -1);
378 378
   #endif
379 379
 

+ 6
- 6
Marlin/example_configurations/Felix/Configuration.h Целия файл

@@ -126,8 +126,8 @@
126 126
 // Offset of the extruders (uncomment if using more than one and relying on firmware to position when changing).
127 127
 // The offset has to be X=0, Y=0 for the extruder 0 hotend (default extruder).
128 128
 // For the other hotends it is their distance from the extruder 0 hotend.
129
-//#define EXTRUDER_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
130
-//#define EXTRUDER_OFFSET_Y {0.0, 5.00}  // (in mm) for each extruder, offset of the hotend on the Y axis
129
+//#define HOTEND_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
130
+//#define HOTEND_OFFSET_Y {0.0, 5.00}  // (in mm) for each extruder, offset of the hotend on the Y axis
131 131
 
132 132
 //// The following define selects which power supply you have. Please choose the one that matches your setup
133 133
 // 1 = ATX
@@ -224,8 +224,8 @@
224 224
 #define BED_MAXTEMP 150
225 225
 
226 226
 // If you want the M105 heater power reported in watts, define the BED_WATTS, and (shared for all extruders) EXTRUDER_WATTS
227
-//#define EXTRUDER_WATTS (12.0*12.0/6.7) // P=U^2/R
228
-//#define BED_WATTS (12.0*12.0/1.1)      // P=U^2/R
227
+//#define HOTEND_WATTS (12.0*12.0/6.7) // P=U^2/R
228
+//#define BED_WATTS (12.0*12.0/1.1)    // P=U^2/R
229 229
 
230 230
 //===========================================================================
231 231
 //============================= PID Settings ================================
@@ -241,8 +241,8 @@
241 241
   //#define PID_DEBUG // Sends debug data to the serial port.
242 242
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
243 243
   //#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
244
-  //#define PID_PARAMS_PER_EXTRUDER // Uses separate PID parameters for each extruder (useful for mismatched extruders)
245
-                                    // Set/get with gcode: M301 E[extruder number, 0-2]
244
+  //#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
245
+                                  // Set/get with gcode: M301 E[extruder number, 0-2]
246 246
   #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
247 247
                                   // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
248 248
   #define PID_INTEGRAL_DRIVE_MAX PID_MAX  //limit for the integral term

+ 1
- 1
Marlin/example_configurations/Felix/Configuration_adv.h Целия файл

@@ -237,7 +237,7 @@
237 237
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
238 238
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position
239 239
   #define X2_HOME_POS X2_MAX_POS // default home position is the maximum carriage position
240
-      // However: In this mode the EXTRUDER_OFFSET_X value for the second extruder provides a software
240
+      // However: In this mode the HOTEND_OFFSET_X value for the second extruder provides a software
241 241
       // override for X2_HOME_POS. This also allow recalibration of the distance between the two endstops
242 242
       // without modifying the firmware (through the "M218 T1 X???" command).
243 243
       // Remember: you should set the second extruder x-offset to 0 in your slicer.

+ 6
- 6
Marlin/example_configurations/Felix/DUAL/Configuration.h Целия файл

@@ -126,8 +126,8 @@
126 126
 // Offset of the extruders (uncomment if using more than one and relying on firmware to position when changing).
127 127
 // The offset has to be X=0, Y=0 for the extruder 0 hotend (default extruder).
128 128
 // For the other hotends it is their distance from the extruder 0 hotend.
129
-//#define EXTRUDER_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
130
-//#define EXTRUDER_OFFSET_Y {0.0, 5.00}  // (in mm) for each extruder, offset of the hotend on the Y axis
129
+//#define HOTEND_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
130
+//#define HOTEND_OFFSET_Y {0.0, 5.00}  // (in mm) for each extruder, offset of the hotend on the Y axis
131 131
 
132 132
 //// The following define selects which power supply you have. Please choose the one that matches your setup
133 133
 // 1 = ATX
@@ -224,8 +224,8 @@
224 224
 #define BED_MAXTEMP 150
225 225
 
226 226
 // If you want the M105 heater power reported in watts, define the BED_WATTS, and (shared for all extruders) EXTRUDER_WATTS
227
-//#define EXTRUDER_WATTS (12.0*12.0/6.7) // P=U^2/R
228
-//#define BED_WATTS (12.0*12.0/1.1)      // P=U^2/R
227
+//#define HOTEND_WATTS (12.0*12.0/6.7) // P=U^2/R
228
+//#define BED_WATTS (12.0*12.0/1.1)    // P=U^2/R
229 229
 
230 230
 //===========================================================================
231 231
 //============================= PID Settings ================================
@@ -241,8 +241,8 @@
241 241
   //#define PID_DEBUG // Sends debug data to the serial port.
242 242
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
243 243
   //#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
244
-  //#define PID_PARAMS_PER_EXTRUDER // Uses separate PID parameters for each extruder (useful for mismatched extruders)
245
-                                    // Set/get with gcode: M301 E[extruder number, 0-2]
244
+  //#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
245
+                                  // Set/get with gcode: M301 E[extruder number, 0-2]
246 246
   #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
247 247
                                   // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
248 248
   #define PID_INTEGRAL_DRIVE_MAX PID_MAX  //limit for the integral term

+ 6
- 6
Marlin/example_configurations/Hephestos/Configuration.h Целия файл

@@ -129,8 +129,8 @@
129 129
 // Offset of the extruders (uncomment if using more than one and relying on firmware to position when changing).
130 130
 // The offset has to be X=0, Y=0 for the extruder 0 hotend (default extruder).
131 131
 // For the other hotends it is their distance from the extruder 0 hotend.
132
-//#define EXTRUDER_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
133
-//#define EXTRUDER_OFFSET_Y {0.0, 5.00}  // (in mm) for each extruder, offset of the hotend on the Y axis
132
+//#define HOTEND_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
133
+//#define HOTEND_OFFSET_Y {0.0, 5.00}  // (in mm) for each extruder, offset of the hotend on the Y axis
134 134
 
135 135
 //// The following define selects which power supply you have. Please choose the one that matches your setup
136 136
 // 1 = ATX
@@ -227,8 +227,8 @@
227 227
 #define BED_MAXTEMP 150
228 228
 
229 229
 // If you want the M105 heater power reported in watts, define the BED_WATTS, and (shared for all extruders) EXTRUDER_WATTS
230
-//#define EXTRUDER_WATTS (12.0*12.0/6.7) // P=U^2/R
231
-//#define BED_WATTS (12.0*12.0/1.1)      // P=U^2/R
230
+//#define HOTEND_WATTS (12.0*12.0/6.7) // P=U^2/R
231
+//#define BED_WATTS (12.0*12.0/1.1)    // P=U^2/R
232 232
 
233 233
 //===========================================================================
234 234
 //============================= PID Settings ================================
@@ -244,8 +244,8 @@
244 244
   //#define PID_DEBUG // Sends debug data to the serial port.
245 245
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
246 246
   //#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
247
-  //#define PID_PARAMS_PER_EXTRUDER // Uses separate PID parameters for each extruder (useful for mismatched extruders)
248
-                                    // Set/get with gcode: M301 E[extruder number, 0-2]
247
+  //#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
248
+                                  // Set/get with gcode: M301 E[extruder number, 0-2]
249 249
   #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
250 250
                                   // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
251 251
   #define PID_INTEGRAL_DRIVE_MAX PID_MAX  //limit for the integral term

+ 1
- 1
Marlin/example_configurations/Hephestos/Configuration_adv.h Целия файл

@@ -237,7 +237,7 @@
237 237
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
238 238
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position
239 239
   #define X2_HOME_POS X2_MAX_POS // default home position is the maximum carriage position
240
-      // However: In this mode the EXTRUDER_OFFSET_X value for the second extruder provides a software
240
+      // However: In this mode the HOTEND_OFFSET_X value for the second extruder provides a software
241 241
       // override for X2_HOME_POS. This also allow recalibration of the distance between the two endstops
242 242
       // without modifying the firmware (through the "M218 T1 X???" command).
243 243
       // Remember: you should set the second extruder x-offset to 0 in your slicer.

+ 6
- 6
Marlin/example_configurations/Hephestos_2/Configuration.h Целия файл

@@ -126,8 +126,8 @@
126 126
 // Offset of the extruders (uncomment if using more than one and relying on firmware to position when changing).
127 127
 // The offset has to be X=0, Y=0 for the extruder 0 hotend (default extruder).
128 128
 // For the other hotends it is their distance from the extruder 0 hotend.
129
-//#define EXTRUDER_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
130
-//#define EXTRUDER_OFFSET_Y {0.0, 5.00}  // (in mm) for each extruder, offset of the hotend on the Y axis
129
+//#define HOTEND_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
130
+//#define HOTEND_OFFSET_Y {0.0, 5.00}  // (in mm) for each extruder, offset of the hotend on the Y axis
131 131
 
132 132
 //// The following define selects which power supply you have. Please choose the one that matches your setup
133 133
 // 1 = ATX
@@ -224,8 +224,8 @@
224 224
 #define BED_MAXTEMP 150
225 225
 
226 226
 // If you want the M105 heater power reported in watts, define the BED_WATTS, and (shared for all extruders) EXTRUDER_WATTS
227
-//#define EXTRUDER_WATTS (12.0*12.0/6.7) // P=U^2/R
228
-//#define BED_WATTS (12.0*12.0/1.1)      // P=U^2/R
227
+//#define HOTEND_WATTS (12.0*12.0/6.7) // P=U^2/R
228
+//#define BED_WATTS (12.0*12.0/1.1)    // P=U^2/R
229 229
 
230 230
 //===========================================================================
231 231
 //============================= PID Settings ================================
@@ -241,8 +241,8 @@
241 241
   //#define PID_DEBUG // Sends debug data to the serial port.
242 242
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
243 243
   //#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
244
-  //#define PID_PARAMS_PER_EXTRUDER // Uses separate PID parameters for each extruder (useful for mismatched extruders)
245
-                                    // Set/get with gcode: M301 E[extruder number, 0-2]
244
+  //#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
245
+                                  // Set/get with gcode: M301 E[extruder number, 0-2]
246 246
   #define PID_FUNCTIONAL_RANGE 250  // If the temperature difference between the target temperature and the actual temperature
247 247
                                     // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
248 248
   #define PID_INTEGRAL_DRIVE_MAX PID_MAX  //limit for the integral term

+ 1
- 1
Marlin/example_configurations/Hephestos_2/Configuration_adv.h Целия файл

@@ -237,7 +237,7 @@
237 237
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
238 238
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position
239 239
   #define X2_HOME_POS X2_MAX_POS // default home position is the maximum carriage position
240
-      // However: In this mode the EXTRUDER_OFFSET_X value for the second extruder provides a software
240
+      // However: In this mode the HOTEND_OFFSET_X value for the second extruder provides a software
241 241
       // override for X2_HOME_POS. This also allow recalibration of the distance between the two endstops
242 242
       // without modifying the firmware (through the "M218 T1 X???" command).
243 243
       // Remember: you should set the second extruder x-offset to 0 in your slicer.

+ 6
- 6
Marlin/example_configurations/K8200/Configuration.h Целия файл

@@ -133,8 +133,8 @@
133 133
 // Offset of the extruders (uncomment if using more than one and relying on firmware to position when changing).
134 134
 // The offset has to be X=0, Y=0 for the extruder 0 hotend (default extruder).
135 135
 // For the other hotends it is their distance from the extruder 0 hotend.
136
-//#define EXTRUDER_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
137
-//#define EXTRUDER_OFFSET_Y {0.0, 5.00}  // (in mm) for each extruder, offset of the hotend on the Y axis
136
+//#define HOTEND_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
137
+//#define HOTEND_OFFSET_Y {0.0, 5.00}  // (in mm) for each extruder, offset of the hotend on the Y axis
138 138
 
139 139
 //// The following define selects which power supply you have. Please choose the one that matches your setup
140 140
 // 1 = ATX
@@ -231,8 +231,8 @@
231 231
 #define BED_MAXTEMP 150
232 232
 
233 233
 // If you want the M105 heater power reported in watts, define the BED_WATTS, and (shared for all extruders) EXTRUDER_WATTS
234
-//#define EXTRUDER_WATTS (12.0*12.0/6.7) // P=U^2/R
235
-//#define BED_WATTS (12.0*12.0/1.1)      // P=U^2/R
234
+//#define HOTEND_WATTS (12.0*12.0/6.7) // P=U^2/R
235
+//#define BED_WATTS (12.0*12.0/1.1)    // P=U^2/R
236 236
 
237 237
 //===========================================================================
238 238
 //============================= PID Settings ================================
@@ -248,8 +248,8 @@
248 248
   //#define PID_DEBUG // Sends debug data to the serial port.
249 249
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
250 250
   //#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
251
-  //#define PID_PARAMS_PER_EXTRUDER // Uses separate PID parameters for each extruder (useful for mismatched extruders)
252
-                                    // Set/get with gcode: M301 E[extruder number, 0-2]
251
+  //#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
252
+                                  // Set/get with gcode: M301 E[extruder number, 0-2]
253 253
   #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
254 254
                                   // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
255 255
   #define PID_INTEGRAL_DRIVE_MAX PID_MAX  //limit for the integral term

+ 1
- 1
Marlin/example_configurations/K8200/Configuration_adv.h Целия файл

@@ -243,7 +243,7 @@
243 243
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
244 244
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position
245 245
   #define X2_HOME_POS X2_MAX_POS // default home position is the maximum carriage position
246
-      // However: In this mode the EXTRUDER_OFFSET_X value for the second extruder provides a software
246
+      // However: In this mode the HOTEND_OFFSET_X value for the second extruder provides a software
247 247
       // override for X2_HOME_POS. This also allow recalibration of the distance between the two endstops
248 248
       // without modifying the firmware (through the "M218 T1 X???" command).
249 249
       // Remember: you should set the second extruder x-offset to 0 in your slicer.

+ 6
- 6
Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h Целия файл

@@ -126,8 +126,8 @@
126 126
 // Offset of the extruders (uncomment if using more than one and relying on firmware to position when changing).
127 127
 // The offset has to be X=0, Y=0 for the extruder 0 hotend (default extruder).
128 128
 // For the other hotends it is their distance from the extruder 0 hotend.
129
-//#define EXTRUDER_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
130
-//#define EXTRUDER_OFFSET_Y {0.0, 5.00}  // (in mm) for each extruder, offset of the hotend on the Y axis
129
+//#define HOTEND_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
130
+//#define HOTEND_OFFSET_Y {0.0, 5.00}  // (in mm) for each extruder, offset of the hotend on the Y axis
131 131
 
132 132
 //// The following define selects which power supply you have. Please choose the one that matches your setup
133 133
 // 1 = ATX
@@ -224,8 +224,8 @@
224 224
 #define BED_MAXTEMP 150
225 225
 
226 226
 // If you want the M105 heater power reported in watts, define the BED_WATTS, and (shared for all extruders) EXTRUDER_WATTS
227
-//#define EXTRUDER_WATTS (12.0*12.0/6.7) // P=U^2/R
228
-//#define BED_WATTS (12.0*12.0/1.1)      // P=U^2/R
227
+//#define HOTEND_WATTS (12.0*12.0/6.7) // P=U^2/R
228
+//#define BED_WATTS (12.0*12.0/1.1)    // P=U^2/R
229 229
 
230 230
 //===========================================================================
231 231
 //============================= PID Settings ================================
@@ -241,8 +241,8 @@
241 241
   //#define PID_DEBUG // Sends debug data to the serial port.
242 242
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
243 243
   //#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
244
-  //#define PID_PARAMS_PER_EXTRUDER // Uses separate PID parameters for each extruder (useful for mismatched extruders)
245
-                                    // Set/get with gcode: M301 E[extruder number, 0-2]
244
+  //#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
245
+                                  // Set/get with gcode: M301 E[extruder number, 0-2]
246 246
   #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
247 247
                                   // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
248 248
   #define PID_INTEGRAL_DRIVE_MAX PID_MAX  //limit for the integral term

+ 6
- 6
Marlin/example_configurations/RigidBot/Configuration.h Целия файл

@@ -126,8 +126,8 @@
126 126
 // Offset of the extruders (uncomment if using more than one and relying on firmware to position when changing).
127 127
 // The offset has to be X=0, Y=0 for the extruder 0 hotend (default extruder).
128 128
 // For the other hotends it is their distance from the extruder 0 hotend.
129
-#define EXTRUDER_OFFSET_X {0.0, 36.00} // (in mm) for each extruder, offset of the hotend on the X axis
130
-#define EXTRUDER_OFFSET_Y {0.0, 0.00}  // (in mm) for each extruder, offset of the hotend on the Y axis
129
+#define HOTEND_OFFSET_X {0.0, 36.00} // (in mm) for each extruder, offset of the hotend on the X axis
130
+#define HOTEND_OFFSET_Y {0.0, 0.00}  // (in mm) for each extruder, offset of the hotend on the Y axis
131 131
 
132 132
 //// The following define selects which power supply you have. Please choose the one that matches your setup
133 133
 // 1 = ATX
@@ -224,8 +224,8 @@
224 224
 #define BED_MAXTEMP 150
225 225
 
226 226
 // If you want the M105 heater power reported in watts, define the BED_WATTS, and (shared for all extruders) EXTRUDER_WATTS
227
-//#define EXTRUDER_WATTS (12.0*12.0/6.7) // P=U^2/R
228
-//#define BED_WATTS (12.0*12.0/1.1)      // P=U^2/R
227
+//#define HOTEND_WATTS (12.0*12.0/6.7) // P=U^2/R
228
+//#define BED_WATTS (12.0*12.0/1.1)    // P=U^2/R
229 229
 
230 230
 //===========================================================================
231 231
 //============================= PID Settings ================================
@@ -241,8 +241,8 @@
241 241
   //#define PID_DEBUG // Sends debug data to the serial port.
242 242
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
243 243
   //#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
244
-  //#define PID_PARAMS_PER_EXTRUDER // Uses separate PID parameters for each extruder (useful for mismatched extruders)
245
-                                    // Set/get with gcode: M301 E[extruder number, 0-2]
244
+  //#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
245
+                                  // Set/get with gcode: M301 E[extruder number, 0-2]
246 246
   #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
247 247
                                   // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
248 248
   #define PID_INTEGRAL_DRIVE_MAX PID_MAX  //limit for the integral term

+ 1
- 1
Marlin/example_configurations/RigidBot/Configuration_adv.h Целия файл

@@ -237,7 +237,7 @@
237 237
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
238 238
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position
239 239
   #define X2_HOME_POS X2_MAX_POS // default home position is the maximum carriage position
240
-      // However: In this mode the EXTRUDER_OFFSET_X value for the second extruder provides a software
240
+      // However: In this mode the HOTEND_OFFSET_X value for the second extruder provides a software
241 241
       // override for X2_HOME_POS. This also allow recalibration of the distance between the two endstops
242 242
       // without modifying the firmware (through the "M218 T1 X???" command).
243 243
       // Remember: you should set the second extruder x-offset to 0 in your slicer.

+ 6
- 6
Marlin/example_configurations/SCARA/Configuration.h Целия файл

@@ -151,8 +151,8 @@
151 151
 // Offset of the extruders (uncomment if using more than one and relying on firmware to position when changing).
152 152
 // The offset has to be X=0, Y=0 for the extruder 0 hotend (default extruder).
153 153
 // For the other hotends it is their distance from the extruder 0 hotend.
154
-//#define EXTRUDER_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
155
-//#define EXTRUDER_OFFSET_Y {0.0, 5.00}  // (in mm) for each extruder, offset of the hotend on the Y axis
154
+//#define HOTEND_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
155
+//#define HOTEND_OFFSET_Y {0.0, 5.00}  // (in mm) for each extruder, offset of the hotend on the Y axis
156 156
 
157 157
 //// The following define selects which power supply you have. Please choose the one that matches your setup
158 158
 // 1 = ATX
@@ -249,8 +249,8 @@
249 249
 #define BED_MAXTEMP 150
250 250
 
251 251
 // If you want the M105 heater power reported in watts, define the BED_WATTS, and (shared for all extruders) EXTRUDER_WATTS
252
-#define EXTRUDER_WATTS (2*2/5.9)       // P=U^2/R
253
-#define BED_WATTS (5.45*5.45/2.2)      // P=U^2/R
252
+#define HOTEND_WATTS (2*2/5.9)       // P=U^2/R
253
+#define BED_WATTS (5.45*5.45/2.2)    // P=U^2/R
254 254
 
255 255
 //===========================================================================
256 256
 //============================= PID Settings ================================
@@ -266,8 +266,8 @@
266 266
   //#define PID_DEBUG // Sends debug data to the serial port.
267 267
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
268 268
   //#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
269
-  //#define PID_PARAMS_PER_EXTRUDER // Uses separate PID parameters for each extruder (useful for mismatched extruders)
270
-                                    // Set/get with gcode: M301 E[extruder number, 0-2]
269
+  //#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
270
+                                  // Set/get with gcode: M301 E[extruder number, 0-2]
271 271
   #define PID_FUNCTIONAL_RANGE 20 // If the temperature difference between the target temperature and the actual temperature
272 272
                                   // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
273 273
   #define PID_INTEGRAL_DRIVE_MAX PID_MAX  //limit for the integral term

+ 1
- 1
Marlin/example_configurations/SCARA/Configuration_adv.h Целия файл

@@ -237,7 +237,7 @@
237 237
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
238 238
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position
239 239
   #define X2_HOME_POS X2_MAX_POS // default home position is the maximum carriage position
240
-      // However: In this mode the EXTRUDER_OFFSET_X value for the second extruder provides a software
240
+      // However: In this mode the HOTEND_OFFSET_X value for the second extruder provides a software
241 241
       // override for X2_HOME_POS. This also allow recalibration of the distance between the two endstops
242 242
       // without modifying the firmware (through the "M218 T1 X???" command).
243 243
       // Remember: you should set the second extruder x-offset to 0 in your slicer.

+ 6
- 6
Marlin/example_configurations/TAZ4/Configuration.h Целия файл

@@ -126,8 +126,8 @@
126 126
 // Offset of the extruders (uncomment if using more than one and relying on firmware to position when changing).
127 127
 // The offset has to be X=0, Y=0 for the extruder 0 hotend (default extruder).
128 128
 // For the other hotends it is their distance from the extruder 0 hotend.
129
-//#define EXTRUDER_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
130
-//#define EXTRUDER_OFFSET_Y {0.0, 5.00}  // (in mm) for each extruder, offset of the hotend on the Y axis
129
+//#define HOTEND_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
130
+//#define HOTEND_OFFSET_Y {0.0, 5.00}  // (in mm) for each extruder, offset of the hotend on the Y axis
131 131
 
132 132
 //// The following define selects which power supply you have. Please choose the one that matches your setup
133 133
 // 1 = ATX
@@ -224,8 +224,8 @@
224 224
 #define BED_MAXTEMP 150
225 225
 
226 226
 // If you want the M105 heater power reported in watts, define the BED_WATTS, and (shared for all extruders) EXTRUDER_WATTS
227
-//#define EXTRUDER_WATTS (12.0*12.0/6.7) // P=U^2/R
228
-//#define BED_WATTS (12.0*12.0/1.1)      // P=U^2/R
227
+//#define HOTEND_WATTS (12.0*12.0/6.7) // P=U^2/R
228
+//#define BED_WATTS (12.0*12.0/1.1)    // P=U^2/R
229 229
 
230 230
 //===========================================================================
231 231
 //============================= PID Settings ================================
@@ -241,8 +241,8 @@
241 241
   //#define PID_DEBUG // Sends debug data to the serial port.
242 242
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
243 243
   //#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
244
-  //#define PID_PARAMS_PER_EXTRUDER // Uses separate PID parameters for each extruder (useful for mismatched extruders)
245
-                                    // Set/get with gcode: M301 E[extruder number, 0-2]
244
+  //#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
245
+                                  // Set/get with gcode: M301 E[extruder number, 0-2]
246 246
   #define PID_FUNCTIONAL_RANGE 16 // If the temperature difference between the target temperature and the actual temperature
247 247
                                   // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
248 248
   #define PID_INTEGRAL_DRIVE_MAX PID_MAX  //limit for the integral term

+ 1
- 1
Marlin/example_configurations/TAZ4/Configuration_adv.h Целия файл

@@ -245,7 +245,7 @@
245 245
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
246 246
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position
247 247
   #define X2_HOME_POS X2_MAX_POS // default home position is the maximum carriage position
248
-      // However: In this mode the EXTRUDER_OFFSET_X value for the second extruder provides a software
248
+      // However: In this mode the HOTEND_OFFSET_X value for the second extruder provides a software
249 249
       // override for X2_HOME_POS. This also allow recalibration of the distance between the two endstops
250 250
       // without modifying the firmware (through the "M218 T1 X???" command).
251 251
       // Remember: you should set the second extruder x-offset to 0 in your slicer.

+ 6
- 6
Marlin/example_configurations/WITBOX/Configuration.h Целия файл

@@ -129,8 +129,8 @@
129 129
 // Offset of the extruders (uncomment if using more than one and relying on firmware to position when changing).
130 130
 // The offset has to be X=0, Y=0 for the extruder 0 hotend (default extruder).
131 131
 // For the other hotends it is their distance from the extruder 0 hotend.
132
-//#define EXTRUDER_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
133
-//#define EXTRUDER_OFFSET_Y {0.0, 5.00}  // (in mm) for each extruder, offset of the hotend on the Y axis
132
+//#define HOTEND_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
133
+//#define HOTEND_OFFSET_Y {0.0, 5.00}  // (in mm) for each extruder, offset of the hotend on the Y axis
134 134
 
135 135
 //// The following define selects which power supply you have. Please choose the one that matches your setup
136 136
 // 1 = ATX
@@ -227,8 +227,8 @@
227 227
 #define BED_MAXTEMP 150
228 228
 
229 229
 // If you want the M105 heater power reported in watts, define the BED_WATTS, and (shared for all extruders) EXTRUDER_WATTS
230
-//#define EXTRUDER_WATTS (12.0*12.0/6.7) // P=U^2/R
231
-//#define BED_WATTS (12.0*12.0/1.1)      // P=U^2/R
230
+//#define HOTEND_WATTS (12.0*12.0/6.7) // P=U^2/R
231
+//#define BED_WATTS (12.0*12.0/1.1)    // P=U^2/R
232 232
 
233 233
 //===========================================================================
234 234
 //============================= PID Settings ================================
@@ -244,8 +244,8 @@
244 244
   //#define PID_DEBUG // Sends debug data to the serial port.
245 245
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
246 246
   //#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
247
-  //#define PID_PARAMS_PER_EXTRUDER // Uses separate PID parameters for each extruder (useful for mismatched extruders)
248
-                                    // Set/get with gcode: M301 E[extruder number, 0-2]
247
+  //#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
248
+                                  // Set/get with gcode: M301 E[extruder number, 0-2]
249 249
   #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
250 250
                                   // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
251 251
   #define PID_INTEGRAL_DRIVE_MAX PID_MAX  //limit for the integral term

+ 1
- 1
Marlin/example_configurations/WITBOX/Configuration_adv.h Целия файл

@@ -237,7 +237,7 @@
237 237
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
238 238
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position
239 239
   #define X2_HOME_POS X2_MAX_POS // default home position is the maximum carriage position
240
-      // However: In this mode the EXTRUDER_OFFSET_X value for the second extruder provides a software
240
+      // However: In this mode the HOTEND_OFFSET_X value for the second extruder provides a software
241 241
       // override for X2_HOME_POS. This also allow recalibration of the distance between the two endstops
242 242
       // without modifying the firmware (through the "M218 T1 X???" command).
243 243
       // Remember: you should set the second extruder x-offset to 0 in your slicer.

+ 6
- 6
Marlin/example_configurations/adafruit/ST7565/Configuration.h Целия файл

@@ -126,8 +126,8 @@
126 126
 // Offset of the extruders (uncomment if using more than one and relying on firmware to position when changing).
127 127
 // The offset has to be X=0, Y=0 for the extruder 0 hotend (default extruder).
128 128
 // For the other hotends it is their distance from the extruder 0 hotend.
129
-//#define EXTRUDER_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
130
-//#define EXTRUDER_OFFSET_Y {0.0, 5.00}  // (in mm) for each extruder, offset of the hotend on the Y axis
129
+//#define HOTEND_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
130
+//#define HOTEND_OFFSET_Y {0.0, 5.00}  // (in mm) for each extruder, offset of the hotend on the Y axis
131 131
 
132 132
 //// The following define selects which power supply you have. Please choose the one that matches your setup
133 133
 // 1 = ATX
@@ -224,8 +224,8 @@
224 224
 #define BED_MAXTEMP 150
225 225
 
226 226
 // If you want the M105 heater power reported in watts, define the BED_WATTS, and (shared for all extruders) EXTRUDER_WATTS
227
-//#define EXTRUDER_WATTS (12.0*12.0/6.7) // P=U^2/R
228
-//#define BED_WATTS (12.0*12.0/1.1)      // P=U^2/R
227
+//#define HOTEND_WATTS (12.0*12.0/6.7) // P=U^2/R
228
+//#define BED_WATTS (12.0*12.0/1.1)    // P=U^2/R
229 229
 
230 230
 //===========================================================================
231 231
 //============================= PID Settings ================================
@@ -241,8 +241,8 @@
241 241
   //#define PID_DEBUG // Sends debug data to the serial port.
242 242
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
243 243
   //#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
244
-  //#define PID_PARAMS_PER_EXTRUDER // Uses separate PID parameters for each extruder (useful for mismatched extruders)
245
-                                    // Set/get with gcode: M301 E[extruder number, 0-2]
244
+  //#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
245
+                                  // Set/get with gcode: M301 E[extruder number, 0-2]
246 246
   #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
247 247
                                   // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
248 248
   #define PID_INTEGRAL_DRIVE_MAX PID_MAX  //limit for the integral term

+ 6
- 6
Marlin/example_configurations/delta/biv2.5/Configuration.h Целия файл

@@ -126,8 +126,8 @@
126 126
 // Offset of the extruders (uncomment if using more than one and relying on firmware to position when changing).
127 127
 // The offset has to be X=0, Y=0 for the extruder 0 hotend (default extruder).
128 128
 // For the other hotends it is their distance from the extruder 0 hotend.
129
-//#define EXTRUDER_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
130
-//#define EXTRUDER_OFFSET_Y {0.0, 5.00}  // (in mm) for each extruder, offset of the hotend on the Y axis
129
+//#define HOTEND_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
130
+//#define HOTEND_OFFSET_Y {0.0, 5.00}  // (in mm) for each extruder, offset of the hotend on the Y axis
131 131
 
132 132
 //// The following define selects which power supply you have. Please choose the one that matches your setup
133 133
 // 1 = ATX
@@ -224,8 +224,8 @@
224 224
 #define BED_MAXTEMP 150
225 225
 
226 226
 // If you want the M105 heater power reported in watts, define the BED_WATTS, and (shared for all extruders) EXTRUDER_WATTS
227
-//#define EXTRUDER_WATTS (12.0*12.0/6.7) // P=U^2/R
228
-//#define BED_WATTS (12.0*12.0/1.1)      // P=U^2/R
227
+//#define HOTEND_WATTS (12.0*12.0/6.7) // P=U^2/R
228
+//#define BED_WATTS (12.0*12.0/1.1)    // P=U^2/R
229 229
 
230 230
 //===========================================================================
231 231
 //============================= PID Settings ================================
@@ -241,8 +241,8 @@
241 241
   //#define PID_DEBUG // Sends debug data to the serial port.
242 242
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
243 243
   //#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
244
-  //#define PID_PARAMS_PER_EXTRUDER // Uses separate PID parameters for each extruder (useful for mismatched extruders)
245
-                                    // Set/get with gcode: M301 E[extruder number, 0-2]
244
+  //#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
245
+                                  // Set/get with gcode: M301 E[extruder number, 0-2]
246 246
   #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
247 247
                                   // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
248 248
   #define PID_INTEGRAL_DRIVE_MAX PID_MAX  //limit for the integral term

+ 1
- 1
Marlin/example_configurations/delta/biv2.5/Configuration_adv.h Целия файл

@@ -237,7 +237,7 @@
237 237
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
238 238
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position
239 239
   #define X2_HOME_POS X2_MAX_POS // default home position is the maximum carriage position
240
-      // However: In this mode the EXTRUDER_OFFSET_X value for the second extruder provides a software
240
+      // However: In this mode the HOTEND_OFFSET_X value for the second extruder provides a software
241 241
       // override for X2_HOME_POS. This also allow recalibration of the distance between the two endstops
242 242
       // without modifying the firmware (through the "M218 T1 X???" command).
243 243
       // Remember: you should set the second extruder x-offset to 0 in your slicer.

+ 6
- 6
Marlin/example_configurations/delta/generic/Configuration.h Целия файл

@@ -126,8 +126,8 @@
126 126
 // Offset of the extruders (uncomment if using more than one and relying on firmware to position when changing).
127 127
 // The offset has to be X=0, Y=0 for the extruder 0 hotend (default extruder).
128 128
 // For the other hotends it is their distance from the extruder 0 hotend.
129
-//#define EXTRUDER_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
130
-//#define EXTRUDER_OFFSET_Y {0.0, 5.00}  // (in mm) for each extruder, offset of the hotend on the Y axis
129
+//#define HOTEND_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
130
+//#define HOTEND_OFFSET_Y {0.0, 5.00}  // (in mm) for each extruder, offset of the hotend on the Y axis
131 131
 
132 132
 //// The following define selects which power supply you have. Please choose the one that matches your setup
133 133
 // 1 = ATX
@@ -224,8 +224,8 @@
224 224
 #define BED_MAXTEMP 150
225 225
 
226 226
 // If you want the M105 heater power reported in watts, define the BED_WATTS, and (shared for all extruders) EXTRUDER_WATTS
227
-//#define EXTRUDER_WATTS (12.0*12.0/6.7) // P=U^2/R
228
-//#define BED_WATTS (12.0*12.0/1.1)      // P=U^2/R
227
+//#define HOTEND_WATTS (12.0*12.0/6.7) // P=U^2/R
228
+//#define BED_WATTS (12.0*12.0/1.1)    // P=U^2/R
229 229
 
230 230
 //===========================================================================
231 231
 //============================= PID Settings ================================
@@ -241,8 +241,8 @@
241 241
   //#define PID_DEBUG // Sends debug data to the serial port.
242 242
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
243 243
   //#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
244
-  //#define PID_PARAMS_PER_EXTRUDER // Uses separate PID parameters for each extruder (useful for mismatched extruders)
245
-                                    // Set/get with gcode: M301 E[extruder number, 0-2]
244
+  //#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
245
+                                  // Set/get with gcode: M301 E[extruder number, 0-2]
246 246
   #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
247 247
                                   // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
248 248
   #define PID_INTEGRAL_DRIVE_MAX PID_MAX  //limit for the integral term

+ 1
- 1
Marlin/example_configurations/delta/generic/Configuration_adv.h Целия файл

@@ -237,7 +237,7 @@
237 237
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
238 238
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position
239 239
   #define X2_HOME_POS X2_MAX_POS // default home position is the maximum carriage position
240
-      // However: In this mode the EXTRUDER_OFFSET_X value for the second extruder provides a software
240
+      // However: In this mode the HOTEND_OFFSET_X value for the second extruder provides a software
241 241
       // override for X2_HOME_POS. This also allow recalibration of the distance between the two endstops
242 242
       // without modifying the firmware (through the "M218 T1 X???" command).
243 243
       // Remember: you should set the second extruder x-offset to 0 in your slicer.

+ 6
- 6
Marlin/example_configurations/delta/kossel_mini/Configuration.h Целия файл

@@ -126,8 +126,8 @@
126 126
 // Offset of the extruders (uncomment if using more than one and relying on firmware to position when changing).
127 127
 // The offset has to be X=0, Y=0 for the extruder 0 hotend (default extruder).
128 128
 // For the other hotends it is their distance from the extruder 0 hotend.
129
-//#define EXTRUDER_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
130
-//#define EXTRUDER_OFFSET_Y {0.0, 5.00}  // (in mm) for each extruder, offset of the hotend on the Y axis
129
+//#define HOTEND_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
130
+//#define HOTEND_OFFSET_Y {0.0, 5.00}  // (in mm) for each extruder, offset of the hotend on the Y axis
131 131
 
132 132
 //// The following define selects which power supply you have. Please choose the one that matches your setup
133 133
 // 1 = ATX
@@ -224,8 +224,8 @@
224 224
 #define BED_MAXTEMP 150
225 225
 
226 226
 // If you want the M105 heater power reported in watts, define the BED_WATTS, and (shared for all extruders) EXTRUDER_WATTS
227
-//#define EXTRUDER_WATTS (12.0*12.0/6.7) // P=U^2/R
228
-//#define BED_WATTS (12.0*12.0/1.1)      // P=U^2/R
227
+//#define HOTEND_WATTS (12.0*12.0/6.7) // P=U^2/R
228
+//#define BED_WATTS (12.0*12.0/1.1)    // P=U^2/R
229 229
 
230 230
 //===========================================================================
231 231
 //============================= PID Settings ================================
@@ -241,8 +241,8 @@
241 241
   //#define PID_DEBUG // Sends debug data to the serial port.
242 242
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
243 243
   //#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
244
-  //#define PID_PARAMS_PER_EXTRUDER // Uses separate PID parameters for each extruder (useful for mismatched extruders)
245
-                                    // Set/get with gcode: M301 E[extruder number, 0-2]
244
+  //#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
245
+                                  // Set/get with gcode: M301 E[extruder number, 0-2]
246 246
   #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
247 247
                                   // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
248 248
   #define PID_INTEGRAL_DRIVE_MAX PID_MAX  //limit for the integral term

+ 1
- 1
Marlin/example_configurations/delta/kossel_mini/Configuration_adv.h Целия файл

@@ -237,7 +237,7 @@
237 237
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
238 238
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position
239 239
   #define X2_HOME_POS X2_MAX_POS // default home position is the maximum carriage position
240
-      // However: In this mode the EXTRUDER_OFFSET_X value for the second extruder provides a software
240
+      // However: In this mode the HOTEND_OFFSET_X value for the second extruder provides a software
241 241
       // override for X2_HOME_POS. This also allow recalibration of the distance between the two endstops
242 242
       // without modifying the firmware (through the "M218 T1 X???" command).
243 243
       // Remember: you should set the second extruder x-offset to 0 in your slicer.

+ 6
- 6
Marlin/example_configurations/delta/kossel_pro/Configuration.h Целия файл

@@ -132,8 +132,8 @@
132 132
 // Offset of the extruders (uncomment if using more than one and relying on firmware to position when changing).
133 133
 // The offset has to be X=0, Y=0 for the extruder 0 hotend (default extruder).
134 134
 // For the other hotends it is their distance from the extruder 0 hotend.
135
-//#define EXTRUDER_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
136
-//#define EXTRUDER_OFFSET_Y {0.0, 5.00}  // (in mm) for each extruder, offset of the hotend on the Y axis
135
+//#define HOTEND_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
136
+//#define HOTEND_OFFSET_Y {0.0, 5.00}  // (in mm) for each extruder, offset of the hotend on the Y axis
137 137
 
138 138
 //// The following define selects which power supply you have. Please choose the one that matches your setup
139 139
 // 1 = ATX
@@ -230,8 +230,8 @@
230 230
 #define BED_MAXTEMP 150
231 231
 
232 232
 // If you want the M105 heater power reported in watts, define the BED_WATTS, and (shared for all extruders) EXTRUDER_WATTS
233
-//#define EXTRUDER_WATTS (12.0*12.0/6.7) // P=U^2/R
234
-//#define BED_WATTS (12.0*12.0/1.1)      // P=U^2/R
233
+//#define HOTEND_WATTS (12.0*12.0/6.7) // P=U^2/R
234
+//#define BED_WATTS (12.0*12.0/1.1)    // P=U^2/R
235 235
 
236 236
 //===========================================================================
237 237
 //============================= PID Settings ================================
@@ -247,8 +247,8 @@
247 247
   //#define PID_DEBUG // Sends debug data to the serial port.
248 248
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
249 249
   //#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
250
-  //#define PID_PARAMS_PER_EXTRUDER // Uses separate PID parameters for each extruder (useful for mismatched extruders)
251
-                                    // Set/get with gcode: M301 E[extruder number, 0-2]
250
+  //#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
251
+                                  // Set/get with gcode: M301 E[extruder number, 0-2]
252 252
   #define PID_FUNCTIONAL_RANGE 50 // If the temperature difference between the target temperature and the actual temperature
253 253
                                   // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
254 254
   #define PID_INTEGRAL_DRIVE_MAX PID_MAX  //limit for the integral term

+ 1
- 1
Marlin/example_configurations/delta/kossel_pro/Configuration_adv.h Целия файл

@@ -242,7 +242,7 @@
242 242
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
243 243
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position
244 244
   #define X2_HOME_POS X2_MAX_POS // default home position is the maximum carriage position
245
-      // However: In this mode the EXTRUDER_OFFSET_X value for the second extruder provides a software
245
+      // However: In this mode the HOTEND_OFFSET_X value for the second extruder provides a software
246 246
       // override for X2_HOME_POS. This also allow recalibration of the distance between the two endstops
247 247
       // without modifying the firmware (through the "M218 T1 X???" command).
248 248
       // Remember: you should set the second extruder x-offset to 0 in your slicer.

+ 6
- 6
Marlin/example_configurations/delta/kossel_xl/Configuration.h Целия файл

@@ -119,8 +119,8 @@
119 119
 // Offset of the extruders (uncomment if using more than one and relying on firmware to position when changing).
120 120
 // The offset has to be X=0, Y=0 for the extruder 0 hotend (default extruder).
121 121
 // For the other hotends it is their distance from the extruder 0 hotend.
122
-//#define EXTRUDER_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
123
-//#define EXTRUDER_OFFSET_Y {0.0, 5.00}  // (in mm) for each extruder, offset of the hotend on the Y axis
122
+//#define HOTEND_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
123
+//#define HOTEND_OFFSET_Y {0.0, 5.00}  // (in mm) for each extruder, offset of the hotend on the Y axis
124 124
 
125 125
 //// The following define selects which power supply you have. Please choose the one that matches your setup
126 126
 // 1 = ATX
@@ -217,8 +217,8 @@
217 217
 #define BED_MAXTEMP 150
218 218
 
219 219
 // If you want the M105 heater power reported in watts, define the BED_WATTS, and (shared for all extruders) EXTRUDER_WATTS
220
-//#define EXTRUDER_WATTS (12.0*12.0/6.7) // P=U^2/R
221
-//#define BED_WATTS (12.0*12.0/1.1)      // P=U^2/R
220
+//#define HOTEND_WATTS (12.0*12.0/6.7) // P=U^2/R
221
+//#define BED_WATTS (12.0*12.0/1.1)    // P=U^2/R
222 222
 
223 223
 //===========================================================================
224 224
 //============================= PID Settings ================================
@@ -234,8 +234,8 @@
234 234
   //#define PID_DEBUG // Sends debug data to the serial port.
235 235
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
236 236
   //#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
237
-  //#define PID_PARAMS_PER_EXTRUDER // Uses separate PID parameters for each extruder (useful for mismatched extruders)
238
-                                    // Set/get with gcode: M301 E[extruder number, 0-2]
237
+  //#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
238
+                                  // Set/get with gcode: M301 E[extruder number, 0-2]
239 239
   #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
240 240
                                   // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
241 241
   #define PID_INTEGRAL_DRIVE_MAX PID_MAX  //limit for the integral term

+ 1
- 1
Marlin/example_configurations/delta/kossel_xl/Configuration_adv.h Целия файл

@@ -237,7 +237,7 @@
237 237
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
238 238
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position
239 239
   #define X2_HOME_POS X2_MAX_POS // default home position is the maximum carriage position
240
-      // However: In this mode the EXTRUDER_OFFSET_X value for the second extruder provides a software
240
+      // However: In this mode the HOTEND_OFFSET_X value for the second extruder provides a software
241 241
       // override for X2_HOME_POS. This also allow recalibration of the distance between the two endstops
242 242
       // without modifying the firmware (through the "M218 T1 X???" command).
243 243
       // Remember: you should set the second extruder x-offset to 0 in your slicer.

+ 6
- 6
Marlin/example_configurations/makibox/Configuration.h Целия файл

@@ -126,8 +126,8 @@
126 126
 // Offset of the extruders (uncomment if using more than one and relying on firmware to position when changing).
127 127
 // The offset has to be X=0, Y=0 for the extruder 0 hotend (default extruder).
128 128
 // For the other hotends it is their distance from the extruder 0 hotend.
129
-//#define EXTRUDER_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
130
-//#define EXTRUDER_OFFSET_Y {0.0, 5.00}  // (in mm) for each extruder, offset of the hotend on the Y axis
129
+//#define HOTEND_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
130
+//#define HOTEND_OFFSET_Y {0.0, 5.00}  // (in mm) for each extruder, offset of the hotend on the Y axis
131 131
 
132 132
 //// The following define selects which power supply you have. Please choose the one that matches your setup
133 133
 // 1 = ATX
@@ -224,8 +224,8 @@
224 224
 #define BED_MAXTEMP 150
225 225
 
226 226
 // If you want the M105 heater power reported in watts, define the BED_WATTS, and (shared for all extruders) EXTRUDER_WATTS
227
-//#define EXTRUDER_WATTS (12.0*12.0/6.7) // P=U^2/R
228
-//#define BED_WATTS (12.0*12.0/1.1)      // P=U^2/R
227
+//#define HOTEND_WATTS (12.0*12.0/6.7) // P=U^2/R
228
+//#define BED_WATTS (12.0*12.0/1.1)    // P=U^2/R
229 229
 
230 230
 //===========================================================================
231 231
 //============================= PID Settings ================================
@@ -241,8 +241,8 @@
241 241
   //#define PID_DEBUG // Sends debug data to the serial port.
242 242
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
243 243
   //#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
244
-  //#define PID_PARAMS_PER_EXTRUDER // Uses separate PID parameters for each extruder (useful for mismatched extruders)
245
-                                    // Set/get with gcode: M301 E[extruder number, 0-2]
244
+  //#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
245
+                                  // Set/get with gcode: M301 E[extruder number, 0-2]
246 246
   #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
247 247
                                   // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
248 248
   #define PID_INTEGRAL_DRIVE_MAX PID_MAX  //limit for the integral term

+ 1
- 1
Marlin/example_configurations/makibox/Configuration_adv.h Целия файл

@@ -237,7 +237,7 @@
237 237
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
238 238
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position
239 239
   #define X2_HOME_POS X2_MAX_POS // default home position is the maximum carriage position
240
-      // However: In this mode the EXTRUDER_OFFSET_X value for the second extruder provides a software
240
+      // However: In this mode the HOTEND_OFFSET_X value for the second extruder provides a software
241 241
       // override for X2_HOME_POS. This also allow recalibration of the distance between the two endstops
242 242
       // without modifying the firmware (through the "M218 T1 X???" command).
243 243
       // Remember: you should set the second extruder x-offset to 0 in your slicer.

+ 6
- 6
Marlin/example_configurations/tvrrug/Round2/Configuration.h Целия файл

@@ -126,8 +126,8 @@
126 126
 // Offset of the extruders (uncomment if using more than one and relying on firmware to position when changing).
127 127
 // The offset has to be X=0, Y=0 for the extruder 0 hotend (default extruder).
128 128
 // For the other hotends it is their distance from the extruder 0 hotend.
129
-//#define EXTRUDER_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
130
-//#define EXTRUDER_OFFSET_Y {0.0, 5.00}  // (in mm) for each extruder, offset of the hotend on the Y axis
129
+//#define HOTEND_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
130
+//#define HOTEND_OFFSET_Y {0.0, 5.00}  // (in mm) for each extruder, offset of the hotend on the Y axis
131 131
 
132 132
 //// The following define selects which power supply you have. Please choose the one that matches your setup
133 133
 // 1 = ATX
@@ -224,8 +224,8 @@
224 224
 #define BED_MAXTEMP 150
225 225
 
226 226
 // If you want the M105 heater power reported in watts, define the BED_WATTS, and (shared for all extruders) EXTRUDER_WATTS
227
-//#define EXTRUDER_WATTS (12.0*12.0/6.7) // P=U^2/R
228
-//#define BED_WATTS (12.0*12.0/1.1)      // P=U^2/R
227
+//#define HOTEND_WATTS (12.0*12.0/6.7) // P=U^2/R
228
+//#define BED_WATTS (12.0*12.0/1.1)    // P=U^2/R
229 229
 
230 230
 //===========================================================================
231 231
 //============================= PID Settings ================================
@@ -241,8 +241,8 @@
241 241
   //#define PID_DEBUG // Sends debug data to the serial port.
242 242
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
243 243
   //#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
244
-  //#define PID_PARAMS_PER_EXTRUDER // Uses separate PID parameters for each extruder (useful for mismatched extruders)
245
-                                    // Set/get with gcode: M301 E[extruder number, 0-2]
244
+  //#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
245
+                                  // Set/get with gcode: M301 E[extruder number, 0-2]
246 246
   #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
247 247
                                   // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
248 248
   #define PID_INTEGRAL_DRIVE_MAX PID_MAX  //limit for the integral term

+ 1
- 1
Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h Целия файл

@@ -237,7 +237,7 @@
237 237
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
238 238
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position
239 239
   #define X2_HOME_POS X2_MAX_POS // default home position is the maximum carriage position
240
-      // However: In this mode the EXTRUDER_OFFSET_X value for the second extruder provides a software
240
+      // However: In this mode the HOTEND_OFFSET_X value for the second extruder provides a software
241 241
       // override for X2_HOME_POS. This also allow recalibration of the distance between the two endstops
242 242
       // without modifying the firmware (through the "M218 T1 X???" command).
243 243
       // Remember: you should set the second extruder x-offset to 0 in your slicer.

+ 23
- 4
Marlin/pins.h Целия файл

@@ -243,20 +243,38 @@
243 243
 #define marlinAnalogInputToDigitalPin(p) ((p) == -1 ? -1 : (p) + 0xA0)
244 244
 
245 245
 // List of pins which to ignore when asked to change by gcode, 0 and 1 are RX and TX, do not mess with those!
246
-#define _E0_PINS E0_STEP_PIN, E0_DIR_PIN, E0_ENABLE_PIN, E0_MS1_PIN, E0_MS2_PIN, HEATER_0_PIN, EXTRUDER_0_AUTO_FAN_PIN, marlinAnalogInputToDigitalPin(TEMP_0_PIN),
246
+#define _E0_PINS E0_STEP_PIN, E0_DIR_PIN, E0_ENABLE_PIN, E0_MS1_PIN, E0_MS2_PIN,
247 247
 #define _E1_PINS
248 248
 #define _E2_PINS
249 249
 #define _E3_PINS
250 250
 
251 251
 #if EXTRUDERS > 1
252 252
   #undef _E1_PINS
253
-  #define _E1_PINS E1_STEP_PIN, E1_DIR_PIN, E1_ENABLE_PIN, HEATER_1_PIN, E1_MS1_PIN, E1_MS2_PIN, EXTRUDER_1_AUTO_FAN_PIN, marlinAnalogInputToDigitalPin(TEMP_1_PIN),
253
+  #define _E1_PINS E1_STEP_PIN, E1_DIR_PIN, E1_ENABLE_PIN, E1_MS1_PIN, E1_MS2_PIN,
254 254
   #if EXTRUDERS > 2
255 255
     #undef _E2_PINS
256
-    #define _E2_PINS E2_STEP_PIN, E2_DIR_PIN, E2_ENABLE_PIN, HEATER_2_PIN, EXTRUDER_2_AUTO_FAN_PIN, marlinAnalogInputToDigitalPin(TEMP_2_PIN),
256
+    #define _E2_PINS E2_STEP_PIN, E2_DIR_PIN, E2_ENABLE_PIN,
257 257
     #if EXTRUDERS > 3
258 258
       #undef _E3_PINS
259
-      #define _E3_PINS E3_STEP_PIN, E3_DIR_PIN, E3_ENABLE_PIN, HEATER_3_PIN, EXTRUDER_3_AUTO_FAN_PIN, marlinAnalogInputToDigitalPin(TEMP_3_PIN),
259
+      #define _E3_PINS E3_STEP_PIN, E3_DIR_PIN, E3_ENABLE_PIN,
260
+    #endif
261
+  #endif
262
+#endif
263
+
264
+#define _H0_PINS HEATER_0_PIN, EXTRUDER_0_AUTO_FAN_PIN, marlinAnalogInputToDigitalPin(TEMP_0_PIN),
265
+#define _H1_PINS
266
+#define _H2_PINS
267
+#define _H3_PINS
268
+
269
+#if HOTENDS > 1
270
+  #undef _H1_PINS
271
+  #define _H1_PINS HEATER_1_PIN, EXTRUDER_1_AUTO_FAN_PIN, marlinAnalogInputToDigitalPin(TEMP_1_PIN),
272
+  #if HOTENDS > 2
273
+    #undef _H2_PINS
274
+    #define _H2_PINS HEATER_2_PIN, EXTRUDER_2_AUTO_FAN_PIN, marlinAnalogInputToDigitalPin(TEMP_2_PIN),
275
+    #if HOTENDS > 3
276
+      #undef _H3_PINS
277
+      #define _H3_PINS HEATER_3_PIN, EXTRUDER_3_AUTO_FAN_PIN, marlinAnalogInputToDigitalPin(TEMP_3_PIN),
260 278
     #endif
261 279
   #endif
262 280
 #endif
@@ -383,6 +401,7 @@
383 401
     Z_STEP_PIN, Z_DIR_PIN, Z_ENABLE_PIN, Z_MIN_PIN, Z_MAX_PIN, Z_MIN_PROBE_PIN, \
384 402
     PS_ON_PIN, HEATER_BED_PIN, FAN_PIN, FAN1_PIN, FAN2_PIN, CONTROLLERFAN_PIN, \
385 403
     _E0_PINS _E1_PINS _E2_PINS _E3_PINS BED_PINS \
404
+    _H0_PINS _H1_PINS _H2_PINS _H3_PINS \
386 405
     _X2_PINS _Y2_PINS _Z2_PINS \
387 406
     X_MS1_PIN, X_MS2_PIN, Y_MS1_PIN, Y_MS2_PIN, Z_MS1_PIN, Z_MS2_PIN \
388 407
   }

+ 1
- 1
Marlin/pins_MEGACONTROLLER.h Целия файл

@@ -28,7 +28,7 @@
28 28
   #error "Oops!  Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu."
29 29
 #endif
30 30
 
31
-#if EXTRUDERS > 2
31
+#if EXTRUDERS > 2 || HOTENDS > 2
32 32
   #error "Mega Controller supports up to 2 extruders. Comment this line to keep going."
33 33
 #endif
34 34
 

+ 8
- 8
Marlin/pins_RAMPS_14.h Целия файл

@@ -25,16 +25,16 @@
25 25
  *
26 26
  * Applies to the following boards:
27 27
  *
28
- *  RAMPS_14_EFB (Extruder, Fan, Bed)
29
- *  RAMPS_14_EEB (Extruder, Extruder, Bed)
30
- *  RAMPS_14_EFF (Extruder, Fan, Fan)
31
- *  RAMPS_14_EEF (Extruder, Extruder, Fan)
28
+ *  RAMPS_14_EFB (Hotend, Fan, Bed)
29
+ *  RAMPS_14_EEB (Hotend0, Hotend1, Bed)
30
+ *  RAMPS_14_EFF (Hotend, Fan0, Fan1)
31
+ *  RAMPS_14_EEF (Hotend0, Hotend1, Fan)
32 32
  *  RAMPS_14_SF  (Spindle, Controller Fan)
33 33
  *
34
- *  RAMPS_13_EFB (Extruder, Fan, Bed)
35
- *  RAMPS_13_EEB (Extruder, Extruder, Bed)
36
- *  RAMPS_13_EFF (Extruder, Fan, Fan)
37
- *  RAMPS_13_EEF (Extruder, Extruder, Fan)
34
+ *  RAMPS_13_EFB (Hotend, Fan, Bed)
35
+ *  RAMPS_13_EEB (Hotend0, Hotend1, Bed)
36
+ *  RAMPS_13_EFF (Hotend, Fan0, Fan1)
37
+ *  RAMPS_13_EEF (Hotend0, Hotend1, Fan)
38 38
  *  RAMPS_13_SF  (Spindle, Controller Fan)
39 39
  *
40 40
  *  Other pins_MYBOARD.h files may override these defaults

+ 1
- 1
Marlin/pins_RUMBA.h Целия файл

@@ -28,7 +28,7 @@
28 28
   #error "Oops!  Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu."
29 29
 #endif
30 30
 
31
-#if EXTRUDERS > 3
31
+#if EXTRUDERS > 3 || HOTENDS > 3
32 32
   #error "RUMBA supports up to 3 extruders. Comment this line to keep going."
33 33
 #endif
34 34
 

+ 94
- 94
Marlin/temperature.cpp Целия файл

@@ -42,17 +42,17 @@
42 42
   static void* heater_ttbl_map[2] = {(void*)HEATER_0_TEMPTABLE, (void*)HEATER_1_TEMPTABLE };
43 43
   static uint8_t heater_ttbllen_map[2] = { HEATER_0_TEMPTABLE_LEN, HEATER_1_TEMPTABLE_LEN };
44 44
 #else
45
-  static void* heater_ttbl_map[EXTRUDERS] = ARRAY_BY_EXTRUDERS((void*)HEATER_0_TEMPTABLE, (void*)HEATER_1_TEMPTABLE, (void*)HEATER_2_TEMPTABLE, (void*)HEATER_3_TEMPTABLE);
46
-  static uint8_t heater_ttbllen_map[EXTRUDERS] = ARRAY_BY_EXTRUDERS(HEATER_0_TEMPTABLE_LEN, HEATER_1_TEMPTABLE_LEN, HEATER_2_TEMPTABLE_LEN, HEATER_3_TEMPTABLE_LEN);
45
+  static void* heater_ttbl_map[HOTENDS] = ARRAY_BY_HOTENDS((void*)HEATER_0_TEMPTABLE, (void*)HEATER_1_TEMPTABLE, (void*)HEATER_2_TEMPTABLE, (void*)HEATER_3_TEMPTABLE);
46
+  static uint8_t heater_ttbllen_map[HOTENDS] = ARRAY_BY_HOTENDS(HEATER_0_TEMPTABLE_LEN, HEATER_1_TEMPTABLE_LEN, HEATER_2_TEMPTABLE_LEN, HEATER_3_TEMPTABLE_LEN);
47 47
 #endif
48 48
 
49 49
 Temperature thermalManager;
50 50
 
51 51
 // public:
52 52
 
53
-int Temperature::current_temperature_raw[EXTRUDERS] = { 0 };
54
-float Temperature::current_temperature[EXTRUDERS] = { 0.0 };
55
-int Temperature::target_temperature[EXTRUDERS] = { 0 };
53
+int Temperature::current_temperature_raw[HOTENDS] = { 0 };
54
+float Temperature::current_temperature[HOTENDS] = { 0.0 };
55
+int Temperature::target_temperature[HOTENDS] = { 0 };
56 56
 
57 57
 int Temperature::current_temperature_bed_raw = 0;
58 58
 float Temperature::current_temperature_bed = 0.0;
@@ -69,12 +69,12 @@ unsigned char Temperature::soft_pwm_bed;
69 69
 #endif
70 70
 
71 71
 #if ENABLED(PIDTEMP)
72
-  #if ENABLED(PID_PARAMS_PER_EXTRUDER)
73
-    float Temperature::Kp[EXTRUDERS] = ARRAY_BY_EXTRUDERS1(DEFAULT_Kp),
74
-          Temperature::Ki[EXTRUDERS] = ARRAY_BY_EXTRUDERS1((DEFAULT_Ki) * (PID_dT)),
75
-          Temperature::Kd[EXTRUDERS] = ARRAY_BY_EXTRUDERS1((DEFAULT_Kd) / (PID_dT));
72
+  #if ENABLED(PID_PARAMS_PER_HOTEND)
73
+    float Temperature::Kp[HOTENDS] = ARRAY_BY_HOTENDS1(DEFAULT_Kp),
74
+          Temperature::Ki[HOTENDS] = ARRAY_BY_HOTENDS1((DEFAULT_Ki) * (PID_dT)),
75
+          Temperature::Kd[HOTENDS] = ARRAY_BY_HOTENDS1((DEFAULT_Kd) / (PID_dT));
76 76
     #if ENABLED(PID_ADD_EXTRUSION_RATE)
77
-      float Temperature::Kc[EXTRUDERS] = ARRAY_BY_EXTRUDERS1(DEFAULT_Kc);
77
+      float Temperature::Kc[HOTENDS] = ARRAY_BY_HOTENDS1(DEFAULT_Kc);
78 78
     #endif
79 79
   #else
80 80
     float Temperature::Kp = DEFAULT_Kp,
@@ -97,8 +97,8 @@ unsigned char Temperature::soft_pwm_bed;
97 97
 #endif
98 98
 
99 99
 #if ENABLED(THERMAL_PROTECTION_HOTENDS) && WATCH_TEMP_PERIOD > 0
100
-  int Temperature::watch_target_temp[EXTRUDERS] = { 0 };
101
-  millis_t Temperature::watch_heater_next_ms[EXTRUDERS] = { 0 };
100
+  int Temperature::watch_target_temp[HOTENDS] = { 0 };
101
+  millis_t Temperature::watch_heater_next_ms[HOTENDS] = { 0 };
102 102
 #endif
103 103
 
104 104
 #if ENABLED(THERMAL_PROTECTION_HOTENDS) && WATCH_BED_TEMP_PERIOD > 0
@@ -120,23 +120,23 @@ unsigned char Temperature::soft_pwm_bed;
120 120
 volatile bool Temperature::temp_meas_ready = false;
121 121
 
122 122
 #if ENABLED(PIDTEMP)
123
-  float Temperature::temp_iState[EXTRUDERS] = { 0 };
124
-  float Temperature::temp_dState[EXTRUDERS] = { 0 };
125
-  float Temperature::pTerm[EXTRUDERS];
126
-  float Temperature::iTerm[EXTRUDERS];
127
-  float Temperature::dTerm[EXTRUDERS];
123
+  float Temperature::temp_iState[HOTENDS] = { 0 };
124
+  float Temperature::temp_dState[HOTENDS] = { 0 };
125
+  float Temperature::pTerm[HOTENDS];
126
+  float Temperature::iTerm[HOTENDS];
127
+  float Temperature::dTerm[HOTENDS];
128 128
 
129 129
   #if ENABLED(PID_ADD_EXTRUSION_RATE)
130
-    float Temperature::cTerm[EXTRUDERS];
131
-    long Temperature::last_position[EXTRUDERS];
130
+    float Temperature::cTerm[HOTENDS];
131
+    long Temperature::last_position[HOTENDS];
132 132
     long Temperature::lpq[LPQ_MAX_LEN];
133 133
     int Temperature::lpq_ptr = 0;
134 134
   #endif
135 135
 
136
-  float Temperature::pid_error[EXTRUDERS];
137
-  float Temperature::temp_iState_min[EXTRUDERS];
138
-  float Temperature::temp_iState_max[EXTRUDERS];
139
-  bool Temperature::pid_reset[EXTRUDERS];
136
+  float Temperature::pid_error[HOTENDS];
137
+  float Temperature::temp_iState_min[HOTENDS];
138
+  float Temperature::temp_iState_max[HOTENDS];
139
+  bool Temperature::pid_reset[HOTENDS];
140 140
 #endif
141 141
 
142 142
 #if ENABLED(PIDTEMPBED)
@@ -156,10 +156,10 @@ unsigned long Temperature::raw_temp_value[4] = { 0 };
156 156
 unsigned long Temperature::raw_temp_bed_value = 0;
157 157
 
158 158
 // Init min and max temp with extreme values to prevent false errors during startup
159
-int Temperature::minttemp_raw[EXTRUDERS] = ARRAY_BY_EXTRUDERS(HEATER_0_RAW_LO_TEMP , HEATER_1_RAW_LO_TEMP , HEATER_2_RAW_LO_TEMP, HEATER_3_RAW_LO_TEMP);
160
-int Temperature::maxttemp_raw[EXTRUDERS] = ARRAY_BY_EXTRUDERS(HEATER_0_RAW_HI_TEMP , HEATER_1_RAW_HI_TEMP , HEATER_2_RAW_HI_TEMP, HEATER_3_RAW_HI_TEMP);
161
-int Temperature::minttemp[EXTRUDERS] = { 0 };
162
-int Temperature::maxttemp[EXTRUDERS] = ARRAY_BY_EXTRUDERS1(16383);
159
+int Temperature::minttemp_raw[HOTENDS] = ARRAY_BY_HOTENDS(HEATER_0_RAW_LO_TEMP , HEATER_1_RAW_LO_TEMP , HEATER_2_RAW_LO_TEMP, HEATER_3_RAW_LO_TEMP);
160
+int Temperature::maxttemp_raw[HOTENDS] = ARRAY_BY_HOTENDS(HEATER_0_RAW_HI_TEMP , HEATER_1_RAW_HI_TEMP , HEATER_2_RAW_HI_TEMP, HEATER_3_RAW_HI_TEMP);
161
+int Temperature::minttemp[HOTENDS] = { 0 };
162
+int Temperature::maxttemp[HOTENDS] = ARRAY_BY_HOTENDS1(16383);
163 163
 
164 164
 #ifdef BED_MINTEMP
165 165
   int Temperature::bed_minttemp_raw = HEATER_BED_RAW_LO_TEMP;
@@ -177,7 +177,7 @@ int Temperature::maxttemp[EXTRUDERS] = ARRAY_BY_EXTRUDERS1(16383);
177 177
   millis_t Temperature::next_auto_fan_check_ms;
178 178
 #endif
179 179
 
180
-unsigned char Temperature::soft_pwm[EXTRUDERS];
180
+unsigned char Temperature::soft_pwm[HOTENDS];
181 181
 
182 182
 #if ENABLED(FAN_SOFT_PWM)
183 183
   unsigned char Temperature::soft_pwm_fan[FAN_COUNT];
@@ -189,7 +189,7 @@ unsigned char Temperature::soft_pwm[EXTRUDERS];
189 189
 
190 190
 #if HAS_PID_HEATING
191 191
 
192
-  void Temperature::PID_autotune(float temp, int extruder, int ncycles, bool set_result/*=false*/) {
192
+  void Temperature::PID_autotune(float temp, int hotend, int ncycles, bool set_result/*=false*/) {
193 193
     float input = 0.0;
194 194
     int cycles = 0;
195 195
     bool heating = true;
@@ -208,12 +208,12 @@ unsigned char Temperature::soft_pwm[EXTRUDERS];
208 208
 
209 209
     if (false
210 210
       #if ENABLED(PIDTEMP)
211
-         || extruder >= EXTRUDERS
211
+         || hotend >= HOTENDS
212 212
       #else
213
-         || extruder >= 0
213
+         || hotend >= 0
214 214
       #endif
215 215
       #if DISABLED(PIDTEMPBED)
216
-         || extruder < 0
216
+         || hotend < 0
217 217
       #endif
218 218
     ) {
219 219
       SERIAL_ECHOLN(MSG_PID_BAD_EXTRUDER_NUM);
@@ -225,12 +225,12 @@ unsigned char Temperature::soft_pwm[EXTRUDERS];
225 225
     disable_all_heaters(); // switch off all heaters.
226 226
 
227 227
     #if HAS_PID_FOR_BOTH
228
-      if (extruder < 0)
228
+      if (hotend < 0)
229 229
         soft_pwm_bed = bias = d = (MAX_BED_POWER) / 2;
230 230
       else
231
-        soft_pwm[extruder] = bias = d = (PID_MAX) / 2;
231
+        soft_pwm[hotend] = bias = d = (PID_MAX) / 2;
232 232
     #elif ENABLED(PIDTEMP)
233
-      soft_pwm[extruder] = bias = d = (PID_MAX) / 2;
233
+      soft_pwm[hotend] = bias = d = (PID_MAX) / 2;
234 234
     #else
235 235
       soft_pwm_bed = bias = d = (MAX_BED_POWER) / 2;
236 236
     #endif
@@ -245,9 +245,9 @@ unsigned char Temperature::soft_pwm[EXTRUDERS];
245 245
 
246 246
         input =
247 247
           #if HAS_PID_FOR_BOTH
248
-            extruder < 0 ? current_temperature_bed : current_temperature[extruder]
248
+            hotend < 0 ? current_temperature_bed : current_temperature[hotend]
249 249
           #elif ENABLED(PIDTEMP)
250
-            current_temperature[extruder]
250
+            current_temperature[hotend]
251 251
           #else
252 252
             current_temperature_bed
253 253
           #endif
@@ -267,12 +267,12 @@ unsigned char Temperature::soft_pwm[EXTRUDERS];
267 267
           if (ELAPSED(ms, t2 + 5000UL)) {
268 268
             heating = false;
269 269
             #if HAS_PID_FOR_BOTH
270
-              if (extruder < 0)
270
+              if (hotend < 0)
271 271
                 soft_pwm_bed = (bias - d) >> 1;
272 272
               else
273
-                soft_pwm[extruder] = (bias - d) >> 1;
273
+                soft_pwm[hotend] = (bias - d) >> 1;
274 274
             #elif ENABLED(PIDTEMP)
275
-              soft_pwm[extruder] = (bias - d) >> 1;
275
+              soft_pwm[hotend] = (bias - d) >> 1;
276 276
             #elif ENABLED(PIDTEMPBED)
277 277
               soft_pwm_bed = (bias - d) >> 1;
278 278
             #endif
@@ -290,7 +290,7 @@ unsigned char Temperature::soft_pwm[EXTRUDERS];
290 290
             if (cycles > 0) {
291 291
               long max_pow =
292 292
                 #if HAS_PID_FOR_BOTH
293
-                  extruder < 0 ? MAX_BED_POWER : PID_MAX
293
+                  hotend < 0 ? MAX_BED_POWER : PID_MAX
294 294
                 #elif ENABLED(PIDTEMP)
295 295
                   PID_MAX
296 296
                 #else
@@ -336,12 +336,12 @@ unsigned char Temperature::soft_pwm[EXTRUDERS];
336 336
               }
337 337
             }
338 338
             #if HAS_PID_FOR_BOTH
339
-              if (extruder < 0)
339
+              if (hotend < 0)
340 340
                 soft_pwm_bed = (bias + d) >> 1;
341 341
               else
342
-                soft_pwm[extruder] = (bias + d) >> 1;
342
+                soft_pwm[hotend] = (bias + d) >> 1;
343 343
             #elif ENABLED(PIDTEMP)
344
-              soft_pwm[extruder] = (bias + d) >> 1;
344
+              soft_pwm[hotend] = (bias + d) >> 1;
345 345
             #else
346 346
               soft_pwm_bed = (bias + d) >> 1;
347 347
             #endif
@@ -373,7 +373,7 @@ unsigned char Temperature::soft_pwm[EXTRUDERS];
373 373
         SERIAL_PROTOCOLLNPGM(MSG_PID_AUTOTUNE_FINISHED);
374 374
 
375 375
         #if HAS_PID_FOR_BOTH
376
-          const char* estring = extruder < 0 ? "bed" : "";
376
+          const char* estring = hotend < 0 ? "bed" : "";
377 377
           SERIAL_PROTOCOLPGM("#define  DEFAULT_"); SERIAL_PROTOCOL(estring); SERIAL_PROTOCOLPGM("Kp "); SERIAL_PROTOCOLLN(workKp);
378 378
           SERIAL_PROTOCOLPGM("#define  DEFAULT_"); SERIAL_PROTOCOL(estring); SERIAL_PROTOCOLPGM("Ki "); SERIAL_PROTOCOLLN(workKi);
379 379
           SERIAL_PROTOCOLPGM("#define  DEFAULT_"); SERIAL_PROTOCOL(estring); SERIAL_PROTOCOLPGM("Kd "); SERIAL_PROTOCOLLN(workKd);
@@ -394,15 +394,15 @@ unsigned char Temperature::soft_pwm[EXTRUDERS];
394 394
           updatePID()
395 395
 
396 396
         #define _SET_EXTRUDER_PID() \
397
-          PID_PARAM(Kp, extruder) = workKp; \
398
-          PID_PARAM(Ki, extruder) = scalePID_i(workKi); \
399
-          PID_PARAM(Kd, extruder) = scalePID_d(workKd); \
397
+          PID_PARAM(Kp, hotend) = workKp; \
398
+          PID_PARAM(Ki, hotend) = scalePID_i(workKi); \
399
+          PID_PARAM(Kd, hotend) = scalePID_d(workKd); \
400 400
           updatePID()
401 401
 
402 402
         // Use the result? (As with "M303 U1")
403 403
         if (set_result) {
404 404
           #if HAS_PID_FOR_BOTH
405
-            if (extruder < 0) {
405
+            if (hotend < 0) {
406 406
               _SET_BED_PID();
407 407
             }
408 408
             else {
@@ -430,7 +430,7 @@ Temperature::Temperature() { }
430 430
 
431 431
 void Temperature::updatePID() {
432 432
   #if ENABLED(PIDTEMP)
433
-    for (int e = 0; e < EXTRUDERS; e++) {
433
+    for (int e = 0; e < HOTENDS; e++) {
434 434
       temp_iState_max[e] = (PID_INTEGRAL_DRIVE_MAX) / PID_PARAM(Ki, e);
435 435
       #if ENABLED(PID_ADD_EXTRUSION_RATE)
436 436
         last_position[e] = 0;
@@ -459,7 +459,7 @@ int Temperature::getHeaterPower(int heater) {
459 459
       EXTRUDER_3_AUTO_FAN_PIN == EXTRUDER_2_AUTO_FAN_PIN ? 2 : 3
460 460
     };
461 461
     uint8_t fanState = 0;
462
-    for (int f = 0; f <= EXTRUDERS; f++) {
462
+    for (int f = 0; f <= HOTENDS; f++) {
463 463
       if (current_temperature[f] > EXTRUDER_AUTO_FAN_TEMPERATURE)
464 464
         SBI(fanState, fanBit[f]);
465 465
     }
@@ -665,8 +665,8 @@ void Temperature::manage_heater() {
665 665
     millis_t ms = millis();
666 666
   #endif
667 667
 
668
-  // Loop through all extruders
669
-  for (int e = 0; e < EXTRUDERS; e++) {
668
+  // Loop through all hotends
669
+  for (int e = 0; e < HOTENDS; e++) {
670 670
 
671 671
     #if ENABLED(THERMAL_PROTECTION_HOTENDS)
672 672
       thermal_runaway_protection(&thermal_runaway_state_machine[e], &thermal_runaway_timer[e], current_temperature[e], target_temperature[e], e, THERMAL_PROTECTION_PERIOD, THERMAL_PROTECTION_HYSTERESIS);
@@ -719,7 +719,7 @@ void Temperature::manage_heater() {
719 719
       }
720 720
     #endif
721 721
 
722
-  } // Extruders Loop
722
+  } // Hotends Loop
723 723
 
724 724
   #if HAS_AUTO_FAN
725 725
     if (ELAPSED(ms, next_auto_fan_check_ms)) { // only need to check fan state very infrequently
@@ -790,9 +790,9 @@ void Temperature::manage_heater() {
790 790
 // For hot end temperature measurement.
791 791
 float Temperature::analog2temp(int raw, uint8_t e) {
792 792
   #if ENABLED(TEMP_SENSOR_1_AS_REDUNDANT)
793
-    if (e > EXTRUDERS)
793
+    if (e > HOTENDS)
794 794
   #else
795
-    if (e >= EXTRUDERS)
795
+    if (e >= HOTENDS)
796 796
   #endif
797 797
     {
798 798
       SERIAL_ERROR_START;
@@ -873,7 +873,7 @@ void Temperature::updateTemperaturesFromRawValues() {
873 873
   #if ENABLED(HEATER_0_USES_MAX6675)
874 874
     current_temperature_raw[0] = read_max6675();
875 875
   #endif
876
-  for (uint8_t e = 0; e < EXTRUDERS; e++) {
876
+  for (uint8_t e = 0; e < HOTENDS; e++) {
877 877
     current_temperature[e] = Temperature::analog2temp(current_temperature_raw[e], e);
878 878
   }
879 879
   current_temperature_bed = Temperature::analog2tempBed(current_temperature_bed_raw);
@@ -926,8 +926,8 @@ void Temperature::init() {
926 926
     MCUCR = _BV(JTD);
927 927
   #endif
928 928
 
929
-  // Finish init of mult extruder arrays
930
-  for (int e = 0; e < EXTRUDERS; e++) {
929
+  // Finish init of mult hotend arrays
930
+  for (int e = 0; e < HOTENDS; e++) {
931 931
     // populate with the first value
932 932
     maxttemp[e] = maxttemp[0];
933 933
     #if ENABLED(PIDTEMP)
@@ -1083,30 +1083,30 @@ void Temperature::init() {
1083 1083
   #ifdef HEATER_0_MAXTEMP
1084 1084
     TEMP_MAX_ROUTINE(0);
1085 1085
   #endif
1086
-  #if EXTRUDERS > 1
1086
+  #if HOTENDS > 1
1087 1087
     #ifdef HEATER_1_MINTEMP
1088 1088
       TEMP_MIN_ROUTINE(1);
1089 1089
     #endif
1090 1090
     #ifdef HEATER_1_MAXTEMP
1091 1091
       TEMP_MAX_ROUTINE(1);
1092 1092
     #endif
1093
-    #if EXTRUDERS > 2
1093
+    #if HOTENDS > 2
1094 1094
       #ifdef HEATER_2_MINTEMP
1095 1095
         TEMP_MIN_ROUTINE(2);
1096 1096
       #endif
1097 1097
       #ifdef HEATER_2_MAXTEMP
1098 1098
         TEMP_MAX_ROUTINE(2);
1099 1099
       #endif
1100
-      #if EXTRUDERS > 3
1100
+      #if HOTENDS > 3
1101 1101
         #ifdef HEATER_3_MINTEMP
1102 1102
           TEMP_MIN_ROUTINE(3);
1103 1103
         #endif
1104 1104
         #ifdef HEATER_3_MAXTEMP
1105 1105
           TEMP_MAX_ROUTINE(3);
1106 1106
         #endif
1107
-      #endif // EXTRUDERS > 3
1108
-    #endif // EXTRUDERS > 2
1109
-  #endif // EXTRUDERS > 1
1107
+      #endif // HOTENDS > 3
1108
+    #endif // HOTENDS > 2
1109
+  #endif // HOTENDS > 1
1110 1110
 
1111 1111
   #ifdef BED_MINTEMP
1112 1112
     while(analog2tempBed(bed_minttemp_raw) < BED_MINTEMP) {
@@ -1163,8 +1163,8 @@ void Temperature::init() {
1163 1163
 #if ENABLED(THERMAL_PROTECTION_HOTENDS) || HAS_THERMALLY_PROTECTED_BED
1164 1164
 
1165 1165
   #if ENABLED(THERMAL_PROTECTION_HOTENDS)
1166
-    Temperature::TRState Temperature::thermal_runaway_state_machine[EXTRUDERS] = { TRInactive };
1167
-    millis_t Temperature::thermal_runaway_timer[EXTRUDERS] = { 0 };
1166
+    Temperature::TRState Temperature::thermal_runaway_state_machine[HOTENDS] = { TRInactive };
1167
+    millis_t Temperature::thermal_runaway_timer[HOTENDS] = { 0 };
1168 1168
   #endif
1169 1169
 
1170 1170
   #if HAS_THERMALLY_PROTECTED_BED
@@ -1174,7 +1174,7 @@ void Temperature::init() {
1174 1174
 
1175 1175
   void Temperature::thermal_runaway_protection(Temperature::TRState* state, millis_t* timer, float temperature, float target_temperature, int heater_id, int period_seconds, int hysteresis_degc) {
1176 1176
 
1177
-    static float tr_target_temperature[EXTRUDERS + 1] = { 0.0 };
1177
+    static float tr_target_temperature[HOTENDS + 1] = { 0.0 };
1178 1178
 
1179 1179
     /**
1180 1180
         SERIAL_ECHO_START;
@@ -1187,7 +1187,7 @@ void Temperature::init() {
1187 1187
         SERIAL_EOL;
1188 1188
     */
1189 1189
 
1190
-    int heater_index = heater_id >= 0 ? heater_id : EXTRUDERS;
1190
+    int heater_index = heater_id >= 0 ? heater_id : HOTENDS;
1191 1191
 
1192 1192
     // If the target temperature changes, restart
1193 1193
     if (tr_target_temperature[heater_index] != target_temperature) {
@@ -1218,7 +1218,7 @@ void Temperature::init() {
1218 1218
 #endif // THERMAL_PROTECTION_HOTENDS || THERMAL_PROTECTION_BED
1219 1219
 
1220 1220
 void Temperature::disable_all_heaters() {
1221
-  for (int i = 0; i < EXTRUDERS; i++) setTargetHotend(0, i);
1221
+  for (int i = 0; i < HOTENDS; i++) setTargetHotend(0, i);
1222 1222
   setTargetBed(0);
1223 1223
 
1224 1224
   // If all heaters go down then for sure our print job has stopped
@@ -1236,15 +1236,15 @@ void Temperature::disable_all_heaters() {
1236 1236
     WRITE_HEATER_0P(LOW); // Should HEATERS_PARALLEL apply here? Then change to DISABLE_HEATER(0)
1237 1237
   #endif
1238 1238
 
1239
-  #if EXTRUDERS > 1 && HAS_TEMP_1
1239
+  #if HOTENDS > 1 && HAS_TEMP_1
1240 1240
     DISABLE_HEATER(1);
1241 1241
   #endif
1242 1242
 
1243
-  #if EXTRUDERS > 2 && HAS_TEMP_2
1243
+  #if HOTENDS > 2 && HAS_TEMP_2
1244 1244
     DISABLE_HEATER(2);
1245 1245
   #endif
1246 1246
 
1247
-  #if EXTRUDERS > 3 && HAS_TEMP_3
1247
+  #if HOTENDS > 3 && HAS_TEMP_3
1248 1248
     DISABLE_HEATER(3);
1249 1249
   #endif
1250 1250
 
@@ -1390,11 +1390,11 @@ void Temperature::isr() {
1390 1390
 
1391 1391
   // Statics per heater
1392 1392
   ISR_STATICS(0);
1393
-  #if (EXTRUDERS > 1) || ENABLED(HEATERS_PARALLEL)
1393
+  #if (HOTENDS > 1) || ENABLED(HEATERS_PARALLEL)
1394 1394
     ISR_STATICS(1);
1395
-    #if EXTRUDERS > 2
1395
+    #if HOTENDS > 2
1396 1396
       ISR_STATICS(2);
1397
-      #if EXTRUDERS > 3
1397
+      #if HOTENDS > 3
1398 1398
         ISR_STATICS(3);
1399 1399
       #endif
1400 1400
     #endif
@@ -1418,13 +1418,13 @@ void Temperature::isr() {
1418 1418
       }
1419 1419
       else WRITE_HEATER_0P(0); // If HEATERS_PARALLEL should apply, change to WRITE_HEATER_0
1420 1420
 
1421
-      #if EXTRUDERS > 1
1421
+      #if HOTENDS > 1
1422 1422
         soft_pwm_1 = soft_pwm[1];
1423 1423
         WRITE_HEATER_1(soft_pwm_1 > 0 ? 1 : 0);
1424
-        #if EXTRUDERS > 2
1424
+        #if HOTENDS > 2
1425 1425
           soft_pwm_2 = soft_pwm[2];
1426 1426
           WRITE_HEATER_2(soft_pwm_2 > 0 ? 1 : 0);
1427
-          #if EXTRUDERS > 3
1427
+          #if HOTENDS > 3
1428 1428
             soft_pwm_3 = soft_pwm[3];
1429 1429
             WRITE_HEATER_3(soft_pwm_3 > 0 ? 1 : 0);
1430 1430
           #endif
@@ -1453,11 +1453,11 @@ void Temperature::isr() {
1453 1453
     }
1454 1454
 
1455 1455
     if (soft_pwm_0 < pwm_count) WRITE_HEATER_0(0);
1456
-    #if EXTRUDERS > 1
1456
+    #if HOTENDS > 1
1457 1457
       if (soft_pwm_1 < pwm_count) WRITE_HEATER_1(0);
1458
-      #if EXTRUDERS > 2
1458
+      #if HOTENDS > 2
1459 1459
         if (soft_pwm_2 < pwm_count) WRITE_HEATER_2(0);
1460
-        #if EXTRUDERS > 3
1460
+        #if HOTENDS > 3
1461 1461
           if (soft_pwm_3 < pwm_count) WRITE_HEATER_3(0);
1462 1462
         #endif
1463 1463
       #endif
@@ -1524,11 +1524,11 @@ void Temperature::isr() {
1524 1524
     if (slow_pwm_count == 0) {
1525 1525
 
1526 1526
       SLOW_PWM_ROUTINE(0); // EXTRUDER 0
1527
-      #if EXTRUDERS > 1
1527
+      #if HOTENDS > 1
1528 1528
         SLOW_PWM_ROUTINE(1); // EXTRUDER 1
1529
-        #if EXTRUDERS > 2
1529
+        #if HOTENDS > 2
1530 1530
           SLOW_PWM_ROUTINE(2); // EXTRUDER 2
1531
-          #if EXTRUDERS > 3
1531
+          #if HOTENDS > 3
1532 1532
             SLOW_PWM_ROUTINE(3); // EXTRUDER 3
1533 1533
           #endif
1534 1534
         #endif
@@ -1540,11 +1540,11 @@ void Temperature::isr() {
1540 1540
     } // slow_pwm_count == 0
1541 1541
 
1542 1542
     PWM_OFF_ROUTINE(0); // EXTRUDER 0
1543
-    #if EXTRUDERS > 1
1543
+    #if HOTENDS > 1
1544 1544
       PWM_OFF_ROUTINE(1); // EXTRUDER 1
1545
-      #if EXTRUDERS > 2
1545
+      #if HOTENDS > 2
1546 1546
         PWM_OFF_ROUTINE(2); // EXTRUDER 2
1547
-        #if EXTRUDERS > 3
1547
+        #if HOTENDS > 3
1548 1548
           PWM_OFF_ROUTINE(3); // EXTRUDER 3
1549 1549
         #endif
1550 1550
       #endif
@@ -1589,11 +1589,11 @@ void Temperature::isr() {
1589 1589
 
1590 1590
       // EXTRUDER 0
1591 1591
       if (state_timer_heater_0 > 0) state_timer_heater_0--;
1592
-      #if EXTRUDERS > 1    // EXTRUDER 1
1592
+      #if HOTENDS > 1    // EXTRUDER 1
1593 1593
         if (state_timer_heater_1 > 0) state_timer_heater_1--;
1594
-        #if EXTRUDERS > 2    // EXTRUDER 2
1594
+        #if HOTENDS > 2    // EXTRUDER 2
1595 1595
           if (state_timer_heater_2 > 0) state_timer_heater_2--;
1596
-          #if EXTRUDERS > 3    // EXTRUDER 3
1596
+          #if HOTENDS > 3    // EXTRUDER 3
1597 1597
             if (state_timer_heater_3 > 0) state_timer_heater_3--;
1598 1598
           #endif
1599 1599
         #endif
@@ -1736,7 +1736,7 @@ void Temperature::isr() {
1736 1736
       if (minttemp_raw[0] GE0 current_temperature_raw[0]) min_temp_error(0);
1737 1737
     #endif
1738 1738
 
1739
-    #if HAS_TEMP_1 && EXTRUDERS > 1
1739
+    #if HAS_TEMP_1 && HOTENDS > 1
1740 1740
       #if HEATER_1_RAW_LO_TEMP > HEATER_1_RAW_HI_TEMP
1741 1741
         #define GE1 <=
1742 1742
       #else
@@ -1746,7 +1746,7 @@ void Temperature::isr() {
1746 1746
       if (minttemp_raw[1] GE1 current_temperature_raw[1]) min_temp_error(1);
1747 1747
     #endif // TEMP_SENSOR_1
1748 1748
 
1749
-    #if HAS_TEMP_2 && EXTRUDERS > 2
1749
+    #if HAS_TEMP_2 && HOTENDS > 2
1750 1750
       #if HEATER_2_RAW_LO_TEMP > HEATER_2_RAW_HI_TEMP
1751 1751
         #define GE2 <=
1752 1752
       #else
@@ -1756,7 +1756,7 @@ void Temperature::isr() {
1756 1756
       if (minttemp_raw[2] GE2 current_temperature_raw[2]) min_temp_error(2);
1757 1757
     #endif // TEMP_SENSOR_2
1758 1758
 
1759
-    #if HAS_TEMP_3 && EXTRUDERS > 3
1759
+    #if HAS_TEMP_3 && HOTENDS > 3
1760 1760
       #if HEATER_3_RAW_LO_TEMP > HEATER_3_RAW_HI_TEMP
1761 1761
         #define GE3 <=
1762 1762
       #else

+ 70
- 36
Marlin/temperature.h Целия файл

@@ -42,9 +42,9 @@ class Temperature {
42 42
 
43 43
   public:
44 44
 
45
-    static int current_temperature_raw[EXTRUDERS];
46
-    static float current_temperature[EXTRUDERS];
47
-    static int target_temperature[EXTRUDERS];
45
+    static int current_temperature_raw[HOTENDS];
46
+    static float current_temperature[HOTENDS];
47
+    static int target_temperature[HOTENDS];
48 48
 
49 49
     static int current_temperature_bed_raw;
50 50
     static float current_temperature_bed;
@@ -66,11 +66,11 @@ class Temperature {
66 66
 
67 67
     #if ENABLED(PIDTEMP)
68 68
 
69
-      #if ENABLED(PID_PARAMS_PER_EXTRUDER)
69
+      #if ENABLED(PID_PARAMS_PER_HOTEND)
70 70
 
71
-        static float Kp[EXTRUDERS], Ki[EXTRUDERS], Kd[EXTRUDERS];
71
+        static float Kp[HOTENDS], Ki[HOTENDS], Kd[HOTENDS];
72 72
         #if ENABLED(PID_ADD_EXTRUSION_RATE)
73
-          static float Kc[EXTRUDERS];
73
+          static float Kc[HOTENDS];
74 74
         #endif
75 75
         #define PID_PARAM(param, e) Temperature::param[e]
76 76
 
@@ -82,7 +82,7 @@ class Temperature {
82 82
         #endif
83 83
         #define PID_PARAM(param, e) Temperature::param
84 84
 
85
-      #endif // PID_PARAMS_PER_EXTRUDER
85
+      #endif // PID_PARAMS_PER_HOTEND
86 86
 
87 87
       // Apply the scale factors to the PID values
88 88
       #define scalePID_i(i)   ( (i) * PID_dT )
@@ -101,8 +101,8 @@ class Temperature {
101 101
     #endif
102 102
 
103 103
     #if ENABLED(THERMAL_PROTECTION_HOTENDS) && WATCH_TEMP_PERIOD > 0
104
-      static int watch_target_temp[EXTRUDERS];
105
-      static millis_t watch_heater_next_ms[EXTRUDERS];
104
+      static int watch_target_temp[HOTENDS];
105
+      static millis_t watch_heater_next_ms[HOTENDS];
106 106
     #endif
107 107
 
108 108
     #if ENABLED(THERMAL_PROTECTION_HOTENDS) && WATCH_BED_TEMP_PERIOD > 0
@@ -127,23 +127,23 @@ class Temperature {
127 127
     static volatile bool temp_meas_ready;
128 128
 
129 129
     #if ENABLED(PIDTEMP)
130
-      static float temp_iState[EXTRUDERS];
131
-      static float temp_dState[EXTRUDERS];
132
-      static float pTerm[EXTRUDERS];
133
-      static float iTerm[EXTRUDERS];
134
-      static float dTerm[EXTRUDERS];
130
+      static float temp_iState[HOTENDS];
131
+      static float temp_dState[HOTENDS];
132
+      static float pTerm[HOTENDS];
133
+      static float iTerm[HOTENDS];
134
+      static float dTerm[HOTENDS];
135 135
 
136 136
       #if ENABLED(PID_ADD_EXTRUSION_RATE)
137
-        static float cTerm[EXTRUDERS];
138
-        static long last_position[EXTRUDERS];
137
+        static float cTerm[HOTENDS];
138
+        static long last_position[HOTENDS];
139 139
         static long lpq[LPQ_MAX_LEN];
140 140
         static int lpq_ptr;
141 141
       #endif
142 142
 
143
-      static float pid_error[EXTRUDERS];
144
-      static float temp_iState_min[EXTRUDERS];
145
-      static float temp_iState_max[EXTRUDERS];
146
-      static bool pid_reset[EXTRUDERS];
143
+      static float pid_error[HOTENDS];
144
+      static float temp_iState_min[HOTENDS];
145
+      static float temp_iState_max[HOTENDS];
146
+      static bool pid_reset[HOTENDS];
147 147
     #endif
148 148
 
149 149
     #if ENABLED(PIDTEMPBED)
@@ -163,10 +163,10 @@ class Temperature {
163 163
     static unsigned long raw_temp_bed_value;
164 164
 
165 165
     // Init min and max temp with extreme values to prevent false errors during startup
166
-    static int minttemp_raw[EXTRUDERS];
167
-    static int maxttemp_raw[EXTRUDERS];
168
-    static int minttemp[EXTRUDERS];
169
-    static int maxttemp[EXTRUDERS];
166
+    static int minttemp_raw[HOTENDS];
167
+    static int maxttemp_raw[HOTENDS];
168
+    static int minttemp[HOTENDS];
169
+    static int maxttemp[HOTENDS];
170 170
 
171 171
     #ifdef BED_MINTEMP
172 172
       static int bed_minttemp_raw;
@@ -184,7 +184,7 @@ class Temperature {
184 184
       static millis_t next_auto_fan_check_ms;
185 185
     #endif
186 186
 
187
-    static unsigned char soft_pwm[EXTRUDERS];
187
+    static unsigned char soft_pwm[HOTENDS];
188 188
 
189 189
     #if ENABLED(FAN_SOFT_PWM)
190 190
       static unsigned char soft_pwm_fan[FAN_COUNT];
@@ -230,15 +230,36 @@ class Temperature {
230 230
     //inline so that there is no performance decrease.
231 231
     //deg=degreeCelsius
232 232
 
233
-    static float degHotend(uint8_t extruder) { return current_temperature[extruder]; }
233
+    #if HOTENDS == 1
234
+      #define HOTEND_ARG 0
235
+    #else
236
+      #define HOTEND_ARG hotend
237
+    #endif
238
+
239
+    static float degHotend(uint8_t hotend) {
240
+      #if HOTENDS == 1
241
+        UNUSED(hotend);
242
+      #endif
243
+      return current_temperature[HOTEND_ARG];
244
+    }
234 245
     static float degBed() { return current_temperature_bed; }
235 246
 
236 247
     #if ENABLED(SHOW_TEMP_ADC_VALUES)
237
-    static float rawHotendTemp(uint8_t extruder) { return current_temperature_raw[extruder]; }
248
+    static float rawHotendTemp(uint8_t hotend) {
249
+      #if HOTENDS == 1
250
+        UNUSED(hotend);
251
+      #endif
252
+      return current_temperature_raw[HOTEND_ARG];
253
+    }
238 254
     static float rawBedTemp() { return current_temperature_bed_raw; }
239 255
     #endif
240 256
 
241
-    static float degTargetHotend(uint8_t extruder) { return target_temperature[extruder]; }
257
+    static float degTargetHotend(uint8_t hotend) {
258
+      #if HOTENDS == 1
259
+        UNUSED(hotend);
260
+      #endif
261
+      return target_temperature[HOTEND_ARG];
262
+    }
242 263
     static float degTargetBed() { return target_temperature_bed; }
243 264
 
244 265
     #if ENABLED(THERMAL_PROTECTION_HOTENDS) && WATCH_TEMP_PERIOD > 0
@@ -249,10 +270,13 @@ class Temperature {
249 270
       static void start_watching_bed();
250 271
     #endif
251 272
 
252
-    static void setTargetHotend(const float& celsius, uint8_t extruder) {
253
-      target_temperature[extruder] = celsius;
273
+    static void setTargetHotend(const float& celsius, uint8_t hotend) {
274
+      #if HOTENDS == 1
275
+        UNUSED(hotend);
276
+      #endif
277
+      target_temperature[HOTEND_ARG] = celsius;
254 278
       #if ENABLED(THERMAL_PROTECTION_HOTENDS) && WATCH_TEMP_PERIOD > 0
255
-        start_watching_heater(extruder);
279
+        start_watching_heater(HOTEND_ARG);
256 280
       #endif
257 281
     }
258 282
 
@@ -263,10 +287,20 @@ class Temperature {
263 287
       #endif
264 288
     }
265 289
 
266
-    static bool isHeatingHotend(uint8_t extruder) { return target_temperature[extruder] > current_temperature[extruder]; }
290
+    static bool isHeatingHotend(uint8_t hotend) {
291
+      #if HOTENDS == 1
292
+        UNUSED(hotend);
293
+      #endif
294
+      return target_temperature[HOTEND_ARG] > current_temperature[HOTEND_ARG];
295
+    }
267 296
     static bool isHeatingBed() { return target_temperature_bed > current_temperature_bed; }
268 297
 
269
-    static bool isCoolingHotend(uint8_t extruder) { return target_temperature[extruder] < current_temperature[extruder]; }
298
+    static bool isCoolingHotend(uint8_t hotend) {
299
+      #if HOTENDS == 1
300
+        UNUSED(hotend);
301
+      #endif
302
+      return target_temperature[HOTEND_ARG] < current_temperature[HOTEND_ARG];
303
+    }
270 304
     static bool isCoolingBed() { return target_temperature_bed < current_temperature_bed; }
271 305
 
272 306
     /**
@@ -283,7 +317,7 @@ class Temperature {
283 317
      * Perform auto-tuning for hotend or bed in response to M303
284 318
      */
285 319
     #if HAS_PID_HEATING
286
-      static void PID_autotune(float temp, int extruder, int ncycles, bool set_result=false);
320
+      static void PID_autotune(float temp, int hotend, int ncycles, bool set_result=false);
287 321
     #endif
288 322
 
289 323
     /**
@@ -362,8 +396,8 @@ class Temperature {
362 396
       static void thermal_runaway_protection(TRState* state, millis_t* timer, float temperature, float target_temperature, int heater_id, int period_seconds, int hysteresis_degc);
363 397
 
364 398
       #if ENABLED(THERMAL_PROTECTION_HOTENDS)
365
-        static TRState thermal_runaway_state_machine[EXTRUDERS];
366
-        static millis_t thermal_runaway_timer[EXTRUDERS];
399
+        static TRState thermal_runaway_state_machine[HOTENDS];
400
+        static millis_t thermal_runaway_timer[HOTENDS];
367 401
       #endif
368 402
 
369 403
       #if HAS_THERMALLY_PROTECTED_BED

+ 61
- 61
Marlin/ultralcd.cpp Целия файл

@@ -593,28 +593,28 @@ void lcd_set_home_offsets() {
593 593
   #if TEMP_SENSOR_0 != 0
594 594
     void watch_temp_callback_E0() { thermalManager.start_watching_heater(0); }
595 595
   #endif
596
-  #if EXTRUDERS > 1 && TEMP_SENSOR_1 != 0
596
+  #if HOTENDS > 1 && TEMP_SENSOR_1 != 0
597 597
     void watch_temp_callback_E1() { thermalManager.start_watching_heater(1); }
598
-  #endif // EXTRUDERS > 1
599
-  #if EXTRUDERS > 2 && TEMP_SENSOR_2 != 0
598
+  #endif // HOTENDS > 1
599
+  #if HOTENDS > 2 && TEMP_SENSOR_2 != 0
600 600
     void watch_temp_callback_E2() { thermalManager.start_watching_heater(2); }
601
-  #endif // EXTRUDERS > 2
602
-  #if EXTRUDERS > 3 && TEMP_SENSOR_3 != 0
601
+  #endif // HOTENDS > 2
602
+  #if HOTENDS > 3 && TEMP_SENSOR_3 != 0
603 603
     void watch_temp_callback_E3() { thermalManager.start_watching_heater(3); }
604
-  #endif // EXTRUDERS > 3
604
+  #endif // HOTENDS > 3
605 605
 #else
606 606
   #if TEMP_SENSOR_0 != 0
607 607
     void watch_temp_callback_E0() {}
608 608
   #endif
609
-  #if EXTRUDERS > 1 && TEMP_SENSOR_1 != 0
609
+  #if HOTENDS > 1 && TEMP_SENSOR_1 != 0
610 610
     void watch_temp_callback_E1() {}
611
-  #endif // EXTRUDERS > 1
612
-  #if EXTRUDERS > 2 && TEMP_SENSOR_2 != 0
611
+  #endif // HOTENDS > 1
612
+  #if HOTENDS > 2 && TEMP_SENSOR_2 != 0
613 613
     void watch_temp_callback_E2() {}
614
-  #endif // EXTRUDERS > 2
615
-  #if EXTRUDERS > 3 && TEMP_SENSOR_3 != 0
614
+  #endif // HOTENDS > 2
615
+  #if HOTENDS > 3 && TEMP_SENSOR_3 != 0
616 616
     void watch_temp_callback_E3() {}
617
-  #endif // EXTRUDERS > 3
617
+  #endif // HOTENDS > 3
618 618
 #endif
619 619
 
620 620
 #if ENABLED(THERMAL_PROTECTION_BED) && WATCH_BED_TEMP_PERIOD > 0
@@ -654,28 +654,28 @@ static void lcd_tune_menu() {
654 654
   // Nozzle:
655 655
   // Nozzle [1-4]:
656 656
   //
657
-  #if EXTRUDERS == 1
657
+  #if HOTENDS == 1
658 658
     #if TEMP_SENSOR_0 != 0
659 659
       MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(int3, MSG_NOZZLE, &thermalManager.target_temperature[0], 0, HEATER_0_MAXTEMP - 15, watch_temp_callback_E0);
660 660
     #endif
661
-  #else //EXTRUDERS > 1
661
+  #else //HOTENDS > 1
662 662
     #if TEMP_SENSOR_0 != 0
663 663
       MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(int3, MSG_NOZZLE MSG_N1, &thermalManager.target_temperature[0], 0, HEATER_0_MAXTEMP - 15, watch_temp_callback_E0);
664 664
     #endif
665 665
     #if TEMP_SENSOR_1 != 0
666 666
       MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(int3, MSG_NOZZLE MSG_N2, &thermalManager.target_temperature[1], 0, HEATER_1_MAXTEMP - 15, watch_temp_callback_E1);
667 667
     #endif
668
-    #if EXTRUDERS > 2
668
+    #if HOTENDS > 2
669 669
       #if TEMP_SENSOR_2 != 0
670 670
         MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(int3, MSG_NOZZLE MSG_N3, &thermalManager.target_temperature[2], 0, HEATER_2_MAXTEMP - 15, watch_temp_callback_E2);
671 671
       #endif
672
-      #if EXTRUDERS > 3
672
+      #if HOTENDS > 3
673 673
         #if TEMP_SENSOR_3 != 0
674 674
           MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(int3, MSG_NOZZLE MSG_N4, &thermalManager.target_temperature[3], 0, HEATER_3_MAXTEMP - 15, watch_temp_callback_E3);
675 675
         #endif
676
-      #endif // EXTRUDERS > 3
677
-    #endif // EXTRUDERS > 2
678
-  #endif // EXTRUDERS > 1
676
+      #endif // HOTENDS > 3
677
+    #endif // HOTENDS > 2
678
+  #endif // HOTENDS > 1
679 679
 
680 680
   //
681 681
   // Bed:
@@ -777,24 +777,24 @@ void _lcd_preheat(int endnum, const float temph, const float tempb, const int fa
777 777
   void lcd_preheat_abs0() { _lcd_preheat(0, absPreheatHotendTemp, absPreheatHPBTemp, absPreheatFanSpeed); }
778 778
 #endif
779 779
 
780
-#if EXTRUDERS > 1
780
+#if HOTENDS > 1
781 781
   void lcd_preheat_pla1() { _lcd_preheat(1, plaPreheatHotendTemp, plaPreheatHPBTemp, plaPreheatFanSpeed); }
782 782
   void lcd_preheat_abs1() { _lcd_preheat(1, absPreheatHotendTemp, absPreheatHPBTemp, absPreheatFanSpeed); }
783
-  #if EXTRUDERS > 2
783
+  #if HOTENDS > 2
784 784
     void lcd_preheat_pla2() { _lcd_preheat(2, plaPreheatHotendTemp, plaPreheatHPBTemp, plaPreheatFanSpeed); }
785 785
     void lcd_preheat_abs2() { _lcd_preheat(2, absPreheatHotendTemp, absPreheatHPBTemp, absPreheatFanSpeed); }
786
-    #if EXTRUDERS > 3
786
+    #if HOTENDS > 3
787 787
       void lcd_preheat_pla3() { _lcd_preheat(3, plaPreheatHotendTemp, plaPreheatHPBTemp, plaPreheatFanSpeed); }
788 788
       void lcd_preheat_abs3() { _lcd_preheat(3, absPreheatHotendTemp, absPreheatHPBTemp, absPreheatFanSpeed); }
789 789
     #endif
790 790
   #endif
791 791
 
792 792
   void lcd_preheat_pla0123() {
793
-    #if EXTRUDERS > 1
793
+    #if HOTENDS > 1
794 794
       thermalManager.setTargetHotend(plaPreheatHotendTemp, 1);
795
-      #if EXTRUDERS > 2
795
+      #if HOTENDS > 2
796 796
         thermalManager.setTargetHotend(plaPreheatHotendTemp, 2);
797
-        #if EXTRUDERS > 3
797
+        #if HOTENDS > 3
798 798
           thermalManager.setTargetHotend(plaPreheatHotendTemp, 3);
799 799
         #endif
800 800
       #endif
@@ -802,11 +802,11 @@ void _lcd_preheat(int endnum, const float temph, const float tempb, const int fa
802 802
     lcd_preheat_pla0();
803 803
   }
804 804
   void lcd_preheat_abs0123() {
805
-    #if EXTRUDERS > 1
805
+    #if HOTENDS > 1
806 806
       thermalManager.setTargetHotend(absPreheatHotendTemp, 1);
807
-      #if EXTRUDERS > 2
807
+      #if HOTENDS > 2
808 808
         thermalManager.setTargetHotend(absPreheatHotendTemp, 2);
809
-        #if EXTRUDERS > 3
809
+        #if HOTENDS > 3
810 810
           thermalManager.setTargetHotend(absPreheatHotendTemp, 3);
811 811
         #endif
812 812
       #endif
@@ -814,7 +814,7 @@ void _lcd_preheat(int endnum, const float temph, const float tempb, const int fa
814 814
     lcd_preheat_abs0();
815 815
   }
816 816
 
817
-#endif // EXTRUDERS > 1
817
+#endif // HOTENDS > 1
818 818
 
819 819
 #if TEMP_SENSOR_BED != 0
820 820
   void lcd_preheat_pla_bedonly() { _lcd_preheat(0, 0, plaPreheatHPBTemp, plaPreheatFanSpeed); }
@@ -826,14 +826,14 @@ void _lcd_preheat(int endnum, const float temph, const float tempb, const int fa
826 826
   static void lcd_preheat_pla_menu() {
827 827
     START_MENU();
828 828
     MENU_ITEM(back, MSG_PREPARE);
829
-    #if EXTRUDERS == 1
829
+    #if HOTENDS == 1
830 830
       MENU_ITEM(function, MSG_PREHEAT_PLA, lcd_preheat_pla0);
831 831
     #else
832 832
       MENU_ITEM(function, MSG_PREHEAT_PLA_N MSG_H1, lcd_preheat_pla0);
833 833
       MENU_ITEM(function, MSG_PREHEAT_PLA_N MSG_H2, lcd_preheat_pla1);
834
-      #if EXTRUDERS > 2
834
+      #if HOTENDS > 2
835 835
         MENU_ITEM(function, MSG_PREHEAT_PLA_N MSG_H3, lcd_preheat_pla2);
836
-        #if EXTRUDERS > 3
836
+        #if HOTENDS > 3
837 837
           MENU_ITEM(function, MSG_PREHEAT_PLA_N MSG_H4, lcd_preheat_pla3);
838 838
         #endif
839 839
       #endif
@@ -848,14 +848,14 @@ void _lcd_preheat(int endnum, const float temph, const float tempb, const int fa
848 848
   static void lcd_preheat_abs_menu() {
849 849
     START_MENU();
850 850
     MENU_ITEM(back, MSG_PREPARE);
851
-    #if EXTRUDERS == 1
851
+    #if HOTENDS == 1
852 852
       MENU_ITEM(function, MSG_PREHEAT_ABS, lcd_preheat_abs0);
853 853
     #else
854 854
       MENU_ITEM(function, MSG_PREHEAT_ABS_N MSG_H1, lcd_preheat_abs0);
855 855
       MENU_ITEM(function, MSG_PREHEAT_ABS_N MSG_H2, lcd_preheat_abs1);
856
-      #if EXTRUDERS > 2
856
+      #if HOTENDS > 2
857 857
         MENU_ITEM(function, MSG_PREHEAT_ABS_N MSG_H3, lcd_preheat_abs2);
858
-        #if EXTRUDERS > 3
858
+        #if HOTENDS > 3
859 859
           MENU_ITEM(function, MSG_PREHEAT_ABS_N MSG_H4, lcd_preheat_abs3);
860 860
         #endif
861 861
       #endif
@@ -1380,8 +1380,8 @@ static void lcd_control_menu() {
1380 1380
 #if ENABLED(PID_AUTOTUNE_MENU)
1381 1381
 
1382 1382
   #if ENABLED(PIDTEMP)
1383
-    int autotune_temp[EXTRUDERS] = ARRAY_BY_EXTRUDERS1(150);
1384
-    const int heater_maxtemp[EXTRUDERS] = ARRAY_BY_EXTRUDERS(HEATER_0_MAXTEMP, HEATER_1_MAXTEMP, HEATER_2_MAXTEMP, HEATER_3_MAXTEMP);
1383
+    int autotune_temp[HOTENDS] = ARRAY_BY_HOTENDS1(150);
1384
+    const int heater_maxtemp[HOTENDS] = ARRAY_BY_HOTENDS(HEATER_0_MAXTEMP, HEATER_1_MAXTEMP, HEATER_2_MAXTEMP, HEATER_3_MAXTEMP);
1385 1385
   #endif
1386 1386
 
1387 1387
   #if ENABLED(PIDTEMPBED)
@@ -1409,14 +1409,14 @@ static void lcd_control_menu() {
1409 1409
   // Helpers for editing PID Ki & Kd values
1410 1410
   // grab the PID value out of the temp variable; scale it; then update the PID driver
1411 1411
   void copy_and_scalePID_i(int e) {
1412
-    #if DISABLED(PID_PARAMS_PER_EXTRUDER)
1412
+    #if DISABLED(PID_PARAMS_PER_HOTEND)
1413 1413
       UNUSED(e);
1414 1414
     #endif
1415 1415
     PID_PARAM(Ki, e) = scalePID_i(raw_Ki);
1416 1416
     thermalManager.updatePID();
1417 1417
   }
1418 1418
   void copy_and_scalePID_d(int e) {
1419
-    #if DISABLED(PID_PARAMS_PER_EXTRUDER)
1419
+    #if DISABLED(PID_PARAMS_PER_HOTEND)
1420 1420
       UNUSED(e);
1421 1421
     #endif
1422 1422
     PID_PARAM(Kd, e) = scalePID_d(raw_Kd);
@@ -1435,17 +1435,17 @@ static void lcd_control_menu() {
1435 1435
   #endif
1436 1436
 
1437 1437
   _PIDTEMP_FUNCTIONS(0);
1438
-  #if ENABLED(PID_PARAMS_PER_EXTRUDER)
1439
-    #if EXTRUDERS > 1
1438
+  #if ENABLED(PID_PARAMS_PER_HOTEND)
1439
+    #if HOTENDS > 1
1440 1440
       _PIDTEMP_FUNCTIONS(1);
1441
-      #if EXTRUDERS > 2
1441
+      #if HOTENDS > 2
1442 1442
         _PIDTEMP_FUNCTIONS(2);
1443
-        #if EXTRUDERS > 3
1443
+        #if HOTENDS > 3
1444 1444
           _PIDTEMP_FUNCTIONS(3);
1445
-        #endif //EXTRUDERS > 3
1446
-      #endif //EXTRUDERS > 2
1447
-    #endif //EXTRUDERS > 1
1448
-  #endif //PID_PARAMS_PER_EXTRUDER
1445
+        #endif //HOTENDS > 3
1446
+      #endif //HOTENDS > 2
1447
+    #endif //HOTENDS > 1
1448
+  #endif //PID_PARAMS_PER_HOTEND
1449 1449
 
1450 1450
 #endif //PIDTEMP
1451 1451
 
@@ -1466,28 +1466,28 @@ static void lcd_control_temperature_menu() {
1466 1466
   // Nozzle:
1467 1467
   // Nozzle [1-4]:
1468 1468
   //
1469
-  #if EXTRUDERS == 1
1469
+  #if HOTENDS == 1
1470 1470
     #if TEMP_SENSOR_0 != 0
1471 1471
       MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(int3, MSG_NOZZLE, &thermalManager.target_temperature[0], 0, HEATER_0_MAXTEMP - 15, watch_temp_callback_E0);
1472 1472
     #endif
1473
-  #else //EXTRUDERS > 1
1473
+  #else //HOTENDS > 1
1474 1474
     #if TEMP_SENSOR_0 != 0
1475 1475
       MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(int3, MSG_NOZZLE MSG_N1, &thermalManager.target_temperature[0], 0, HEATER_0_MAXTEMP - 15, watch_temp_callback_E0);
1476 1476
     #endif
1477 1477
     #if TEMP_SENSOR_1 != 0
1478 1478
       MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(int3, MSG_NOZZLE MSG_N2, &thermalManager.target_temperature[1], 0, HEATER_1_MAXTEMP - 15, watch_temp_callback_E1);
1479 1479
     #endif
1480
-    #if EXTRUDERS > 2
1480
+    #if HOTENDS > 2
1481 1481
       #if TEMP_SENSOR_2 != 0
1482 1482
         MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(int3, MSG_NOZZLE MSG_N3, &thermalManager.target_temperature[2], 0, HEATER_2_MAXTEMP - 15, watch_temp_callback_E2);
1483 1483
       #endif
1484
-      #if EXTRUDERS > 3
1484
+      #if HOTENDS > 3
1485 1485
         #if TEMP_SENSOR_3 != 0
1486 1486
           MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(int3, MSG_NOZZLE MSG_N4, &thermalManager.target_temperature[3], 0, HEATER_3_MAXTEMP - 15, watch_temp_callback_E3);
1487 1487
         #endif
1488
-      #endif // EXTRUDERS > 3
1489
-    #endif // EXTRUDERS > 2
1490
-  #endif // EXTRUDERS > 1
1488
+      #endif // HOTENDS > 3
1489
+    #endif // HOTENDS > 2
1490
+  #endif // HOTENDS > 1
1491 1491
 
1492 1492
   //
1493 1493
   // Bed:
@@ -1558,18 +1558,18 @@ static void lcd_control_temperature_menu() {
1558 1558
       #define PID_MENU_ITEMS(ELABEL, eindex) _PID_MENU_ITEMS(ELABEL, eindex)
1559 1559
     #endif
1560 1560
 
1561
-    #if ENABLED(PID_PARAMS_PER_EXTRUDER) && EXTRUDERS > 1
1561
+    #if ENABLED(PID_PARAMS_PER_HOTEND) && HOTENDS > 1
1562 1562
       PID_MENU_ITEMS(MSG_E1, 0);
1563 1563
       PID_MENU_ITEMS(MSG_E2, 1);
1564
-      #if EXTRUDERS > 2
1564
+      #if HOTENDS > 2
1565 1565
         PID_MENU_ITEMS(MSG_E3, 2);
1566
-        #if EXTRUDERS > 3
1566
+        #if HOTENDS > 3
1567 1567
           PID_MENU_ITEMS(MSG_E4, 3);
1568
-        #endif //EXTRUDERS > 3
1569
-      #endif //EXTRUDERS > 2
1570
-    #else //!PID_PARAMS_PER_EXTRUDER || EXTRUDERS == 1
1568
+        #endif //HOTENDS > 3
1569
+      #endif //HOTENDS > 2
1570
+    #else //!PID_PARAMS_PER_HOTEND || HOTENDS == 1
1571 1571
       PID_MENU_ITEMS("", 0);
1572
-    #endif //!PID_PARAMS_PER_EXTRUDER || EXTRUDERS == 1
1572
+    #endif //!PID_PARAMS_PER_HOTEND || HOTENDS == 1
1573 1573
 
1574 1574
   #endif //PIDTEMP
1575 1575
 

+ 9
- 9
Marlin/ultralcd_implementation_hitachi_HD44780.h Целия файл

@@ -638,10 +638,10 @@ static void lcd_implementation_status_screen() {
638 638
     //
639 639
     // Hotend 1 or Bed Temperature
640 640
     //
641
-    #if EXTRUDERS > 1 || TEMP_SENSOR_BED != 0
641
+    #if HOTENDS > 1 || TEMP_SENSOR_BED != 0
642 642
 
643 643
       lcd.setCursor(8, 0);
644
-      #if EXTRUDERS > 1
644
+      #if HOTENDS > 1
645 645
         lcd.print(LCD_STR_THERMOMETER[0]);
646 646
         LCD_TEMP_ONLY(thermalManager.degHotend(1), thermalManager.degTargetHotend(1));
647 647
       #else
@@ -649,7 +649,7 @@ static void lcd_implementation_status_screen() {
649 649
         LCD_TEMP_ONLY(thermalManager.degBed(), thermalManager.degTargetBed());
650 650
       #endif
651 651
 
652
-    #endif // EXTRUDERS > 1 || TEMP_SENSOR_BED != 0
652
+    #endif // HOTENDS > 1 || TEMP_SENSOR_BED != 0
653 653
 
654 654
   #else // LCD_WIDTH >= 20
655 655
 
@@ -661,15 +661,15 @@ static void lcd_implementation_status_screen() {
661 661
     //
662 662
     // Hotend 1 or Bed Temperature
663 663
     //
664
-    #if EXTRUDERS > 1 || TEMP_SENSOR_BED != 0
664
+    #if HOTENDS > 1 || TEMP_SENSOR_BED != 0
665 665
       lcd.setCursor(10, 0);
666
-      #if EXTRUDERS > 1
666
+      #if HOTENDS > 1
667 667
         LCD_TEMP(thermalManager.degHotend(1), thermalManager.degTargetHotend(1), LCD_STR_THERMOMETER[0]);
668 668
       #else
669 669
         LCD_TEMP(thermalManager.degBed(), thermalManager.degTargetBed(), LCD_STR_BEDTEMP[0]);
670 670
       #endif
671 671
 
672
-    #endif  // EXTRUDERS > 1 || TEMP_SENSOR_BED != 0
672
+    #endif  // HOTENDS > 1 || TEMP_SENSOR_BED != 0
673 673
 
674 674
   #endif // LCD_WIDTH >= 20
675 675
 
@@ -697,7 +697,7 @@ static void lcd_implementation_status_screen() {
697 697
 
698 698
       lcd.setCursor(0, 1);
699 699
 
700
-      #if EXTRUDERS > 1 && TEMP_SENSOR_BED != 0
700
+      #if HOTENDS > 1 && TEMP_SENSOR_BED != 0
701 701
 
702 702
         // If we both have a 2nd extruder and a heated bed,
703 703
         // show the heated bed temp on the left,
@@ -717,7 +717,7 @@ static void lcd_implementation_status_screen() {
717 717
         _draw_axis_label(Y_AXIS, PSTR(MSG_Y), blink);
718 718
         lcd.print(ftostr4sign(current_position[Y_AXIS]));
719 719
 
720
-      #endif // EXTRUDERS > 1 || TEMP_SENSOR_BED != 0
720
+      #endif // HOTENDS > 1 || TEMP_SENSOR_BED != 0
721 721
 
722 722
     #endif // LCD_WIDTH >= 20
723 723
 
@@ -943,7 +943,7 @@ void lcd_implementation_drawedit(const char* pstr, const char* value=NULL) {
943 943
       ) leds |= LED_C;
944 944
     #endif // FAN_COUNT > 0
945 945
 
946
-    #if EXTRUDERS > 1
946
+    #if HOTENDS > 1
947 947
       if (thermalManager.degTargetHotend(1) > 0) leds |= LED_C;
948 948
     #endif
949 949
 

Loading…
Отказ
Запис