diff --git a/Marlin/pinsDebug_list.h b/Marlin/pinsDebug_list.h
index 800ce10f9e..8a917a531c 100644
--- a/Marlin/pinsDebug_list.h
+++ b/Marlin/pinsDebug_list.h
@@ -152,6 +152,18 @@
 #if defined(DOGLCD_SCK) && DOGLCD_SCK >= 0
   REPORT_NAME_DIGITAL(DOGLCD_SCK, __LINE__ )
 #endif
+#if PIN_EXISTS(E_MUX0)
+  REPORT_NAME_DIGITAL(E_MUX0_PIN, __LINE__ )
+#endif
+#if PIN_EXISTS(E_MUX1)
+  REPORT_NAME_DIGITAL(E_MUX1_PIN, __LINE__ )
+#endif
+#if PIN_EXISTS(E_MUX2)
+  REPORT_NAME_DIGITAL(E_MUX2_PIN, __LINE__ )
+#endif
+#if PIN_EXISTS(E_STOP)
+  REPORT_NAME_DIGITAL(E_STOP_PIN, __LINE__ )
+#endif
 #if PIN_EXISTS(E0_ATT)
   REPORT_NAME_DIGITAL(E0_ATT_PIN, __LINE__ )
 #endif
@@ -236,6 +248,9 @@
 #if PIN_EXISTS(E3_MS2)
   REPORT_NAME_DIGITAL(E3_MS2_PIN, __LINE__ )
 #endif
+#if PIN_EXISTS(E3_MS3)
+  REPORT_NAME_DIGITAL(E3_MS3_PIN, __LINE__ )
+#endif
 #if PIN_EXISTS(E3_STEP)
   REPORT_NAME_DIGITAL(E3_STEP_PIN, __LINE__ )
 #endif
@@ -257,6 +272,9 @@
 #if PIN_EXISTS(E4_MS2)
   REPORT_NAME_DIGITAL(E4_MS2_PIN, __LINE__ )
 #endif
+#if PIN_EXISTS(E4_MS3)
+  REPORT_NAME_DIGITAL(E4_MS3_PIN, __LINE__ )
+#endif
 #if PIN_EXISTS(E4_STEP)
   REPORT_NAME_DIGITAL(E4_STEP_PIN, __LINE__ )
 #endif
@@ -335,6 +353,9 @@
 #if PIN_EXISTS(FAN2)
   REPORT_NAME_DIGITAL(FAN2_PIN, __LINE__ )
 #endif
+#if PIN_EXISTS(FAN3)
+  REPORT_NAME_DIGITAL(FAN3_PIN, __LINE__ )
+#endif
 #if PIN_EXISTS(FIL_RUNOUT)
   REPORT_NAME_DIGITAL(FIL_RUNOUT_PIN, __LINE__ )
 #endif
@@ -407,6 +428,9 @@
 #if defined(LCD_SDSS) && LCD_SDSS >= 0
   REPORT_NAME_DIGITAL(LCD_SDSS, __LINE__ )
 #endif
+#if PIN_EXISTS(LED_GREEN)
+  REPORT_NAME_DIGITAL(LED_GREEN_PIN, __LINE__ )
+#endif
 #if PIN_EXISTS(LED)
   REPORT_NAME_DIGITAL(LED_PIN, __LINE__ )
 #endif
@@ -416,6 +440,9 @@
 #if defined(MAX6675_SS) && MAX6675_SS >= 0
   REPORT_NAME_DIGITAL(MAX6675_SS, __LINE__ )
 #endif
+// #if defined(MISO) && MISO >= 0
+//   REPORT_NAME_DIGITAL(MISO, __LINE__ )
+// #endif
 #if PIN_EXISTS(MISO)
   REPORT_NAME_DIGITAL(MISO_PIN, __LINE__ )
 #endif
@@ -431,6 +458,9 @@
 #if PIN_EXISTS(MOSFET_D)
   REPORT_NAME_DIGITAL(MOSFET_D_PIN, __LINE__ )
 #endif
+// #if defined(MOSI) && MOSI >= 0
+//   REPORT_NAME_DIGITAL(MOSI, __LINE__ )
+// #endif
 #if PIN_EXISTS(MOSI)
   REPORT_NAME_DIGITAL(MOSI_PIN, __LINE__ )
 #endif
