diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h
index 1fe970a660..591ce13332 100644
--- a/Marlin/Configuration.h
+++ b/Marlin/Configuration.h
@@ -1,6 +1,8 @@
 #ifndef CONFIGURATION_H
 #define CONFIGURATION_H
 
+#include "boards.h"
+
 // This configuration file contains the basic settings.
 // Advanced settings can be found in Configuration_adv.h
 // BASIC SETTINGS: select your board type, temperature sensor type, axis scaling, and endstop configuration
@@ -37,53 +39,10 @@
 //#define BTENABLED              // Enable BT interface on AT90USB devices
 
 
-//// The following define selects which electronics board you have. Please choose the one that matches your setup
-// 10 = Gen7 custom (Alfons3 Version) "https://github.com/Alfons3/Generation_7_Electronics"
-// 11 = Gen7 v1.1, v1.2 = 11
-// 12 = Gen7 v1.3
-// 13 = Gen7 v1.4
-// 2  = Cheaptronic v1.0
-// 20 = Sethi 3D_1
-// 3  = MEGA/RAMPS up to 1.2 = 3
-// 33 = RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Bed)
-// 34 = RAMPS 1.3 / 1.4 (Power outputs: Extruder0, Extruder1, Bed)
-// 35 = RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Fan)
-// 36 = RAMPS 1.3 / 1.4 (Power outputs: Extruder0, Extruder1, Fan)
-// 4  = Duemilanove w/ ATMega328P pin assignment
-// 5  = Gen6
-// 51 = Gen6 deluxe
-// 6  = Sanguinololu < 1.2
-// 62 = Sanguinololu 1.2 and above
-// 63 = Melzi
-// 64 = STB V1.1
-// 65 = Azteeg X1
-// 66 = Melzi with ATmega1284 (MaKr3d version)
-// 67 = Azteeg X3
-// 68 = Azteeg X3 Pro
-// 7  = Ultimaker
-// 71 = Ultimaker (Older electronics. Pre 1.5.4. This is rare)
-// 72 = Ultimainboard 2.x (Uses TEMP_SENSOR 20)
-// 77 = 3Drag Controller
-// 8  = Teensylu
-// 80 = Rumba
-// 81 = Printrboard (AT90USB1286)
-// 82 = Brainwave (AT90USB646)
-// 83 = SAV Mk-I (AT90USB1286)
-// 84 = Teensy++2.0 (AT90USB1286) // CLI compile: DEFINES=AT90USBxx_TEENSYPP_ASSIGNMENTS HARDWARE_MOTHERBOARD=84  make
-// 9  = Gen3+
-// 22 = Gen3 Monolithic Electronics
-// 70 = Megatronics
-// 701= Megatronics v2.0
-// 702= Minitronics v1.0
-// 90 = Alpha OMCA board
-// 91 = Final OMCA board
-// 301= Rambo
-// 21 = Elefu Ra Board (v3)
-// 88 = 5DPrint D8 Driver Board
-// 999 = Leapfrog
-
+// The following define selects which electronics board you have.
+// Please choose the name from boards.h that matches your setup
 #ifndef MOTHERBOARD
-#define MOTHERBOARD 7
+  #define MOTHERBOARD BOARD_ULTIMAKER
 #endif
 
 // Define this to set a custom name for your generic Mendel,
diff --git a/Marlin/boards.h b/Marlin/boards.h
new file mode 100644
index 0000000000..af249c78cf
--- /dev/null
+++ b/Marlin/boards.h
@@ -0,0 +1,55 @@
+#ifndef BOARDS_H
+#define BOARDS_H
+
+#define BOARD_UNKNOWN -1
+
+#define BOARD_GEN7_CUSTOM       10   // Gen7 custom (Alfons3 Version) "https://github.com/Alfons3/Generation_7_Electronics"
+#define BOARD_GEN7_12           11   // Gen7 v1.1, v1.2
+#define BOARD_GEN7_13           12   // Gen7 v1.3
+#define BOARD_GEN7_14           13   // Gen7 v1.4
+#define BOARD_CHEAPTRONIC       2    // Cheaptronic v1.0
+#define BOARD_SETHI             20   // Sethi 3D_1
+#define BOARD_RAMPS_OLD         3    // MEGA/RAMPS up to 1.2
+#define BOARD_RAMPS_13_EFB      33   // RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Bed)
+#define BOARD_RAMPS_13_EEB      34   // RAMPS 1.3 / 1.4 (Power outputs: Extruder0, Extruder1, Bed)
+#define BOARD_RAMPS_13_EFF      35   // RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Fan)
+#define BOARD_RAMPS_13_EEF      36   // RAMPS 1.3 / 1.4 (Power outputs: Extruder0, Extruder1, Fan)
+#define BOARD_DUEMILANOVE_328P  4    // Duemilanove w/ ATMega328P pin assignment
+#define BOARD_GEN6              5    // Gen6
+#define BOARD_GEN6_DELUXE       51   // Gen6 deluxe
+#define BOARD_SANGUINOLOLU_11   6    // Sanguinololu < 1.2
+#define BOARD_SANGUINOLOLU_12   62   // Sanguinololu 1.2 and above
+#define BOARD_MELZI             63   // Melzi
+#define BOARD_STB_11            64   // STB V1.1
+#define BOARD_AZTEEG_X1         65   // Azteeg X1
+#define BOARD_MELZI_1284        66   // Melzi with ATmega1284 (MaKr3d version)
+#define BOARD_AZTEEG_X3         67   // Azteeg X3
+#define BOARD_AZTEEG_X3_PRO     68   // Azteeg X3 Pro
+#define BOARD_ULTIMAKER         7    // Ultimaker
+#define BOARD_ULTIMAKER_OLD     71   // Ultimaker (Older electronics. Pre 1.5.4. This is rare)
+#define BOARD_ULTIMAIN_2        72   // Ultimainboard 2.x (Uses TEMP_SENSOR 20)
+#define BOARD_3DRAG             77   // 3Drag Controller
+#define BOARD_TEENSYLU          8    // Teensylu
+#define BOARD_RUMBA             80   // Rumba
+#define BOARD_PRINTRBOARD       81   // Printrboard (AT90USB1286)
+#define BOARD_BRAINWAVE         82   // Brainwave (AT90USB646)
+#define BOARD_SAV_MKI           83   // SAV Mk-I (AT90USB1286)
+#define BOARD_TEENSY2           84   // Teensy++2.0 (AT90USB1286) - CLI compile: DEFINES=AT90USBxx_TEENSYPP_ASSIGNMENTS HARDWARE_MOTHERBOARD=84  make
+#define BOARD_GEN3_PLUS         9    // Gen3+
+#define BOARD_GEN3_MONOLITHIC   22   // Gen3 Monolithic Electronics
+#define BOARD_MEGATRONICS       70   // Megatronics
+#define BOARD_MEGATRONICS_2     701  // Megatronics v2.0
+#define BOARD_MEGATRONICS_1     702  // Minitronics v1.0
+#define BOARD_OMCA_A            90   // Alpha OMCA board
+#define BOARD_OMCA              91   // Final OMCA board
+#define BOARD_RAMBO             301  // Rambo
+#define BOARD_ELEFU_3           21   // Elefu Ra Board (v3)
+#define BOARD_5DPRINT           88   // 5DPrint D8 Driver Board
+#define BOARD_LEAPFROG          999  // Leapfrog
+
+#define BOARD_99                99   // This is in pins.h but...?
+
+#define MB(board) (MOTHERBOARD==BOARD_##board)
+#define IS_RAMPS (MB(RAMPS_OLD) || MB(RAMPS_13_EFB) || MB(RAMPS_13_EEB) || MB(RAMPS_13_EFF) || MB(RAMPS_13_EEF))
+
+#endif //__BOARDS_H
diff --git a/Marlin/digipot_mcp4451.cpp b/Marlin/digipot_mcp4451.cpp
index 7c150558bc..0ced287aa0 100644
--- a/Marlin/digipot_mcp4451.cpp
+++ b/Marlin/digipot_mcp4451.cpp
@@ -6,7 +6,7 @@
 #include "Wire.h"
 
 // Settings for the I2C based DIGIPOT (MCP4451) on Azteeg X3 Pro
