From 519cc1bc67b8762d94cd47e91bfe8a78a7319342 Mon Sep 17 00:00:00 2001
From: Scott Lahteine <github@thinkyhead.com>
Date: Sun, 6 Oct 2019 22:18:03 -0500
Subject: [PATCH] NUM_AXIS is now obsolete

---
 Marlin/src/core/macros.h                       | 1 -
 Marlin/src/gcode/feature/digipot/M907-M910.cpp | 6 ++++--
 Marlin/src/inc/Conditionals_post.h             | 2 +-
 3 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/Marlin/src/core/macros.h b/Marlin/src/core/macros.h
index 24c97be9cc5..b93bae79f60 100644
--- a/Marlin/src/core/macros.h
+++ b/Marlin/src/core/macros.h
@@ -21,7 +21,6 @@
  */
 #pragma once
 
-#define NUM_AXIS 4
 #define ABCE 4
 #define XYZE 4
 #define ABC  3
diff --git a/Marlin/src/gcode/feature/digipot/M907-M910.cpp b/Marlin/src/gcode/feature/digipot/M907-M910.cpp
index 4f48bb77ed4..a7546b28339 100644
--- a/Marlin/src/gcode/feature/digipot/M907-M910.cpp
+++ b/Marlin/src/gcode/feature/digipot/M907-M910.cpp
@@ -65,8 +65,10 @@ void GcodeSuite::M907() {
   #if ENABLED(DIGIPOT_I2C)
     // this one uses actual amps in floating point
     LOOP_XYZE(i) if (parser.seenval(axis_codes[i])) digipot_i2c_set_current(i, parser.value_float());
-    // for each additional extruder (named B,C,D,E..., channels 4,5,6,7...)
-    for (uint8_t i = NUM_AXIS; i < DIGIPOT_I2C_NUM_CHANNELS; i++) if (parser.seenval('B' + i - (NUM_AXIS))) digipot_i2c_set_current(i, parser.value_float());
+    // Additional extruders use B,C,D for channels 4,5,6.
+    // TODO: Change these parameters because 'E' is used. B<index>?
+    for (uint8_t i = E_AXIS + 1; i < DIGIPOT_I2C_NUM_CHANNELS; i++)
+      if (parser.seenval('B' + i - (E_AXIS + 1))) digipot_i2c_set_current(i, parser.value_float());
   #endif
 
   #if ENABLED(DAC_STEPPER_CURRENT)
diff --git a/Marlin/src/inc/Conditionals_post.h b/Marlin/src/inc/Conditionals_post.h
index ecc1404a826..6c1f173f942 100644
--- a/Marlin/src/inc/Conditionals_post.h
+++ b/Marlin/src/inc/Conditionals_post.h
@@ -1067,7 +1067,7 @@
 #define WATCH_CHAMBER (HAS_HEATED_CHAMBER && ENABLED(THERMAL_PROTECTION_CHAMBER) && WATCH_CHAMBER_TEMP_PERIOD > 0)
 
 // Auto fans
-#define HAS_AUTO_FAN_0 (PIN_EXISTS(E0_AUTO_FAN))
+#define HAS_AUTO_FAN_0 (HOTENDS > 0 && PIN_EXISTS(E0_AUTO_FAN))
 #define HAS_AUTO_FAN_1 (HOTENDS > 1 && PIN_EXISTS(E1_AUTO_FAN))
 #define HAS_AUTO_FAN_2 (HOTENDS > 2 && PIN_EXISTS(E2_AUTO_FAN))
 #define HAS_AUTO_FAN_3 (HOTENDS > 3 && PIN_EXISTS(E3_AUTO_FAN))