@@ -497,6 +527,9 @@
 #if PIN_EXISTS(SAFETY_TRIGGERED)
   REPORT_NAME_DIGITAL(SAFETY_TRIGGERED_PIN, __LINE__ )
 #endif
+// #if defined(SCK) &&  SCK >= 0
+//   REPORT_NAME_DIGITAL(SCK, __LINE__ )
+// #endif
 #if PIN_EXISTS(SCK)
   REPORT_NAME_DIGITAL(SCK_PIN, __LINE__ )
 #endif
@@ -566,6 +599,9 @@
 #if PIN_EXISTS(SPINDLE_DIR)
   REPORT_NAME_DIGITAL(SPINDLE_DIR_PIN, __LINE__ )
 #endif
+#if PIN_EXISTS(SPINDLE_ENABLE)
+  REPORT_NAME_DIGITAL(SPINDLE_ENABLE_PIN, __LINE__ )
+#endif
 #if PIN_EXISTS(SPINDLE_LASER_ENABLE)
   REPORT_NAME_DIGITAL(SPINDLE_LASER_ENABLE_PIN, __LINE__ )
 #endif
@@ -587,6 +623,9 @@
 #if PIN_EXISTS(STAT_LED_BLUE)
   REPORT_NAME_DIGITAL(STAT_LED_BLUE_PIN, __LINE__ )
 #endif
+#if defined(STAT_LED_RED_LED) && STAT_LED_RED_LED >= 0
+  REPORT_NAME_DIGITAL(STAT_LED_RED_LED, __LINE__ )
+#endif
 #if PIN_EXISTS(STAT_LED_RED)
   REPORT_NAME_DIGITAL(STAT_LED_RED_PIN, __LINE__ )
 #endif
@@ -788,21 +827,42 @@
 #if PIN_EXISTS(Z_MS2)
   REPORT_NAME_DIGITAL(Z_MS2_PIN, __LINE__ )
 #endif
+#if PIN_EXISTS(Z_PROBE)
+  REPORT_NAME_DIGITAL(Z_PROBE_PIN, __LINE__ )
+#endif
 #if PIN_EXISTS(Z_STEP)
   REPORT_NAME_DIGITAL(Z_STEP_PIN, __LINE__ )
 #endif
 #if PIN_EXISTS(Z_STOP)
   REPORT_NAME_DIGITAL(Z_STOP_PIN, __LINE__ )
 #endif
+#if PIN_EXISTS(Z2_CS)
+  REPORT_NAME_DIGITAL(Z2_CS_PIN, __LINE__ )
+#endif
 #if PIN_EXISTS(Z2_DIR)
   REPORT_NAME_DIGITAL(Z2_DIR_PIN, __LINE__ )
 #endif
 #if PIN_EXISTS(Z2_ENABLE)
   REPORT_NAME_DIGITAL(Z2_ENABLE_PIN, __LINE__ )
 #endif
+#if PIN_EXISTS(Z2_MS1)
+  REPORT_NAME_DIGITAL(Z2_MS1_PIN, __LINE__ )
+#endif
+#if PIN_EXISTS(Z2_MS2)
+  REPORT_NAME_DIGITAL(Z2_MS2_PIN, __LINE__ )
+#endif
+#if PIN_EXISTS(Z2_MS3)
+  REPORT_NAME_DIGITAL(Z2_MS3_PIN, __LINE__ )
+#endif
 #if PIN_EXISTS(Z2_STEP)
   REPORT_NAME_DIGITAL(Z2_STEP_PIN, __LINE__ )
 #endif
+#if PIN_EXISTS(ZRIB_V20_D6)
+  REPORT_NAME_DIGITAL(ZRIB_V20_D6_PIN, __LINE__ )
+#endif
+#if PIN_EXISTS(ZRIB_V20_D9)
+  REPORT_NAME_DIGITAL(ZRIB_V20_D9_PIN, __LINE__ )
+#endif
 #if PIN_EXISTS(X_SERIAL_TX)
   REPORT_NAME_DIGITAL(X_SERIAL_TX_PIN, __LINE__ )
 #endif
diff --git a/Marlin/pins_5DPRINT.h b/Marlin/pins_5DPRINT.h
old mode 100644
new mode 100755
index f5e0f4d48a..266fde32d5
--- a/Marlin/pins_5DPRINT.h
+++ b/Marlin/pins_5DPRINT.h
@@ -74,6 +74,14 @@
 #define DEFAULT_MACHINE_NAME "Makibox"
 #define BOARD_NAME           "5DPrint D8"
 