-#if MOTHERBOARD == 88
+#if MB(5DPRINT)
 #define DIGIPOT_I2C_FACTOR 117.96
 #define DIGIPOT_I2C_MAX_CURRENT 1.736
 #else
diff --git a/Marlin/example_configurations/SCARA/Configuration.h b/Marlin/example_configurations/SCARA/Configuration.h
index 6b74b0c20b..f7bdab8288 100644
--- a/Marlin/example_configurations/SCARA/Configuration.h
+++ b/Marlin/example_configurations/SCARA/Configuration.h
@@ -100,7 +100,7 @@
 // 88 = 5DPrint D8 Driver Board
 
 #ifndef MOTHERBOARD
-#define MOTHERBOARD 33
+  #define MOTHERBOARD BOARD_RAMPS_13_EFB
 #endif
 
 // Define this to set a custom name for your generic Mendel,
diff --git a/Marlin/example_configurations/delta/Configuration.h b/Marlin/example_configurations/delta/Configuration.h
index 042b221c32..e5c405e442 100644
--- a/Marlin/example_configurations/delta/Configuration.h
+++ b/Marlin/example_configurations/delta/Configuration.h
@@ -29,53 +29,10 @@
 // This enables the serial port associated to the Bluetooth interface
 //#define BTENABLED              // Enable BT interface on AT90USB devices
 
-
-//// The following define selects which electronics board you have. Please choose the one that matches your setup
-// 10 = Gen7 custom (Alfons3 Version) "https://github.com/Alfons3/Generation_7_Electronics"
-// 11 = Gen7 v1.1, v1.2 = 11
-// 12 = Gen7 v1.3
-// 13 = Gen7 v1.4
-// 2  = Cheaptronic v1.0
-// 20 = Sethi 3D_1
-// 3  = MEGA/RAMPS up to 1.2 = 3
-// 33 = RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Bed)
-// 34 = RAMPS 1.3 / 1.4 (Power outputs: Extruder0, Extruder1, Bed)
-// 35 = RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Fan)
-// 36 = RAMPS 1.3 / 1.4 (Power outputs: Extruder0, Extruder1, Fan)
-// 4  = Duemilanove w/ ATMega328P pin assignment
-// 5  = Gen6
-// 51 = Gen6 deluxe
-// 6  = Sanguinololu < 1.2
-// 62 = Sanguinololu 1.2 and above
-// 63 = Melzi
-// 64 = STB V1.1
-// 65 = Azteeg X1
-// 66 = Melzi with ATmega1284 (MaKr3d version)
-// 67 = Azteeg X3
-// 68 = Azteeg X3 Pro
-// 7  = Ultimaker
-// 71 = Ultimaker (Older electronics. Pre 1.5.4. This is rare)
-// 72 = Ultimainboard 2.x (Uses TEMP_SENSOR 20)
-// 77 = 3Drag Controller
-// 8  = Teensylu
-// 80 = Rumba
-// 81 = Printrboard (AT90USB1286)
-// 82 = Brainwave (AT90USB646)
-// 83 = SAV Mk-I (AT90USB1286)
-// 84 = Teensy++2.0 (AT90USB1286) // CLI compile: DEFINES=AT90USBxx_TEENSYPP_ASSIGNMENTS HARDWARE_MOTHERBOARD=84  make
-// 9  = Gen3+
-// 70 = Megatronics
-// 701= Megatronics v2.0
-// 702= Minitronics v1.0
-// 90 = Alpha OMCA board
-// 91 = Final OMCA board
-// 301= Rambo
-// 21 = Elefu Ra Board (v3)
-// 88 = 5DPrint D8 Driver Board
-// 999 = Leapfrog
-
+// The following define selects which electronics board you have.
+// Please choose the name from boards.h that matches your setup
 #ifndef MOTHERBOARD
