diff --git a/Marlin/Makefile b/Marlin/Makefile
index 16b80d25ee..864ee949d1 100644
--- a/Marlin/Makefile
+++ b/Marlin/Makefile
@@ -204,12 +204,16 @@ else ifeq ($(HARDWARE_MOTHERBOARD),68)
else ifeq ($(HARDWARE_MOTHERBOARD),72)
# Rumba
else ifeq ($(HARDWARE_MOTHERBOARD),80)
+# Raise3D Rumba
+else ifeq ($(HARDWARE_MOTHERBOARD),333)
# Formbot T-Rex 2 Plus
else ifeq ($(HARDWARE_MOTHERBOARD),95)
# Formbot T-Rex 3
else ifeq ($(HARDWARE_MOTHERBOARD),96)
# Formbot Raptor
else ifeq ($(HARDWARE_MOTHERBOARD),97)
+# Formbot Raptor 2
+else ifeq ($(HARDWARE_MOTHERBOARD),98)
# bq ZUM Mega 3D
else ifeq ($(HARDWARE_MOTHERBOARD),503)
# MakeBoard Mini v2.1.2 is a control board sold by MicroMake
diff --git a/Marlin/src/core/boards.h b/Marlin/src/core/boards.h
index c1ad882d12..575bf26539 100644
--- a/Marlin/src/core/boards.h
+++ b/Marlin/src/core/boards.h
@@ -73,9 +73,11 @@
#define BOARD_AZTEEG_X3_PRO 68 // Azteeg X3 Pro
#define BOARD_ULTIMAIN_2 72 // Ultimainboard 2.x (Uses TEMP_SENSOR 20)
#define BOARD_RUMBA 80 // Rumba
+#define BOARD_RUMBA_RAISE3D 333 // Raise3D N series Rumba derivative
#define BOARD_FORMBOT_TREX2PLUS 95 // Formbot T-Rex 2 Plus
#define BOARD_FORMBOT_TREX3 96 // Formbot T-Rex 3
#define BOARD_FORMBOT_RAPTOR 97 // Formbot Raptor
+#define BOARD_FORMBOT_RAPTOR2 98 // Formbot Raptor 2
#define BOARD_BQ_ZUM_MEGA_3D 503 // bq ZUM Mega 3D
#define BOARD_MAKEBOARD_MINI 431 // MakeBoard Mini v2.1.2 is a control board sold by MicroMake
#define BOARD_TRIGORILLA_13 343 // TriGorilla Anycubic version 1.3 based on RAMPS EFB
diff --git a/Marlin/src/pins/pins.h b/Marlin/src/pins/pins.h
index 9160b135f9..da1b0cd435 100644
--- a/Marlin/src/pins/pins.h
+++ b/Marlin/src/pins/pins.h
@@ -132,12 +132,16 @@
#include "pins_ULTIMAIN_2.h" // ATmega2560 env:megaatmega2560
#elif MB(FORMBOT_RAPTOR)
#include "pins_FORMBOT_RAPTOR.h" // ATmega2560 env:megaatmega2560
+#elif MB(FORMBOT_RAPTOR2)
+ #include "pins_FORMBOT_RAPTOR2.h" // ATmega2560 env:megaatmega2560
#elif MB(FORMBOT_TREX2PLUS)
#include "pins_FORMBOT_TREX2PLUS.h" // ATmega2560 env:megaatmega2560
#elif MB(FORMBOT_TREX3)
#include "pins_FORMBOT_TREX3.h" // ATmega2560 env:megaatmega2560
#elif MB(RUMBA)
#include "pins_RUMBA.h" // ATmega2560 env:megaatmega2560
+#elif MB(RUMBA_RAISE3D)
+ #include "pins_RUMBA_RAISE3D.h" // ATmega2560 env:megaatmega2560
#elif MB(BQ_ZUM_MEGA_3D)
#include "pins_BQ_ZUM_MEGA_3D.h" // ATmega2560 env:megaatmega2560
#elif MB(MAKEBOARD_MINI)
diff --git a/Marlin/src/pins/pins_FORMBOT_RAPTOR.h b/Marlin/src/pins/pins_FORMBOT_RAPTOR.h
index 5ec11b0b95..7178b267d4 100644
--- a/Marlin/src/pins/pins_FORMBOT_RAPTOR.h
+++ b/Marlin/src/pins/pins_FORMBOT_RAPTOR.h
@@ -21,7 +21,7 @@
*/
/**
- * Formbot pin assignments
+ * Formbot Raptor pin assignments
*/
#ifndef __AVR_ATmega2560__
@@ -32,8 +32,12 @@
#error "Formbot supports up to 3 hotends / E-steppers. Comment this line to keep going."
#endif
-#define DEFAULT_MACHINE_NAME "Formbot Raptor"
-#define BOARD_NAME "Formbot Raptor"
+#ifndef DEFAULT_MACHINE_NAME
+ #define DEFAULT_MACHINE_NAME "Formbot Raptor"
+#endif
+#ifndef BOARD_NAME
+ #define BOARD_NAME "Formbot Raptor"
+#endif
//
// Servos
@@ -41,7 +45,6 @@
#define SERVO0_PIN 11
#define SERVO1_PIN 6
#define SERVO2_PIN 5
-#define SERVO3_PIN -1
//
// Limit Switches
@@ -142,7 +145,9 @@
#define HEATER_1_PIN 7
#define HEATER_BED_PIN 8
-#define FAN_PIN 9
+#ifndef FAN_PIN
+ #define FAN_PIN 9
+#endif
#if DISABLED(FILAMENT_RUNOUT_SENSOR)
#define FAN1_PIN 4
@@ -151,7 +156,9 @@
//
// Misc. Functions
//
-#define SDSS 53
+#ifndef SDSS
+ #define SDSS 53
+#endif
#define LED_PIN 13
#define LED4_PIN 5
diff --git a/Marlin/src/pins/pins_FORMBOT_RAPTOR2.h b/Marlin/src/pins/pins_FORMBOT_RAPTOR2.h
new file mode 100644
index 0000000000..5bd356428e
--- /dev/null
+++ b/Marlin/src/pins/pins_FORMBOT_RAPTOR2.h
@@ -0,0 +1,70 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ *
+ */
+
+/**
+ * Formbot Raptor 2 pin assignments
+ */
+
+#define DEFAULT_MACHINE_NAME "Formbot Raptor2"
+#define BOARD_NAME "Formbot Raptor2"
+
+#define FAN_PIN 6
+#define SDSS 5
+
+#include "pins_FORMBOT_RAPTOR.h"
+
+#ifndef FIL_RUNOUT_PIN
+ #define FIL_RUNOUT_PIN 22
+#endif
+
+#define GREEDY_PANEL ( ENABLED(PANEL_ONE) || ENABLED(VIKI2) \
+ || ENABLED(miniVIKI) || ENABLED(MINIPANEL) \
+ || ENABLED(REPRAPWORLD_KEYPAD) )
+
+//
+// M3/M4/M5 - Spindle/Laser Control
+//
+#if ENABLED(SPINDLE_LASER_ENABLE) && !PIN_EXISTS(SPINDLE_LASER_ENABLE)
+ #if !NUM_SERVOS // Try to use servo connector first
+ #define SPINDLE_LASER_ENABLE_PIN 6 // Pin should have a pullup/pulldown!
+ #define SPINDLE_LASER_PWM_PIN 4 // MUST BE HARDWARE PWM
+ #define SPINDLE_DIR_PIN 5
+ #elif !GREEDY_PANEL // Try to use AUX2
+ #define SPINDLE_LASER_ENABLE_PIN 40 // Pin should have a pullup/pulldown!
+ #define SPINDLE_LASER_PWM_PIN 44 // MUST BE HARDWARE PWM
+ #define SPINDLE_DIR_PIN 65
+ #endif
+#endif
+
+#if ENABLED(CASE_LIGHT_ENABLE) && !PIN_EXISTS(CASE_LIGHT)
+ #if NUM_SERVOS <= 1 // Try to use servo connector first
+ #define CASE_LIGHT_PIN 6 // MUST BE HARDWARE PWM
+ #elif !GREEDY_PANEL // Try to use AUX2
+ #define CASE_LIGHT_PIN 44 // MUST BE HARDWARE PWM
+ #endif
+#endif
+
+#undef GREEDY_PANEL
+
+#if ENABLED(CASE_LIGHT_ENABLE) && PIN_EXISTS(CASE_LIGHT) && (CASE_LIGHT_PIN == SPINDLE_LASER_ENABLE_PIN || CASE_LIGHT_PIN == SPINDLE_LASER_PWM_PIN)
+ #error "CASE_LIGHT_PIN conflicts with a Spindle / Laser pin."
+#endif
diff --git a/Marlin/src/pins/pins_RUMBA.h b/Marlin/src/pins/pins_RUMBA.h
index b2869f1205..e40f165779 100644
--- a/Marlin/src/pins/pins_RUMBA.h
+++ b/Marlin/src/pins/pins_RUMBA.h
@@ -32,13 +32,17 @@
#error "RUMBA supports up to 3 hotends / E-steppers. Comment out this line to continue."
#endif
-#define DEFAULT_MACHINE_NAME "Rumba"
-#define BOARD_NAME "Rumba"
+#ifndef DEFAULT_MACHINE_NAME
+ #define DEFAULT_MACHINE_NAME "Rumba"
+#endif
+#ifndef BOARD_NAME
+ #define BOARD_NAME "Rumba"
+#endif
//
// Servos
//
-#define SERVO0_PIN 5
+#define SERVO0_PIN 5
//
// Limit Switches
@@ -87,16 +91,20 @@
//
// Temperature Sensors
//
-#if TEMP_SENSOR_0 == -1
- #define TEMP_0_PIN 6 // Analog Input (connector *K1* on RUMBA thermocouple ADD ON is used)
-#else
- #define TEMP_0_PIN 15 // Analog Input (default connector for thermistor *T0* on rumba board is used)
+#ifndef TEMP_0_PIN
+ #if TEMP_SENSOR_0 == -1
+ #define TEMP_0_PIN 6 // Analog Input (connector *K1* on RUMBA thermocouple ADD ON is used)
+ #else
+ #define TEMP_0_PIN 15 // Analog Input (default connector for thermistor *T0* on rumba board is used)
+ #endif
#endif
-#if TEMP_SENSOR_1 == -1
- #define TEMP_1_PIN 5 // Analog Input (connector *K2* on RUMBA thermocouple ADD ON is used)
-#else
- #define TEMP_1_PIN 14 // Analog Input (default connector for thermistor *T1* on rumba board is used)
+#ifndef TEMP_1_PIN
+ #if TEMP_SENSOR_1 == -1
+ #define TEMP_1_PIN 5 // Analog Input (connector *K2* on RUMBA thermocouple ADD ON is used)
+ #else
+ #define TEMP_1_PIN 14 // Analog Input (default connector for thermistor *T1* on rumba board is used)
+ #endif
#endif
#if TEMP_SENSOR_2 == -1
@@ -105,7 +113,7 @@
#define TEMP_2_PIN 13 // Analog Input (default connector for thermistor *T2* on rumba board is used)
#endif
-// optional for extruder 4 or chamber:
+// Optional for extruder 4 or chamber:
//#define TEMP_X_PIN 12 // Analog Input (default connector for thermistor *T3* on rumba board is used)
//#define TEMP_CHAMBER_PIN 12 // Analog Input (default connector for thermistor *T3* on rumba board is used)
@@ -142,13 +150,13 @@
// M3/M4/M5 - Spindle/Laser Control
//
#ifndef SPINDLE_LASER_PWM_PIN
- #define SPINDLE_LASER_PWM_PIN 4 // MUST BE HARDWARE PWM. Pin 4 interrupts OC0* and OC1* always in use?
+ #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
+ #define SPINDLE_DIR_PIN 15
#endif
//
@@ -162,8 +170,8 @@
#define BTN_ENC 43
#if ENABLED(MKS_12864OLED) || ENABLED(MKS_12864OLED_SSD1306)
- #define LCD_PINS_DC 38 // Set as output on init
- #define LCD_PINS_RS 41 // Pull low for 1s to init
+ #define LCD_PINS_DC 38 // Set as output on init
+ #define LCD_PINS_RS 41 // Pull low for 1s to init
// DOGM SPI LCD Support
#define DOGLCD_CS 19
#define DOGLCD_MOSI 42
diff --git a/Marlin/src/pins/pins_RUMBA_RAISE3D.h b/Marlin/src/pins/pins_RUMBA_RAISE3D.h
new file mode 100644
index 0000000000..80d7c76ed7
--- /dev/null
+++ b/Marlin/src/pins/pins_RUMBA_RAISE3D.h
@@ -0,0 +1,30 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ *
+ */
+
+#define DEFAULT_MACHINE_NAME "Raise3D N Series"
+#define BOARD_NAME "Raise3D Rumba"
+
+// Raise3D uses thermocouples on the standard input pins
+#define TEMP_0_PIN 15 // Analog Input
+#define TEMP_1_PIN 14 // Analog Input
+
+#include "pins_RUMBA.h"