Browse Source

Merge pull request #3895 from thinkyhead/rc_singlenozzle_part_2

SINGLENOZZLE: EXTRUDERS versus HOTENDS
Scott Lahteine 8 years ago
parent
commit
43947072d5
50 changed files with 558 additions and 458 deletions
  1. 29
    9
      Marlin/Conditionals.h
  2. 6
    6
      Marlin/Configuration.h
  3. 1
    1
      Marlin/Configuration_adv.h
  4. 54
    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 View File

@@ -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 View File

@@ -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 View File

@@ -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.

+ 54
- 46
Marlin/Marlin_main.cpp View File

@@ -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;
@@ -4400,6 +4400,10 @@ inline void gcode_M104() {
4400 4400
   if (get_target_extruder_from_command(104)) return;
4401 4401
   if (DEBUGGING(DRYRUN)) return;
4402 4402
 
4403
+  #if ENABLED(SINGLENOZZLE)
4404
+    if (target_extruder != active_extruder) return;
4405
+  #endif
4406
+
4403 4407
   if (code_seen('S')) {
4404 4408
     float temp = code_value();
4405 4409
     thermalManager.setTargetHotend(temp, target_extruder);
@@ -4445,8 +4449,8 @@ inline void gcode_M104() {
4445 4449
       SERIAL_PROTOCOLPGM(" /");
4446 4450
       SERIAL_PROTOCOL_F(thermalManager.degTargetBed(), 1);
4447 4451
     #endif
4448
-    #if EXTRUDERS > 1
4449
-      for (int8_t e = 0; e < EXTRUDERS; ++e) {
4452
+    #if HOTENDS > 1
4453
+      for (int8_t e = 0; e < HOTENDS; ++e) {
4450 4454
         SERIAL_PROTOCOLPGM(" T");
4451 4455
         SERIAL_PROTOCOL(e);
4452 4456
         SERIAL_PROTOCOLCHAR(':');
@@ -4471,8 +4475,8 @@ inline void gcode_M104() {
4471 4475
     #else
4472 4476
       SERIAL_PROTOCOL(thermalManager.getHeaterPower(target_extruder));
4473 4477
     #endif
4474
-    #if EXTRUDERS > 1
4475
-      for (int8_t e = 0; e < EXTRUDERS; ++e) {
4478
+    #if HOTENDS > 1
4479
+      for (int8_t e = 0; e < HOTENDS; ++e) {
4476 4480
         SERIAL_PROTOCOLPGM(" @");
4477 4481
         SERIAL_PROTOCOL(e);
4478 4482
         SERIAL_PROTOCOLCHAR(':');
@@ -4491,13 +4495,13 @@ inline void gcode_M104() {
4491 4495
         SERIAL_PROTOCOLPGM("C->");
4492 4496
         SERIAL_PROTOCOL_F(thermalManager.rawBedTemp() / OVERSAMPLENR, 0);
4493 4497
       #endif
4494
-      for (int8_t cur_extruder = 0; cur_extruder < EXTRUDERS; ++cur_extruder) {
4498
+      for (int8_t cur_hotend = 0; cur_hotend < HOTENDS; ++cur_hotend) {
4495 4499
         SERIAL_PROTOCOLPGM("  T");
4496
-        SERIAL_PROTOCOL(cur_extruder);
4500
+        SERIAL_PROTOCOL(cur_hotend);
4497 4501
         SERIAL_PROTOCOLCHAR(':');
4498
-        SERIAL_PROTOCOL_F(thermalManager.degHotend(cur_extruder), 1);
4502
+        SERIAL_PROTOCOL_F(thermalManager.degHotend(cur_hotend), 1);
4499 4503
         SERIAL_PROTOCOLPGM("C->");
4500
-        SERIAL_PROTOCOL_F(thermalManager.rawHotendTemp(cur_extruder) / OVERSAMPLENR, 0);
4504
+        SERIAL_PROTOCOL_F(thermalManager.rawHotendTemp(cur_hotend) / OVERSAMPLENR, 0);
4501 4505
       }
4502 4506
     #endif
4503 4507
   }
@@ -4554,6 +4558,10 @@ inline void gcode_M109() {
4554 4558
   if (get_target_extruder_from_command(109)) return;
4555 4559
   if (DEBUGGING(DRYRUN)) return;
4556 4560
 
4561
+  #if ENABLED(SINGLENOZZLE)
4562
+    if (target_extruder != active_extruder) return;
4563
+  #endif
4564
+
4557 4565
   bool no_wait_for_cooling = code_seen('S');
4558 4566
   if (no_wait_for_cooling || code_seen('R')) {
4559 4567
     float temp = code_value();
@@ -5429,7 +5437,7 @@ inline void gcode_M206() {
5429 5437
 
5430 5438
 #endif // FWRETRACT
5431 5439
 
5432
-#if EXTRUDERS > 1
5440
+#if HOTENDS > 1
5433 5441
 
5434 5442
   /**
5435 5443
    * M218 - set hotend offset (in mm)
@@ -5442,29 +5450,29 @@ inline void gcode_M206() {
5442 5450
   inline void gcode_M218() {
5443 5451
     if (get_target_extruder_from_command(218)) return;
5444 5452
 
5445
-    if (code_seen('X')) extruder_offset[X_AXIS][target_extruder] = code_value();
5446
-    if (code_seen('Y')) extruder_offset[Y_AXIS][target_extruder] = code_value();
5453
+    if (code_seen('X')) hotend_offset[X_AXIS][target_extruder] = code_value();
5454
+    if (code_seen('Y')) hotend_offset[Y_AXIS][target_extruder] = code_value();
5447 5455
 
5448 5456
     #if ENABLED(DUAL_X_CARRIAGE)
5449
-      if (code_seen('Z')) extruder_offset[Z_AXIS][target_extruder] = code_value();
5457
+      if (code_seen('Z')) hotend_offset[Z_AXIS][target_extruder] = code_value();
5450 5458
     #endif
5451 5459
 
5452 5460
     SERIAL_ECHO_START;
5453 5461
     SERIAL_ECHOPGM(MSG_HOTEND_OFFSET);
5454
-    for (int e = 0; e < EXTRUDERS; e++) {
5462
+    for (int e = 0; e < HOTENDS; e++) {
5455 5463
       SERIAL_CHAR(' ');
5456
-      SERIAL_ECHO(extruder_offset[X_AXIS][e]);
5464
+      SERIAL_ECHO(hotend_offset[X_AXIS][e]);
5457 5465
       SERIAL_CHAR(',');
5458
-      SERIAL_ECHO(extruder_offset[Y_AXIS][e]);
5466
+      SERIAL_ECHO(hotend_offset[Y_AXIS][e]);
5459 5467
       #if ENABLED(DUAL_X_CARRIAGE)
5460 5468
         SERIAL_CHAR(',');
5461
-        SERIAL_ECHO(extruder_offset[Z_AXIS][e]);
5469
+        SERIAL_ECHO(hotend_offset[Z_AXIS][e]);
5462 5470
       #endif
5463 5471
     }
5464 5472
     SERIAL_EOL;
5465 5473
   }
5466 5474
 
5467
-#endif // EXTRUDERS > 1
5475
+#endif // HOTENDS > 1
5468 5476
 
5469 5477
 /**
5470 5478
  * M220: Set speed percentage factor, aka "Feed Rate" (M220 S95)
@@ -5594,7 +5602,7 @@ inline void gcode_M226() {
5594 5602
     // default behaviour (omitting E parameter) is to update for extruder 0 only
5595 5603
     int e = code_seen('E') ? code_value() : 0; // extruder being updated
5596 5604
 
5597
-    if (e < EXTRUDERS) { // catch bad input value
5605
+    if (e < HOTENDS) { // catch bad input value
5598 5606
       if (code_seen('P')) PID_PARAM(Kp, e) = code_value();
5599 5607
       if (code_seen('I')) PID_PARAM(Ki, e) = scalePID_i(code_value());
5600 5608
       if (code_seen('D')) PID_PARAM(Kd, e) = scalePID_d(code_value());
@@ -5606,10 +5614,10 @@ inline void gcode_M226() {
5606 5614
 
5607 5615
       thermalManager.updatePID();
5608 5616
       SERIAL_ECHO_START;
5609
-      #if ENABLED(PID_PARAMS_PER_EXTRUDER)
5617
+      #if ENABLED(PID_PARAMS_PER_HOTEND)
5610 5618
         SERIAL_ECHO(" e:"); // specify extruder in serial output
5611 5619
         SERIAL_ECHO(e);
5612
-      #endif // PID_PARAMS_PER_EXTRUDER
5620
+      #endif // PID_PARAMS_PER_HOTEND
5613 5621
       SERIAL_ECHO(" p:");
5614 5622
       SERIAL_ECHO(PID_PARAM(Kp, e));
5615 5623
       SERIAL_ECHO(" i:");
@@ -5728,7 +5736,7 @@ inline void gcode_M303() {
5728 5736
 
5729 5737
     float temp = code_seen('S') ? code_value() : (e < 0 ? 70.0 : 150.0);
5730 5738
 
5731
-    if (e >= 0 && e < EXTRUDERS)
5739
+    if (e >= 0 && e < HOTENDS)
5732 5740
       target_extruder = e;
5733 5741
 
5734 5742
     KEEPALIVE_STATE(NOT_BUSY); // don't send "busy: processing" messages during autotune output
@@ -6310,13 +6318,13 @@ inline void gcode_M503() {
6310 6318
         SERIAL_ECHO_START;
6311 6319
         SERIAL_ECHOPGM(MSG_HOTEND_OFFSET);
6312 6320
         SERIAL_CHAR(' ');
6313
-        SERIAL_ECHO(extruder_offset[X_AXIS][0]);
6321
+        SERIAL_ECHO(hotend_offset[X_AXIS][0]);
6314 6322
         SERIAL_CHAR(',');
6315
-        SERIAL_ECHO(extruder_offset[Y_AXIS][0]);
6323
+        SERIAL_ECHO(hotend_offset[Y_AXIS][0]);
6316 6324
         SERIAL_CHAR(' ');
6317 6325
         SERIAL_ECHO(duplicate_extruder_x_offset);
6318 6326
         SERIAL_CHAR(',');
6319
-        SERIAL_ECHOLN(extruder_offset[Y_AXIS][1]);
6327
+        SERIAL_ECHOLN(hotend_offset[Y_AXIS][1]);
6320 6328
         break;
6321 6329
       case DXC_FULL_CONTROL_MODE:
6322 6330
       case DXC_AUTO_PARK_MODE:
@@ -6474,7 +6482,7 @@ inline void gcode_T(uint8_t tmp_extruder) {
6474 6482
     #endif
6475 6483
   }
6476 6484
 
6477
-  #if EXTRUDERS > 1
6485
+  #if HOTENDS > 1
6478 6486
     if (tmp_extruder != active_extruder) {
6479 6487
       // Save current position to return to after applying extruder offset
6480 6488
       set_destination_to_current();
@@ -6492,8 +6500,8 @@ inline void gcode_T(uint8_t tmp_extruder) {
6492 6500
         }
6493 6501
 
6494 6502
         // apply Y & Z extruder offset (x offset is already used in determining home pos)
6495
-        current_position[Y_AXIS] -= extruder_offset[Y_AXIS][active_extruder] - extruder_offset[Y_AXIS][tmp_extruder];
6496
-        current_position[Z_AXIS] -= extruder_offset[Z_AXIS][active_extruder] - extruder_offset[Z_AXIS][tmp_extruder];
6503
+        current_position[Y_AXIS] -= hotend_offset[Y_AXIS][active_extruder] - hotend_offset[Y_AXIS][tmp_extruder];
6504
+        current_position[Z_AXIS] -= hotend_offset[Z_AXIS][active_extruder] - hotend_offset[Z_AXIS][tmp_extruder];
6497 6505
         active_extruder = tmp_extruder;
6498 6506
 
6499 6507
         // This function resets the max/min values - the current position may be overwritten below.
@@ -6523,11 +6531,11 @@ inline void gcode_T(uint8_t tmp_extruder) {
6523 6531
       #else // !DUAL_X_CARRIAGE
6524 6532
         #if ENABLED(AUTO_BED_LEVELING_FEATURE)
6525 6533
           // Offset extruder, make sure to apply the bed level rotation matrix
6526
-          vector_3 tmp_offset_vec = vector_3(extruder_offset[X_AXIS][tmp_extruder],
6527
-                                             extruder_offset[Y_AXIS][tmp_extruder],
6534
+          vector_3 tmp_offset_vec = vector_3(hotend_offset[X_AXIS][tmp_extruder],
6535
+                                             hotend_offset[Y_AXIS][tmp_extruder],
6528 6536
                                              0),
6529
-                   act_offset_vec = vector_3(extruder_offset[X_AXIS][active_extruder],
6530
-                                             extruder_offset[Y_AXIS][active_extruder],
6537
+                   act_offset_vec = vector_3(hotend_offset[X_AXIS][active_extruder],
6538
+                                             hotend_offset[Y_AXIS][active_extruder],
6531 6539
                                              0),
6532 6540
                    offset_vec = tmp_offset_vec - act_offset_vec;
6533 6541
 
@@ -6559,7 +6567,7 @@ inline void gcode_T(uint8_t tmp_extruder) {
6559 6567
 
6560 6568
           // The newly-selected extruder is actually at...
6561 6569
           for (int i=X_AXIS; i<=Y_AXIS; i++) {
6562
-            float diff = extruder_offset[i][tmp_extruder] - extruder_offset[i][active_extruder];
6570
+            float diff = hotend_offset[i][tmp_extruder] - hotend_offset[i][active_extruder];
6563 6571
             current_position[i] += diff;
6564 6572
             position_shift[i] += diff; // Offset the coordinate space
6565 6573
             update_software_endstops((AxisEnum)i);
@@ -6590,7 +6598,7 @@ inline void gcode_T(uint8_t tmp_extruder) {
6590 6598
       enable_solenoid_on_active_extruder();
6591 6599
     #endif // EXT_SOLENOID
6592 6600
 
6593
-  #endif // EXTRUDERS > 1
6601
+  #endif // HOTENDS > 1
6594 6602
 
6595 6603
   feedrate = stored_feedrate;
6596 6604
 
@@ -7021,7 +7029,7 @@ void process_next_command() {
7021 7029
           break;
7022 7030
       #endif // FWRETRACT
7023 7031
 
7024
-      #if EXTRUDERS > 1
7032
+      #if HOTENDS > 1
7025 7033
         case 218: // M218 - set hotend offset (in mm), T<extruder_number> X<offset_on_X> Y<offset_on_Y>
7026 7034
           gcode_M218();
7027 7035
           break;
@@ -7891,8 +7899,8 @@ void prepare_move() {
7891 7899
     float max_temp = 0.0;
7892 7900
     if (ELAPSED(millis(), next_status_led_update_ms)) {
7893 7901
       next_status_led_update_ms += 500; // Update every 0.5s
7894
-      for (int8_t cur_extruder = 0; cur_extruder < EXTRUDERS; ++cur_extruder)
7895
-        max_temp = max(max(max_temp, thermalManager.degHotend(cur_extruder)), thermalManager.degTargetHotend(cur_extruder));
7902
+      for (int8_t cur_hotend = 0; cur_hotend < HOTENDS; ++cur_hotend)
7903
+        max_temp = max(max(max_temp, thermalManager.degHotend(cur_hotend)), thermalManager.degTargetHotend(cur_hotend));
7896 7904
       #if HAS_TEMP_BED
7897 7905
         max_temp = max(max(max_temp, thermalManager.degTargetBed()), thermalManager.degBed());
7898 7906
       #endif

+ 55
- 36
Marlin/SanityCheck.h View File

@@ -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 View File

@@ -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 View File

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

+ 4
- 4
Marlin/dogm_bitmaps.h View File

@@ -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 View File

@@ -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 View File

@@ -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 View File

@@ -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 View File

@@ -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 View File

@@ -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 View File

@@ -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 View File

@@ -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 View File

@@ -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 View File

@@ -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 View File

@@ -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 View File

@@ -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 View File

@@ -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 View File

@@ -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 View File

@@ -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 View File

@@ -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 View File

@@ -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 View File

@@ -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 View File

@@ -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 View File

@@ -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 View File

@@ -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 View File

@@ -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 View File

@@ -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 View File

@@ -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 View File

@@ -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 View File

@@ -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 View File

@@ -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 View File

@@ -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 View File

@@ -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 View File

@@ -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 View File

@@ -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 View File

@@ -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 View File

@@ -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 View File

@@ -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 View File

@@ -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 View File

@@ -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 View File

@@ -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 View File

@@ -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 View File

@@ -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 View File

@@ -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 View File

@@ -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 View File

@@ -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 View File

@@ -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…
Cancel
Save