-#define MOTHERBOARD 33
+  #define MOTHERBOARD BOARD_RAMPS_13_EFB
 #endif
 
 // Define this to set a custom name for your generic Mendel,
diff --git a/Marlin/example_configurations/makibox/Configuration.h b/Marlin/example_configurations/makibox/Configuration.h
index 6ebd08f43e..c39465f2b8 100644
--- a/Marlin/example_configurations/makibox/Configuration.h
+++ b/Marlin/example_configurations/makibox/Configuration.h
@@ -73,7 +73,7 @@
 // 88 = 5DPrint D8 Driver Board
 
 #ifndef MOTHERBOARD
-#define MOTHERBOARD 88
+  #define MOTHERBOARD BOARD_5DPRINT
 #endif
 
 // Define this to set a custom name for your generic Mendel,
diff --git a/Marlin/language.h b/Marlin/language.h
index 3e6e170438..c0b66a3721 100644
--- a/Marlin/language.h
+++ b/Marlin/language.h
@@ -27,16 +27,16 @@
 
 #define PROTOCOL_VERSION "1.0"
 
-#if MOTHERBOARD == 7 || MOTHERBOARD == 71 || MOTHERBOARD == 72
+#if MB(ULTIMAKER)|| MB(ULTIMAKER_OLD)|| MB(ULTIMAIN_2)
 	#define MACHINE_NAME "Ultimaker"
 	#define FIRMWARE_URL "http://firmware.ultimaker.com"
-#elif MOTHERBOARD == 80
+#elif MB(RUMBA)
 	#define MACHINE_NAME "Rumba"
 	#define FIRMWARE_URL "https://github.com/ErikZalm/Marlin/"
-#elif MOTHERBOARD == 77
+#elif MB(3DRAG)
 	#define MACHINE_NAME "3Drag"
 	#define FIRMWARE_URL "http://3dprint.elettronicain.it/"
-#elif MOTHERBOARD == 88
+#elif MB(5DPRINT)
 	#define MACHINE_NAME "Makibox"
 	#define FIRMWARE_URL "https://github.com/ErikZalm/Marlin/"
 #else
diff --git a/Marlin/pins.h b/Marlin/pins.h
index 13cb9053e9..906522b81e 100644
--- a/Marlin/pins.h
+++ b/Marlin/pins.h
@@ -1,7 +1,9 @@
 #ifndef PINS_H
 #define PINS_H
 
-#if MOTHERBOARD != 88
+#include "boards.h"
+
+#if !MB(5DPRINT)
 #define X_MS1_PIN -1
 #define X_MS2_PIN -1
 #define Y_MS1_PIN -1
@@ -20,7 +22,7 @@
 * https://bitbucket.org/makible/5dprint-d8-controller-board
 ****************************************************************************************/
 
-#if MOTHERBOARD == 88
+#if MB(5DPRINT)
 
 #define KNOWN_BOARD 1
 #define AT90USB 1286  // Disable MarlinSerial etc.
@@ -92,13 +94,13 @@
 #define E0_MS1_PIN 5
 #define E0_MS2_PIN 4
 
-#endif /* 88 */
+#endif // 5DPRINT
 
 /****************************************************************************************
 * Leapfrog Driver board
 * 
 ****************************************************************************************/
-#if MOTHERBOARD == 999  // Leapfrog board
+#if MB(LEAPFROG)  // Leapfrog board
 #define KNOWN_BOARD 1
 
 #ifndef __AVR_ATmega1280__
@@ -162,14 +164,14 @@
 /*  Unused (1) (2) (3) 4 5 6 7 8 9 10 11 12 13 (14) (15) (16) 17 (18) (19) (20) (21) (22) (23) 24 (25) (26) (27) 28 (29) (30) (31)  */
 
 
-#endif
+#endif // LEAPFROG
 
 /****************************************************************************************
 *
 *
 ****************************************************************************************/
 
-#if MOTHERBOARD == 99
+#if MB(99)
 #define KNOWN_BOARD 1
 
 #define X_STEP_PIN          2
@@ -207,14 +209,14 @@
 #define HEATER_BED_PIN      4
 #define TEMP_BED_PIN       10
 
-#endif /* 99 */
+#endif // 99
 
 /****************************************************************************************
 * Sethi 3D_1 pin assignment - www.sethi3d.com.br
 *
 ****************************************************************************************/
 
-#if MOTHERBOARD == 20
+#if MB(SETHI)
 #define KNOWN_BOARD
 
 #if !defined(__AVR_ATmega644P__) && !defined(__AVR_ATmega644__) && !defined(__AVR_ATmega1284P__)
@@ -285,7 +287,7 @@
 #define TX_ENABLE_PIN 12
 #define RX_ENABLE_PIN 13
 
-#endif
+#endif // SETHI
 
 /****************************************************************************************
 * Gen7 v1.1, v1.2, v1.3 pin assignment
@@ -293,12 +295,12 @@
 ****************************************************************************************/
 
 
-#if MOTHERBOARD == 12
-#define MOTHERBOARD 11
+#if MB(GEN7_13)
+#define MOTHERBOARD BOARD_GEN7_12
 #define GEN7_VERSION 13 // v1.3
 #endif
 
-#if MOTHERBOARD == 11
+#if MB(GEN7_12)
 #define KNOWN_BOARD
 
 #if !defined(__AVR_ATmega644P__) && !defined(__AVR_ATmega644__) && !defined(__AVR_ATmega1284P__)
@@ -376,11 +378,11 @@
 *
 ****************************************************************************************/
 
-#if MOTHERBOARD == 13
+#if MB(GEN7_14)
 #define GEN7_VERSION 14 // v1.4
 #endif
 
-#if MOTHERBOARD == 13
+#if MB(GEN7_14)
 #define KNOWN_BOARD
 
 #if !defined(__AVR_ATmega644P__) && !defined(__AVR_ATmega644__) && !defined(__AVR_ATmega1284P__)