+//
+// Servos
+//
+#define SERVO0_PIN        41
+#define SERVO1_PIN        42
+#define SERVO2_PIN        43
+#define SERVO3_PIN        44
+
 //
 // Limit Switches
 //
@@ -100,7 +108,9 @@
 #define E0_DIR_PIN         35   // A7
 #define E0_ENABLE_PIN      11   // C1
 
-
+//
+// Digital Microstepping
+//
 #define X_MS1_PIN          25   // B5
 #define X_MS2_PIN          26   // B6
 #define Y_MS1_PIN           9   // E1
@@ -128,3 +138,6 @@
 // Misc. Functions
 //
 #define SDSS               20   // B0
+
+//DIGIPOTS slave addresses
+#define DIGIPOT_I2C_ADDRESS_A 0x2C  // unshifted slave address for DIGIPOT 0x2C (0x58 <- 0x2C << 1)
diff --git a/Marlin/pins_ANET_10.h b/Marlin/pins_ANET_10.h
index fcac4c0908..c13236a7c6 100644
--- a/Marlin/pins_ANET_10.h
+++ b/Marlin/pins_ANET_10.h
@@ -86,7 +86,7 @@
  *   Anet Users / Skynet SW on Facebook - https://www.facebook.com/skynet3ddevelopment/
  *
  *   Many thanks to Hans Raaf (@oderwat) for developing the Anet-specific software and supporting the Anet community.
-*/
+ */
 
 #ifndef __AVR_ATmega1284P__
   #error "Oops!  Make sure you have 'Anet V1.0', 'Anet V1.0 (Optiboot)' or 'Sanguino' selected from the 'Tools -> Boards' menu."
diff --git a/Marlin/pins_AZTEEG_X3_PRO.h b/Marlin/pins_AZTEEG_X3_PRO.h
index 0e76a2a232..159cd0f76f 100644
--- a/Marlin/pins_AZTEEG_X3_PRO.h
+++ b/Marlin/pins_AZTEEG_X3_PRO.h
@@ -41,6 +41,10 @@
   #error "Oops! Make sure you have 'Arduino Mega 2560' selected from the 'Tools -> Boards' menu."
 #endif
 
+// DIGIPOT slave addresses
+#define DIGIPOT_I2C_ADDRESS_A 0x2C  // unshifted slave address for first DIGIPOT 0x2C (0x58 <- 0x2C << 1)
+#define DIGIPOT_I2C_ADDRESS_B 0x2E  // unshifted slave address for second DIGIPOT 0x2E (0x5C <- 0x2E << 1)
+
 //
 // Servos
 //
@@ -138,7 +142,7 @@
   #undef BEEPER_PIN
   #define  BEEPER_PIN      12   // 33 isn't physically available to the LCD display
 #else
-  #define STAT_LED_RED_PIN 32
+  #define STAT_LED_RED_PIN  32
   #define STAT_LED_BLUE_PIN 35
 #endif
 
diff --git a/Marlin/pins_MEGACONTROLLER.h b/Marlin/pins_MEGACONTROLLER.h
index c4a10705ab..f5660547aa 100644
--- a/Marlin/pins_MEGACONTROLLER.h
+++ b/Marlin/pins_MEGACONTROLLER.h
@@ -133,6 +133,7 @@
 // LCD / Controller
 //
 #if ENABLED(MINIPANEL)
+
   #define BEEPER_PIN       46
   // Pins for DOGM SPI LCD Support
   #define DOGLCD_A0        47
@@ -152,6 +153,7 @@
   #define BTN_ENC          10
 
   #define SD_DETECT_PIN    49
+
 #endif // MINIPANEL
 
 //
diff --git a/Marlin/pins_MIGHTYBOARD_REVE.h b/Marlin/pins_MIGHTYBOARD_REVE.h
index 86be51add5..1e5e4f5f29 100644
--- a/Marlin/pins_MIGHTYBOARD_REVE.h
+++ b/Marlin/pins_MIGHTYBOARD_REVE.h
@@ -119,6 +119,7 @@
 #define DIGIPOTS_I2C_SDA_Z  65   // K3
 #define DIGIPOTS_I2C_SDA_E0 27   // A5
 #define DIGIPOTS_I2C_SDA_E1 77   // J6
+#define DIGIPOT_I2C_ADDRESS_A 0x2F  // unshifted slave address (5E <- 2F << 1)
 
 //
 // Temperature Sensors