@@ -442,22 +444,19 @@
 #define TX_ENABLE_PIN 12
 #define RX_ENABLE_PIN 13
 
-#endif
+#endif // GEN7
 
-/*******************************************************************************
-*********
+/******************************************************************************
 * Gen7 Alfons3  pin assignment
 *
-********************************************************************************
-********/
+******************************************************************************/
 /* These Pins are assigned for the modified GEN7 Board from Alfons3 Please review the pins and adjust it for your needs*/
 
-#if MOTHERBOARD == 10
+#if MB(GEN7_CUSTOM)
 #define KNOWN_BOARD
 
 #if !defined(__AVR_ATmega644P__) && !defined(__AVR_ATmega644__) && !defined(__AVR_ATmega1284P__)
     #error Oops!  Make sure you have 'Gen7' selected from the 'Tools -> Boards' menu.
-
 #endif
 
 //x axis pins
@@ -525,13 +524,13 @@
     #define BTN_EN2 10
     #define BTN_ENC 12  //the click
 
-#endif
+#endif // GEN7_CUSTOM
 
 /****************************************************************************************
 * Arduino Mega pin assignment
 *
 ****************************************************************************************/
-#if MOTHERBOARD == 3 || MOTHERBOARD == 33 || MOTHERBOARD == 34 || MOTHERBOARD == 35 || MOTHERBOARD == 36 || MOTHERBOARD == 77 || MOTHERBOARD == 67 || MOTHERBOARD == 68
+#if IS_RAMPS || MB(3DRAG) || MB(AZTEEG_X3) || MB(AZTEEG_X3_PRO)
 #define KNOWN_BOARD 1
 
 //////////////////FIX THIS//////////////
@@ -547,11 +546,11 @@
 // #define RAMPS_V_1_0
 
 
-#if MOTHERBOARD == 33 || MOTHERBOARD == 34 || MOTHERBOARD == 35 || MOTHERBOARD == 36 ||  MOTHERBOARD == 77 || MOTHERBOARD == 67 || MOTHERBOARD == 68
+#if (IS_RAMPS && !MB(RAMPS_OLD)) || MB(3DRAG) || MB(AZTEEG_X3) || MB(AZTEEG_X3_PRO)
 
   #define LARGE_FLASH true
 
-  #if MOTHERBOARD == 77
+  #if MB(3DRAG)
     #define X_STEP_PIN         54
     #define X_DIR_PIN          55
     #define X_ENABLE_PIN       38
@@ -628,16 +627,16 @@
     #define E1_DIR_PIN         34
     #define E1_ENABLE_PIN      30
 
-#if MOTHERBOARD == 34  //FMM added for Filament Extruder
+#if MB(RAMPS_13_EEB)  //FMM added for Filament Extruder
 #ifdef FILAMENT_SENSOR
-	  //define analog pin for the filament width sensor input
-	  //Use the RAMPS 1.4 Analog input 5 on the AUX2 connector
+    //define analog pin for the filament width sensor input
+    //Use the RAMPS 1.4 Analog input 5 on the AUX2 connector
       #define FILWIDTH_PIN        5
 #endif
 #endif
 
 
-    #if MOTHERBOARD == 68
+    #if MB(AZTEEG_X3_PRO)
       #define E2_STEP_PIN        23
       #define E2_DIR_PIN         25
       #define E2_ENABLE_PIN      40
@@ -656,17 +655,17 @@
     #define LED_PIN            13
   #endif
 
-  #if MOTHERBOARD == 33 || MOTHERBOARD == 35 || MOTHERBOARD == 67 || MOTHERBOARD == 68
+  #if MB(RAMPS_13_EFB) || MB(RAMPS_13_EFF) || MB(AZTEEG_X3) || MB(AZTEEG_X3_PRO)
     #define FAN_PIN            9 // (Sprinter config)
   #else
     #define FAN_PIN            4 // IO pin. Buffer needed
   #endif
 
-  #if MOTHERBOARD == 77 || MOTHERBOARD == 36
+  #if MB(3DRAG) || MB(RAMPS_13_EEF)
     #define FAN_PIN            8
   #endif
 
-  #if MOTHERBOARD == 35
+  #if MB(RAMPS_13_EFF)
     #define CONTROLLERFAN_PIN  -1 //Pin used for the fan to cool controller
   #endif
 
@@ -678,24 +677,24 @@
     #define KILL_PIN           -1
   #endif
 
-  #if MOTHERBOARD == 35
+  #if MB(RAMPS_13_EFF)
     #define HEATER_0_PIN       8
   #else
     #define HEATER_0_PIN       10   // EXTRUDER 1
   #endif
 
-  #if MOTHERBOARD == 33 || MOTHERBOARD == 67
+  #if MB(RAMPS_13_EFB) || MB(AZTEEG_X3)
     #define HEATER_1_PIN       -1
   #else
     #define HEATER_1_PIN       9    // EXTRUDER 2 (FAN On Sprinter)
   #endif
 
 
-  #if MOTHERBOARD == 77
+  #if MB(3DRAG)
     #define HEATER_0_PIN       10
     #define HEATER_1_PIN       12
     #define HEATER_2_PIN       6
-  #elif MOTHERBOARD == 68
+  #elif MB(AZTEEG_X3_PRO)
     #define HEATER_2_PIN       16
     #define HEATER_3_PIN       17
     #define HEATER_4_PIN       4
@@ -708,7 +707,7 @@
 
   #define TEMP_0_PIN         13   // ANALOG NUMBERING
   #define TEMP_1_PIN         15   // ANALOG NUMBERING
-  #if MOTHERBOARD == 68
+  #if MB(AZTEEG_X3_PRO)
     #define TEMP_2_PIN         12   // ANALOG NUMBERING
     #define TEMP_3_PIN         11   // ANALOG NUMBERING
     #define TEMP_4_PIN         10   // ANALOG NUMBERING
@@ -718,10 +717,10 @@
     #define TEMP_2_PIN         -1   // ANALOG NUMBERING
   #endif
 
-  #if MOTHERBOARD == 35 || MOTHERBOARD == 36
+  #if MB(RAMPS_13_EFF) || MB(RAMPS_13_EEF)
     #define HEATER_BED_PIN     -1    // NO BED
   #else
-    #if MOTHERBOARD == 77
+    #if MB(3DRAG)
       #define HEATER_BED_PIN     9    // BED
     #else
       #define HEATER_BED_PIN     8    // BED
@@ -746,12 +745,12 @@
     #endif
   #endif
 
-  #if MOTHERBOARD == 68
+  #if MB(AZTEEG_X3_PRO)
     #define BEEPER 33
   #endif
 
   #ifdef TEMP_STAT_LEDS
-    #if MOTHERBOARD == 67
+    #if MB(AZTEEG_X3)
       #define STAT_LED_RED       6
       #define STAT_LED_BLUE     11
     #endif
@@ -814,7 +813,7 @@
 
       #endif
 
-      #if MOTHERBOARD == 77
+      #if MB(3DRAG)
         #define BEEPER -1
 
         #define LCD_PINS_RS 27
@@ -832,10 +831,10 @@
     #endif
     #else //old style panel with shift register
       //arduino pin witch triggers an piezzo beeper
-      #define BEEPER 33		//No Beeper added
+      #define BEEPER 33   //No Beeper added
 
       //buttons are attached to a shift register
-	// Not wired this yet
+  // Not wired this yet
       //#define SHIFT_CLK 38
       //#define SHIFT_LD 42
       //#define SHIFT_OUT 40
@@ -850,7 +849,7 @@
     #endif
   #endif //ULTRA_LCD
 
-#else // RAMPS_V_1_1 or RAMPS_V_1_2 as default (MOTHERBOARD == 3)
+#else // RAMPS_V_1_1 or RAMPS_V_1_2 as default (BOARD_RAMPS_OLD)
 
 #define X_STEP_PIN         26
 #define X_DIR_PIN          28
@@ -896,7 +895,7 @@
 #define TEMP_2_PIN          -1
 #define TEMP_BED_PIN        1    // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!!
 
-#endif // MOTHERBOARD == 33 || MOTHERBOARD == 34 || MOTHERBOARD == 35 || MOTHERBOARD == 77
+#endif // RAMPS_13_EFB || RAMPS_13_EEB || RAMPS_13_EFF || 3DRAG
 
 // SPI for Max6675 Thermocouple
 
@@ -910,13 +909,13 @@
   #define MAX6675_SS       49
 #endif
 
-#endif //MOTHERBOARD == 3 || MOTHERBOARD == 33 || MOTHERBOARD == 34 || MOTHERBOARD == 35 || MOTHERBOARD == 77
+#endif // RAMPS_OLD || RAMPS_13_EFB || RAMPS_13_EEB || RAMPS_13_EFF || 3DRAG
 
 /****************************************************************************************
 * Duemilanove w/ ATMega328P pin assignment
 *
 ****************************************************************************************/
-#if MOTHERBOARD == 4
+#if MB(DUEMILANOVE_328P)
 #define KNOWN_BOARD 1
 
 #ifndef __AVR_ATmega328P__
@@ -958,25 +957,25 @@
 #define HEATER_BED_PIN      -1
 #define TEMP_BED_PIN        -1
 
-#endif
+#endif // DUEMILANOVE_328P
 
 /****************************************************************************************
 * Elefu RA Board Pin Assignments
 *
 ****************************************************************************************/
-#if MOTHERBOARD == 21
-#define	KNOWN_BOARD 1
+#if MB(ELEFU_3)
+#define KNOWN_BOARD 1
 
 #ifndef __AVR_ATmega2560__
  #error Oops!  Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu.
 #endif
 
 
-#define X_STEP_PIN		     49
-#define X_DIR_PIN			     13
-#define X_ENABLE_PIN		   48
-#define X_MIN_PIN			     35
-#define X_MAX_PIN			     -1 //34
+#define X_STEP_PIN         49
+#define X_DIR_PIN          13
+#define X_ENABLE_PIN       48
+#define X_MIN_PIN          35
+#define X_MAX_PIN          -1 //34
 
 #define Y_STEP_PIN         11
 #define Y_DIR_PIN          9
@@ -1008,18 +1007,18 @@
 #define FAN_PIN            16 //5V PWM
 
 #define PS_ON_PIN          10 //Set to -1 if using a manual switch on the PWRSW Connector
-#define SLEEP_WAKE_PIN		 26 //This feature still needs work
+#define SLEEP_WAKE_PIN     26 //This feature still needs work
 
-#define HEATER_0_PIN       45	//12V PWM1
-#define HEATER_1_PIN       46	//12V PWM2
-#define HEATER_2_PIN       17	//12V PWM3
-#define HEATER_BED_PIN     44	//DOUBLE 12V PWM
-#define TEMP_0_PIN         3	//ANALOG NUMBERING
-#define TEMP_1_PIN         2 	//ANALOG NUMBERING
-#define TEMP_2_PIN         1 	//ANALOG NUMBERING
-#define TEMP_BED_PIN       0	//ANALOG NUMBERING
+#define HEATER_0_PIN       45 //12V PWM1
+#define HEATER_1_PIN       46 //12V PWM2
+#define HEATER_2_PIN       17 //12V PWM3
+#define HEATER_BED_PIN     44 //DOUBLE 12V PWM
+#define TEMP_0_PIN         3  //ANALOG NUMBERING
+#define TEMP_1_PIN         2  //ANALOG NUMBERING
+#define TEMP_2_PIN         1  //ANALOG NUMBERING
+#define TEMP_BED_PIN       0  //ANALOG NUMBERING
 
-#define BEEPER 		         36
+#define BEEPER             36
 
 #define KILL_PIN           -1
 
@@ -1082,14 +1081,14 @@
 #endif //RA_LIGHTING
 
 