diff --git a/Marlin/pins_RAMBO.h b/Marlin/pins_RAMBO.h
index 99e2d03192..b294a169fc 100644
--- a/Marlin/pins_RAMBO.h
+++ b/Marlin/pins_RAMBO.h
@@ -54,13 +54,6 @@
 #define SERVO2_PIN         24 // Motor header MX3
 #define SERVO3_PIN          5 // PWM header pin 5
 
-//
-// Z Probe (when not Z_MIN_PIN)
-//
-#ifndef Z_MIN_PROBE_PIN
-  #define Z_MIN_PROBE_PIN  30
-#endif
-
 //
 // Limit Switches
 //
@@ -71,6 +64,13 @@
 #define Z_MIN_PIN          10
 #define Z_MAX_PIN          30
 
+//
+// Z Probe (when not Z_MIN_PIN)
+//
+#ifndef Z_MIN_PROBE_PIN
+  #define Z_MIN_PROBE_PIN  30
+#endif
+
 //
 // Steppers
 //
@@ -108,6 +108,9 @@
 
 #define DIGIPOTSS_PIN      38
 #define DIGIPOT_CHANNELS {4,5,3,0,1} // X Y Z E0 E1 digipot channels to stepper driver mapping
+#ifndef DIGIPOT_MOTOR_CURRENT
+  #define DIGIPOT_MOTOR_CURRENT { 135,135,135,135,135 }   // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
+#endif
 
 //
 // Temperature Sensors
@@ -200,7 +203,7 @@
 
       #define SD_DETECT_PIN 81
 
-    #endif  // !VIKI2 && !miniVIKI
+    #endif // !VIKI2 && !miniVIKI
 
   #else // !NEWPANEL - old style panel with shift register
 
diff --git a/Marlin/pins_RAMPS.h b/Marlin/pins_RAMPS.h
index c9d2cfab48..c51999c677 100644
--- a/Marlin/pins_RAMPS.h
+++ b/Marlin/pins_RAMPS.h
@@ -262,7 +262,7 @@
 #endif
 
 #ifndef FAN_PIN
-  #define FAN_PIN 4      // IO pin. Buffer needed
+  #define FAN_PIN           4   // IO pin. Buffer needed
 #endif
 
 //
diff --git a/Marlin/pins_RUMBA.h b/Marlin/pins_RUMBA.h
index 5f567783a4..56caf88646 100644
--- a/Marlin/pins_RUMBA.h
+++ b/Marlin/pins_RUMBA.h
@@ -153,6 +153,12 @@
 //
 // M3/M4/M5 - Spindle/Laser Control
 //
-#define SPINDLE_LASER_PWM_PIN     4  // MUST BE HARDWARE PWM
-#define SPINDLE_LASER_ENABLE_PIN 14  // Pin should have a pullup!
-#define SPINDLE_DIR_PIN          15
+#ifndef SPINDLE_LASER_PWM_PIN
+  #define SPINDLE_LASER_PWM_PIN     4  // MUST BE HARDWARE PWM. Pin 4 interrupts OC0* and OC1* always in use?
+#endif
+#ifndef SPINDLE_LASER_ENABLE_PIN
+  #define SPINDLE_LASER_ENABLE_PIN 14  // Pin should have a pullup!
+#endif
+#ifndef SPINDLE_DIR_PIN
+  #define SPINDLE_DIR_PIN          15
+#endif
diff --git a/Marlin/pins_TEENSYLU.h b/Marlin/pins_TEENSYLU.h
old mode 100644
new mode 100755
index f85eee08e6..33f78b2305
--- a/Marlin/pins_TEENSYLU.h
+++ b/Marlin/pins_TEENSYLU.h
@@ -79,7 +79,6 @@
 
 #define BOARD_NAME         "Teensylu"
 
-
 //
 // Limit Switch definitions that match the SCHEMATIC
 //
diff --git a/Marlin/pins_TRIGORILLA.h b/Marlin/pins_TRIGORILLA.h
index c9b8749d07..527c166c58 100644
--- a/Marlin/pins_TRIGORILLA.h
+++ b/Marlin/pins_TRIGORILLA.h
@@ -32,6 +32,7 @@
 #endif
 
 #define IS_RAMPS_EFB
+
 #include "pins_RAMPS_13.h"
 
 #undef FAN_PIN