-#endif /* Ra Board */
+#endif // ELEFU_3
 
 
 /****************************************************************************************
 * Gen6 pin assignment
 *
 ****************************************************************************************/
-#if MOTHERBOARD == 5 || MOTHERBOARD == 51
+#if MB(GEN6) || MB(GEN6_DELUXE)
 #define KNOWN_BOARD 1
 
 #ifndef __AVR_ATmega644P__
@@ -1128,7 +1127,7 @@
     #define HEATER_0_PIN    14    //changed @ rkoeppl 20110410
     #define HEATER_1_PIN    -1
     #define HEATER_2_PIN    -1
-    #if MOTHERBOARD == 5
+    #if MB(GEN6)
     #define HEATER_BED_PIN  -1    //changed @ rkoeppl 20110410
     #define TEMP_BED_PIN    -1    //changed @ rkoeppl 20110410
     #else
@@ -1149,32 +1148,32 @@
     #define TX_ENABLE_PIN 12
     #define RX_ENABLE_PIN 13
 
-
-#endif
+#endif // GEN6 || GEN6_DELUXE
 
 /****************************************************************************************
 * Sanguinololu pin assignment
 *
 ****************************************************************************************/
-#if MOTHERBOARD == 64
+#if MB(STB_11)
 #define STB
 #endif
-#if MOTHERBOARD == 63 || MOTHERBOARD == 66
+#if MB(MELZI) || MB(MELZI_1284)
 #define MELZI
 #endif
-#if MOTHERBOARD == 65
+#if MB(AZTEEG_X1)
 #define AZTEEG_X1
 #endif
-#if MOTHERBOARD == 62 || MOTHERBOARD == 63 || MOTHERBOARD == 64 || MOTHERBOARD == 65 || MOTHERBOARD == 66
+#if MB(SANGUINOLOLU_12) || MB(MELZI) || MB(STB_11) || MB(AZTEEG_X1) || MB(MELZI_1284)
 #undef MOTHERBOARD
-#define MOTHERBOARD 6
+#define MOTHERBOARD BOARD_SANGUINOLOLU_11
 #define SANGUINOLOLU_V_1_2
 
 #if defined(__AVR_ATmega1284P__)
-	#define LARGE_FLASH true
+  #define LARGE_FLASH true
 #endif
 #endif
-#if MOTHERBOARD == 6
+
+#if MB(SANGUINOLOLU_11)
 #define KNOWN_BOARD 1
 #ifndef __AVR_ATmega644P__
 #ifndef __AVR_ATmega1284P__
@@ -1211,7 +1210,7 @@
 
 #ifdef STB
  #define FAN_PIN            4
-	//  Uncomment this if you have the first generation (V1.10) of STBs board
+  //  Uncomment this if you have the first generation (V1.10) of STBs board
  #define LCD_PIN_BL         17 // LCD backlight LED
 #endif
 
@@ -1322,7 +1321,7 @@
      // Pins for DOGM SPI LCD Support
      #define DOGLCD_A0  30
      #define DOGLCD_CS  17
-     #define LCD_PIN_BL	28	// backlight LED on PA3
+     #define LCD_PIN_BL 28  // backlight LED on PA3
      // GLCD features
      #define LCD_CONTRAST 1
      // Uncomment screen orientation
@@ -1338,15 +1337,16 @@
      #define SDCARDDETECT -1
  #endif //Makrpanel
 
-#endif
+#endif // SANGUINOLOLU_11
 
 
-#if MOTHERBOARD == 7
-#define KNOWN_BOARD
 /*****************************************************************
 * Ultimaker pin assignment
 ******************************************************************/
 
+#if MB(ULTIMAKER)
+#define KNOWN_BOARD
+
 #ifndef __AVR_ATmega1280__
  #ifndef __AVR_ATmega2560__
  #error Oops!  Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu.
@@ -1442,9 +1442,9 @@
   #endif
 #endif //ULTRA_LCD
 
-#endif
+#endif // ULTIMAKER
 
-#if MOTHERBOARD == 71
+#if MB(ULTIMAKER_OLD)
 #define KNOWN_BOARD
 /*****************************************************************
 * Ultimaker pin assignment (Old electronics)
@@ -1511,9 +1511,9 @@
 #define LCD_PINS_D6 32
 #define LCD_PINS_D7 30
 
-#endif
+#endif // ULTIMAKER_OLD
 
-#if MOTHERBOARD == 72
+#if MB(ULTIMAIN_2)
 #define KNOWN_BOARD
 /*****************************************************************
 * Ultiboard v2.0 pin assignment
@@ -1596,13 +1596,13 @@
 
 #define SDCARDDETECT 39
 
-#endif//MOTHERBOARD == 72
+#endif // ULTIMAIN_2
 
 /****************************************************************************************
 * RUMBA pin assignment
 *
 ****************************************************************************************/
-#if MOTHERBOARD == 80
+#if MB(RUMBA)
 #define KNOWN_BOARD 1
 
 #ifndef __AVR_ATmega2560__
@@ -1712,7 +1712,7 @@
 #define BTN_EN2            12
 #define BTN_ENC            43
 
-#endif //MOTHERBOARD==80
+#endif // RUMBA
 
 
 /****************************************************************************************
@@ -1721,7 +1721,7 @@
   http://www.pjrc.com/teensy/teensyduino.html
 * See http://reprap.org/wiki/Printrboard for more info
 ****************************************************************************************/
-#if MOTHERBOARD == 8 || MOTHERBOARD == 81
+#if MB(TEENSYLU) || MB(PRINTRBOARD)
 #define KNOWN_BOARD 1
 #define AT90USB 1286  // Disable MarlinSerial etc.
 
@@ -1759,7 +1759,7 @@
 // You may need to change FAN_PIN to 16 because Marlin isn't using fastio.h
 // for the fan and Teensyduino uses a different pin mapping.
 
-#if MOTHERBOARD == 8  // Teensylu
+#if MB(TEENSYLU)  // Teensylu
   #define X_STOP_PIN         13
   #define Y_STOP_PIN         14
   #define Z_STOP_PIN         15
@@ -1793,14 +1793,14 @@
   #define MOSI_PIN         10
 #endif
 
-#endif  // MOTHERBOARD == 8 (Teensylu) or 81 (Printrboard)
+#endif // TEENSYLU || PRINTRBOARD
 
 /****************************************************************************************
  * Brainwave 1.0 pin assignments (AT90USB646)
  * Requires hardware bundle for Arduino:
    https://github.com/unrepentantgeek/brainwave-arduino
  ****************************************************************************************/
-#if MOTHERBOARD == 82
+#if MB(BRAINWAVE)
 #define KNOWN_BOARD 1
 #define AT90USB 646  // Disable MarlinSerial etc.
 
@@ -1856,7 +1856,7 @@
   #define MOSI_PIN         10
 #endif
 
-#endif  // MOTHERBOARD == 82 (Brainwave)
+#endif // BRAINWAVE
 
 //
 // SAV Mk-I
@@ -1867,7 +1867,7 @@
   http://www.pjrc.com/teensy/teensyduino.html
    RepRap Clone Wars project board.
 ****************************************************************************************/
-#if MOTHERBOARD == 83  // SAV Mk-I
+#if MB(SAV_MKI)  // SAV Mk-I
 #define KNOWN_BOARD 1
 #define AT90USB 1286  // Disable MarlinSerial etc.
 
@@ -1941,7 +1941,7 @@
 #define SR_DATA_PIN         0
 #define SR_CLK_PIN          1
 
-#endif  // MOTHERBOARD == 83
+#endif // SAV_MKI
 
 /****************************************************************************************
 * Teensy++ 2.0 Breadboard pin assignments (AT90USB1286)
@@ -1951,7 +1951,7 @@
 * CLI build: DEFINES=AT90USBxx_TEENSYPP_ASSIGNMENTS HARDWARE_MOTHERBOARD=84  make
 * 
 ****************************************************************************************/
-#if MOTHERBOARD == 84
+#if MB(TEENSY2)
 #define KNOWN_BOARD 1
 #define AT90USB 1286  // Disable MarlinSerial etc.
 
@@ -2036,7 +2036,7 @@ DaveX plan for Teensylu/printrboard-type pinouts (ref teensylu & sprinter) for a
 #define TEMP_2_PIN         -1
 
 #define SDPOWER            -1
-#define SDCARDDETECT       -1		
+#define SDCARDDETECT       -1   
 #define SDSS               20 // 8
 #define LED_PIN             6
 #define PS_ON_PIN          27
@@ -2062,15 +2062,15 @@ DaveX plan for Teensylu/printrboard-type pinouts (ref teensylu & sprinter) for a
 #define BTN_ENC            40
 #endif
 
-#endif  // MOTHERBOARD == 84 (Teensy++2.0 Breadboard)
+#endif // TEENSY2
 
 
 /****************************************************************************************
 * Gen3+ pin assignment
 *
 ****************************************************************************************/
-#if MOTHERBOARD == 9
-#define MOTHERBOARD 6   /*TODO: Figure out, Why is this done?*/
+#if MB(GEN3_PLUS)
+#define MOTHERBOARD BOARD_SANGUINOLOLU_11   /*TODO: Figure out, Why is this done?*/
 #define KNOWN_BOARD 1
 #ifndef __AVR_ATmega644P__
 #ifndef __AVR_ATmega1284P__
@@ -2116,13 +2116,13 @@ DaveX plan for Teensylu/printrboard-type pinouts (ref teensylu & sprinter) for a
 #define SDSS               4
 #define HEATER_2_PIN       -1
 
-#endif
+#endif // GEN3_PLUS
 
 /****************************************************************************************
 * Gen3  Monolithic Electronics
 *
 ****************************************************************************************/
-#if MOTHERBOARD == 22
+#if MB(GEN3_MONOLITHIC)
 #define KNOWN_BOARD 1
 
 #ifndef __AVR_ATmega644P__
@@ -2170,12 +2170,12 @@ DaveX plan for Teensylu/printrboard-type pinouts (ref teensylu & sprinter) for a
 #define TEMP_BED_PIN -1
 
 
-#define SDSS		 -1
+#define SDSS     -1
 #define SDPOWER          -1
 #define LED_PIN          -1
 
 //pin for controlling the PSU.
-#define PS_ON_PIN       14	//Alex, Do this work on the card?
+#define PS_ON_PIN       14  //Alex, Do this work on the card?
 
 //Alex extras from Gen3+
 #define KILL_PIN           -1
@@ -2183,7 +2183,7 @@ DaveX plan for Teensylu/printrboard-type pinouts (ref teensylu & sprinter) for a
 #define TEMP_2_PIN         -1
 #define HEATER_2_PIN       -1
 
-#endif
+#endif // GEN3_MONOLITHIC
 
 /****************************************************************************************
 * Open Motion controller with enable based extruders
@@ -2214,7 +2214,7 @@ DaveX plan for Teensylu/printrboard-type pinouts (ref teensylu & sprinter) for a
 *                        +--------+
 *
 ****************************************************************************************/
-#if MOTHERBOARD == 90 //Alpha OMCA board
+#if MB(OMCA_A) //Alpha OMCA board
 #define KNOWN_BOARD 1
 
 #ifndef __AVR_ATmega644__
@@ -2266,9 +2266,9 @@ DaveX plan for Teensylu/printrboard-type pinouts (ref teensylu & sprinter) for a
 #define TEMP_BED_PIN       -1 // 1,2 or I2C
 /*  Unused (1) (2) (3) 4 5 6 7 8 9 10 11 12 13 (14) (15) (16) 17 (18) (19) (20) (21) (22) (23) 24 (25) (26) (27) 28 (29) (30) (31)  */
 
-#endif
+#endif // OMCA_A
 
-#if MOTHERBOARD == 91  // Final OMCA board -- REF http://sanguino.cc/hardware
+#if MB(OMCA)  // Final OMCA board -- REF http://sanguino.cc/hardware
 #define KNOWN_BOARD 1
 
 #if !defined(__AVR_ATmega644P__) && !defined(__AVR_ATmega644__)
@@ -2332,14 +2332,13 @@ DaveX plan for Teensylu/printrboard-type pinouts (ref teensylu & sprinter) for a
 #define I2C_SCL       16
 #define I2C_SDA       17
 
-#endif
+#endif // OMCA
 
-#if MOTHERBOARD == 301
-#define KNOWN_BOARD
 /*****************************************************************
 * Rambo Pin Assignments
 ******************************************************************/
-
+#if MB(RAMBO)
+#define KNOWN_BOARD
 #ifndef __AVR_ATmega2560__
 #error Oops!  Make sure you have 'Arduino Mega 2560' selected from the 'Tools -> Boards' menu.
 #endif
@@ -2478,13 +2477,13 @@ DaveX plan for Teensylu/printrboard-type pinouts (ref teensylu & sprinter) for a
   #define FILWIDTH_PIN        3
 #endif //FILAMENT_SENSOR
 
-#endif
+#endif // RAMBO
 
 /****************************************************************************************
 * MegaTronics
 *
 ****************************************************************************************/
-#if MOTHERBOARD == 70
+#if MB(MEGATRONICS)
 #define KNOWN_BOARD 1
 
 
@@ -2570,7 +2569,7 @@ DaveX plan for Teensylu/printrboard-type pinouts (ref teensylu & sprinter) for a
     #define BLEN_B 1
     #define BLEN_A 0
 
-    #define SDCARDDETECT -1		// Ramps does not use this port
+    #define SDCARDDETECT -1   // Ramps does not use this port
 
       //encoder rotation values
     #define encrot0 0
@@ -2580,13 +2579,13 @@ DaveX plan for Teensylu/printrboard-type pinouts (ref teensylu & sprinter) for a
 #endif
 #endif //ULTRA_LCD
 
-#endif
+#endif // MEGATRONICS
 
 /****************************************************************************************
 * MegaTronics v2.0
 *
 ****************************************************************************************/
-#if MOTHERBOARD == 701
+#if MB(MEGATRONICS_2)
  #define KNOWN_BOARD 1
 
 
@@ -2682,7 +2681,7 @@ DaveX plan for Teensylu/printrboard-type pinouts (ref teensylu & sprinter) for a
  #define BLEN_B 1
  #define BLEN_A 0
 
- #define SDCARDDETECT -1	// Megatronics does not use this port
+ #define SDCARDDETECT -1  // Megatronics does not use this port
 
    //encoder rotation values
  #define encrot0 0
@@ -2690,14 +2689,14 @@ DaveX plan for Teensylu/printrboard-type pinouts (ref teensylu & sprinter) for a
  #define encrot2 3
  #define encrot3 1
 
-#endif
+#endif // MEGATRONICS_2
 
 
 /****************************************************************************************
 * Minitronics v1.0
 *
 ****************************************************************************************/
-#if MOTHERBOARD == 702
+#if MB(MEGATRONICS_1)
  #define KNOWN_BOARD 1
 
 
@@ -2778,7 +2777,7 @@ DaveX plan for Teensylu/printrboard-type pinouts (ref teensylu & sprinter) for a
  #define BLEN_B 1
  #define BLEN_A 0
 
- #define SDCARDDETECT -1	// Megatronics does not use this port
+ #define SDCARDDETECT -1  // Megatronics does not use this port
 
    //encoder rotation values
  #define encrot0 0
@@ -2786,13 +2785,13 @@ DaveX plan for Teensylu/printrboard-type pinouts (ref teensylu & sprinter) for a
  #define encrot2 3
  #define encrot3 1
 
-#endif
+#endif // MEGATRONICS_1
 
 /****************************************************************************************
 * Cheaptronic v1.0
 *
 ****************************************************************************************/
-#if MOTHERBOARD == 2
+#if MB(CHEAPTRONIC)
  #define KNOWN_BOARD 1
 
  #ifndef __AVR_ATmega2560__
@@ -2887,7 +2886,7 @@ DaveX plan for Teensylu/printrboard-type pinouts (ref teensylu & sprinter) for a
  #define encrot2 3
  #define encrot3 1
 
-#endif
+#endif // CHEAPTRONIC
 
 
 
@@ -2954,5 +2953,5 @@ DaveX plan for Teensylu/printrboard-type pinouts (ref teensylu & sprinter) for a
                         HEATER_BED_PIN, FAN_PIN,                  \
                         _E0_PINS _E1_PINS _E2_PINS             \
                         analogInputToDigitalPin(TEMP_0_PIN), analogInputToDigitalPin(TEMP_1_PIN), analogInputToDigitalPin(TEMP_2_PIN), analogInputToDigitalPin(TEMP_BED_PIN) }
-#endif
 
+#endif //__PINS_H
diff --git a/Marlin/temperature.cpp b/Marlin/temperature.cpp
index af5d8c130d..5dc55df6e9 100644
--- a/Marlin/temperature.cpp
+++ b/Marlin/temperature.cpp
@@ -768,7 +768,7 @@ return(filament_width_nominal/temp*100);
 
 void tp_init()
 {
-#if (MOTHERBOARD == 80) && ((TEMP_SENSOR_0==-1)||(TEMP_SENSOR_1==-1)||(TEMP_SENSOR_2==-1)||(TEMP_SENSOR_BED==-1))
+#if MB(RUMBA) && ((TEMP_SENSOR_0==-1)||(TEMP_SENSOR_1==-1)||(TEMP_SENSOR_2==-1)||(TEMP_SENSOR_BED==-1))
   //disable RUMBA JTAG in case the thermocouple extension is plugged on top of JTAG connector
   MCUCR=(1<<JTD); 
   MCUCR=(1<<JTD);