diff --git a/Marlin/src/HAL/HAL_STM32/HAL_spi_STM32.cpp b/Marlin/src/HAL/HAL_STM32/HAL_spi_STM32.cpp
index b2df7a16a7f8b8dec33ae250ecd82fca8714e85b..b2e1ebc17559e61a4801d0d1e5c60eb9e55f11c7 100644
--- a/Marlin/src/HAL/HAL_STM32/HAL_spi_STM32.cpp
+++ b/Marlin/src/HAL/HAL_STM32/HAL_spi_STM32.cpp
@@ -22,7 +22,6 @@
  */
 #if defined(ARDUINO_ARCH_STM32) && !defined(STM32GENERIC)
 
-
 #include "../../inc/MarlinConfig.h"
 
 #include <SPI.h>
@@ -73,16 +72,22 @@ void spiInit(uint8_t spiRate) {
   // Use datarates Marlin uses
   uint32_t clock;
   switch (spiRate) {
-  case SPI_FULL_SPEED:    clock = 20000000; break; // 13.9mhz=20000000  6.75mhz=10000000  3.38mhz=5000000  .833mhz=1000000
-  case SPI_HALF_SPEED:    clock =  5000000; break;
-  case SPI_QUARTER_SPEED: clock =  2500000; break;
-  case SPI_EIGHTH_SPEED:  clock =  1250000; break;
-  case SPI_SPEED_5:       clock =   625000; break;
-  case SPI_SPEED_6:       clock =   300000; break;
-  default:
-    clock = 4000000; // Default from the SPI library
+    case SPI_FULL_SPEED:    clock = 20000000; break; // 13.9mhz=20000000  6.75mhz=10000000  3.38mhz=5000000  .833mhz=1000000
+    case SPI_HALF_SPEED:    clock =  5000000; break;
+    case SPI_QUARTER_SPEED: clock =  2500000; break;
+    case SPI_EIGHTH_SPEED:  clock =  1250000; break;
+    case SPI_SPEED_5:       clock =   625000; break;
+    case SPI_SPEED_6:       clock =   300000; break;
+    default:
+      clock = 4000000; // Default from the SPI library
   }
   spiConfig = SPISettings(clock, MSBFIRST, SPI_MODE0);
+  #if defined(MISO_PIN) && defined(SDSS) && defined(MOSI_PIN) && defined(SCK_PIN)
+    SPI.setMISO(MISO_PIN);
+    SPI.setSSEL(SDSS);
+    SPI.setMOSI(MOSI_PIN);
+    SPI.setSCLK(SCK_PIN);
+  #endif
   SPI.begin();
 }
 
diff --git a/Marlin/src/core/boards.h b/Marlin/src/core/boards.h
index 7d02566247dc74b849f9fcc1383c01c73d1d7487..4891ac0f07bd74c6d8ce334467a23c6eb71559a2 100644
--- a/Marlin/src/core/boards.h
+++ b/Marlin/src/core/boards.h
@@ -290,6 +290,7 @@
 #define BOARD_BLACK_STM32F407ZE       4205  // BLACK_STM32F407ZE
 #define BOARD_STEVAL                  4206  // STEVAL-3DP001V1 3D PRINTER BOARD
 #define BOARD_BIGTREE_SKR_PRO_V1_1    4207  // BigTreeTech SKR Pro v1.1 (STM32F407ZG)
+#define BOARD_BIGTREE_BTT002_V1_0     4208  // BigTreeTech BTT002 v1.0 (STM32F407VE)
 
 //
 // ARM Cortex M7
diff --git a/Marlin/src/pins/pins.h b/Marlin/src/pins/pins.h
index b0ac6552865635e2cb400527eacbe6c216a42734..0cffa5988054a7f6e2e917a5a1258a61b4aa7ccb 100644
--- a/Marlin/src/pins/pins.h
+++ b/Marlin/src/pins/pins.h
@@ -502,6 +502,8 @@
   #include "stm32/pins_STEVAL.h"                // STM32F4                                env:STM32F4
 #elif MB(BIGTREE_SKR_PRO_V1_1)
   #include "stm32/pins_BIGTREE_SKR_PRO_V1.1.h"  // STM32F4                                env:BIGTREE_SKR_PRO
+#elif MB(BIGTREE_BTT002_V1_0)
+  #include "stm32/pins_BIGTREE_BTT002_V1.0.h"   // STM32F4                                env:BIGTREE_BTTOO2
 
 //
 // ARM Cortex M7
diff --git a/Marlin/src/pins/stm32/pins_BIGTREE_BTT002_V1.0.h b/Marlin/src/pins/stm32/pins_BIGTREE_BTT002_V1.0.h
new file mode 100644
index 0000000000000000000000000000000000000000..213ddd1a63a49fcce68b305017e0894f9b69c97d
--- /dev/null
+++ b/Marlin/src/pins/stm32/pins_BIGTREE_BTT002_V1.0.h
@@ -0,0 +1,254 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2019 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 <http://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#ifndef TARGET_STM32F4
+  #error "Oops! Select an STM32F4 board in 'Tools > Board.'"
+#elif HOTENDS > 3 || E_STEPPERS > 3
+  #error "BIGTREE SKR Pro V1.1 supports up to 3 hotends / E-steppers."
+#endif
+
+#define BOARD_NAME "BIGTREE Btt002 1.0"
+
+#define SRAM_EEPROM_EMULATION
+
+// Ignore temp readings during development.
+//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000
+
+//
+// Servos  
+//
+#define SERVO0_PIN         PC3
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN          PD3
+#define X_MAX_PIN          PD3
+#define Y_MIN_PIN          PD2
+#define Y_MAX_PIN          PD2
+#define Z_MIN_PIN          PD1
+#define Z_MAX_PIN          PD1
+
+//
+// Z Probe must be this pins  ##
+//
+#ifndef Z_MIN_PROBE_PIN
+  #define Z_MIN_PROBE_PIN  PD1
+#endif
+
+//
+// Steppers
+//
+#define X_STEP_PIN         PA9
+#define X_DIR_PIN          PA10
+#define X_ENABLE_PIN       PA8
+#ifndef X_CS_PIN
+  #define X_CS_PIN         PE2
+#endif
+
+#define Y_STEP_PIN         PC8
+#define Y_DIR_PIN          PC9
+#define Y_ENABLE_PIN       PC7
+ #ifndef Y_CS_PIN
+  #define Y_CS_PIN         PE3
+#endif
+
+#define Z_STEP_PIN         PD15
+#define Z_DIR_PIN          PC6
+#define Z_ENABLE_PIN       PD14
+#ifndef Z_CS_PIN
+  #define Z_CS_PIN         PE4
+#endif
+
+#define E0_STEP_PIN        PD12
+#define E0_DIR_PIN         PD13
+#define E0_ENABLE_PIN      PD11
+#ifndef E0_CS_PIN
+  #define E0_CS_PIN        PD7
+#endif
+
+/*
+//SKR_PRO_V1.1 
+#define E1_STEP_PIN        PD15
+#define E1_DIR_PIN         PE7
+#define E1_ENABLE_PIN      PA3
+#ifndef E1_CS_PIN
+  #define E1_CS_PIN        PG15
+#endif
+
+#define E2_STEP_PIN        PD13
+#define E2_DIR_PIN         PG9
+#define E2_ENABLE_PIN      PF0
+#ifndef E2_CS_PIN
+  #define E2_CS_PIN        PG12
+#endif
+*/
+//
+// Software SPI pins for TMC2130 stepper drivers
+//
+#if ENABLED(TMC_USE_SW_SPI)
+  #ifndef TMC_SW_MOSI
+    #define TMC_SW_MOSI    PB15
+  #endif
+  #ifndef TMC_SW_MISO
+    #define TMC_SW_MISO    PB14
+  #endif
+  #ifndef TMC_SW_SCK
+    #define TMC_SW_SCK     PB13
+  #endif
+#endif
+
+#if HAS_TMC220x
+  /**
+   * TMC2208/TMC2209 stepper drivers
+   *
+   * Hardware serial communication ports.
+   * If undefined software serial is used according to the pins below
+   */
+  //#define X_HARDWARE_SERIAL Serial1
+  //#define X2_HARDWARE_SERIAL Serial1
+  //#define Y_HARDWARE_SERIAL  Serial1
+  //#define Y2_HARDWARE_SERIAL Serial1
+  //#define Z_HARDWARE_SERIAL  Serial1
+  //#define Z2_HARDWARE_SERIAL Serial1
+  //#define E0_HARDWARE_SERIAL Serial1
+  //#define E1_HARDWARE_SERIAL Serial1
+  //#define E2_HARDWARE_SERIAL Serial1
+  //#define E3_HARDWARE_SERIAL Serial1
+  //#define E4_HARDWARE_SERIAL Serial1
+
+  //
+  // Software serial  ##
+  //
+  #define X_SERIAL_TX_PIN  PE2
+  #define X_SERIAL_RX_PIN  PE2
+
+  #define Y_SERIAL_TX_PIN  PE3
+  #define Y_SERIAL_RX_PIN  PE3
+
+  #define Z_SERIAL_TX_PIN  PE4
+  #define Z_SERIAL_RX_PIN  PE4
+
+  #define E0_SERIAL_TX_PIN PD7
+  #define E0_SERIAL_RX_PIN PD7
+
+  //#define E1_SERIAL_TX_PIN PD1
+  //#define E1_SERIAL_RX_PIN PD1
+
+  //#define E2_SERIAL_TX_PIN PD6
+  //#define E2_SERIAL_RX_PIN PD6
+#endif
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN         PA2   // T1 <-> E0
+#define TEMP_1_PIN         PA0   // T2 <-> E1
+//#define TEMP_2_PIN         PC2   // T3 <-> E2  SKR_PRO
+#define TEMP_BED_PIN       PA1   // T0 <-> Bed
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN       PE6  // Heater0
+//#define HEATER_1_PIN       PD14  // Heater1
+//#define HEATER_2_PIN       PB0   // Heater1
+#define HEATER_BED_PIN     PE5   // Hotbed
+#define FAN_PIN            PB9   // Fan0
+#define FAN1_PIN           PB8   // Fan1
+//#define FAN2_PIN           PE6   // Fan2
+
+// HAL SPI pins group
+#define SCK_PIN            PA5   // SPI SCLK
+#define MYSSEL             PA4   // SPI SSEL
+#define MISO_PIN           PA6   // SPI MISO
+#define MOSI_PIN           PA7   // SPI MOSI
+
+//
+// Misc. Functions
+//
+#define SDSS               PA4
+
+/**
+ * -------------------------------------SKR_MK3-----------------------------------------------
+ *               _____                                             _____                      |
+ *          PA3 | · · | GND                                    5V | · · | GND                 |
+ *       NRESET | · · | PC4(SD_DET)                 (LCD_D7) PE13 | · · | PE12  (LCD_D6)      | 
+ *   (MOSI)PA7  | · · | PB0(BTN_EN2)                (LCD_D5) PE11 | · · | PE10  (LCD_D4)      |
+ *  (SD_SS)PA4  | · · | PC5(BTN_EN1)                (LCD_RS) PE8  | · · | PE9   (LCD_EN)      |
+ *    (SCK)PA5  | · · | PA6(MISO)                  (BTN_ENC) PB1  | · · | PE7   (BEEPER)      |
+ *                ̄ ̄                                                ̄ ̄                       |
+ *               EXP2                                              EXP1                       |
+ * ---------------------------------------------------------------------------------------------
+ */
+//
+// LCDs and Controllers
+//
+#if HAS_SPI_LCD
+  #define BEEPER_PIN       PE7
+  #define BTN_ENC          PB1
+
+  #if ENABLED(CR10_STOCKDISPLAY)
+    #define LCD_PINS_RS    PE12
+
+    #define BTN_EN1        PE9
+    #define BTN_EN2        PE10
+
+    #define LCD_PINS_ENABLE PE13
+    #define LCD_PINS_D4    PE11
+
+  #else
+
+    #define LCD_PINS_RS    PE8
+
+    #define BTN_EN1        PC5
+    #define BTN_EN2        PB0
+    #define SD_DETECT_PIN  PC4
+
+    #define LCD_SDSS       PA4
+
+    #define LCD_PINS_ENABLE PE9 
+    #define LCD_PINS_D4    PE10
+
+    #if ENABLED(ULTIPANEL)
+      #define LCD_PINS_D5  PE11
+      #define LCD_PINS_D6  PE12
+      #define LCD_PINS_D7  PE13
+    #endif
+
+  #endif
+
+  // Alter timing for graphical display
+  #if HAS_GRAPHICAL_LCD
+    #ifndef ST7920_DELAY_1
+      #define ST7920_DELAY_1 DELAY_NS(96)
+    #endif
+    #ifndef ST7920_DELAY_2
+      #define ST7920_DELAY_2 DELAY_NS(48)
+    #endif
+    #ifndef ST7920_DELAY_3
+      #define ST7920_DELAY_3 DELAY_NS(600)
+    #endif
+  #endif
+
+#endif // HAS_SPI_LCD
diff --git a/buildroot/share/PlatformIO/boards/BigTree_Btt002.json b/buildroot/share/PlatformIO/boards/BigTree_Btt002.json
new file mode 100644
index 0000000000000000000000000000000000000000..95de3a6bcb9a502e7da033461e3aafc512b9217a
--- /dev/null
+++ b/buildroot/share/PlatformIO/boards/BigTree_Btt002.json
@@ -0,0 +1,65 @@
+{
+  "build": {
+    "core": "stm32",
+    "cpu": "cortex-m4",
+    "extra_flags": "-DSTM32F407xx",
+    "f_cpu": "168000000L",
+    "hwids": [
+      [
+        "0x1EAF",
+        "0x0003"
+      ],
+      [
+        "0x0483",
+        "0x3748"
+      ]
+    ],
+    "ldscript": "stm32f407xg.ld",
+    "mcu": "stm32f407vet6",
+    "variant": "BIGTREE_GENERIC_STM32F407_5X"
+  },
+  "debug": {
+    "jlink_device": "STM32F407VE",
+    "openocd_target": "stm32f4x",
+    "svd_path": "STM32F40x.svd",
+    "tools": {
+      "stlink": {
+        "server": {
+          "arguments": [
+            "-f",
+            "scripts/interface/stlink.cfg",
+            "-c",
+            "transport select hla_swd",
+            "-f",
+            "scripts/target/stm32f4x.cfg",
+            "-c",
+            "reset_config none"
+          ],
+          "executable": "bin/openocd",
+          "package": "tool-openocd"
+        }
+      }
+    }
+  },
+  "frameworks": [
+    "arduino",
+    "stm32cube"
+  ],
+  "name": "STM32F407VE (64k RAM. 512k Flash)",
+  "upload": {
+    "disable_flushing": false,
+    "maximum_ram_size": 65536,
+    "maximum_size": 524288,
+    "protocol": "stlink",
+    "protocols": [
+      "stlink",
+      "dfu",
+      "jlink"
+    ],
+    "require_upload_port": true,
+    "use_1200bps_touch": false,
+    "wait_for_upload_port": false
+  },
+  "url": "http://www.st.com/en/microcontrollers/stm32f407zg.html",
+  "vendor": "Generic"
+}
diff --git a/platformio.ini b/platformio.ini
index e04d369393d8f5952764de887f11f51311850571..c4d20e9c986fed15b800cbbbc24169c265df7ae2 100644
--- a/platformio.ini
+++ b/platformio.ini
@@ -477,6 +477,26 @@ lib_ignore = Adafruit NeoPixel, SailfishLCD, SailfishRGB_LED, SlowSoftI2CMaster
 src_filter = ${common.default_src_filter} +<src/HAL/HAL_STM32>
 monitor_speed = 250000
 
+#
+# BIGTREE_SKR_BTT002 (STM32F407VET6 ARM Cortex-M4)
+#
+[env:BIGTREE_BTT002]
+platform = ststm32@5.4.3
+framework = arduino
+board = BigTree_BTT002
+extra_scripts = pre:buildroot/share/PlatformIO/scripts/generic_create_variant.py
+build_flags = ${common.build_flags}
+  -DUSBCON -DUSBD_USE_CDC -DUSBD_VID=0x0483 -DUSB_PRODUCT=\"STM32F407VE\"
+  -DTARGET_STM32F4 -DSTM32F407_5VX -DVECT_TAB_OFFSET=0x8000
+  -DHAVE_HWSERIAL2
+  -DHAVE_HWSERIAL3
+  -DPIN_SERIAL2_RX=PD_6
+  -DPIN_SERIAL2_TX=PD_5
+lib_deps = ${common.lib_deps}
+lib_ignore = Adafruit NeoPixel, SailfishLCD, SailfishRGB_LED, SlowSoftI2CMaster
+src_filter = ${common.default_src_filter} +<src/HAL/HAL_STM32>
+monitor_speed = 250000
+
 #
 # Teensy 3.1 / 3.2 (ARM Cortex-M4)
 #
@@ -516,7 +536,7 @@ build_flags = !python Marlin/src/HAL/HAL_STM32F1/STM32F1_flag_script.py -DMCU_ST
   -DDEBUG_LEVEL=0
 src_filter  = ${common.default_src_filter} +<src/HAL/HAL_STM32F1>
 #-<frameworks>
-lib_ignore  = Adafruit NeoPixel, LiquidCrystal, LiquidTWI2, TMCStepper, TMC26XStepper, U8glib-HAL
+lib_ignore  = Adafruit NeoPixel, LiquidCrystal, LiquidTWI2, TMCStepper, U8glib-HAL
 
 #
 # Espressif ESP32
@@ -531,7 +551,7 @@ upload_port = /dev/ttyUSB0
 lib_deps =
   AsyncTCP=https://github.com/me-no-dev/AsyncTCP/archive/master.zip
   ESPAsyncWebServer=https://github.com/me-no-dev/ESPAsyncWebServer/archive/master.zip
-lib_ignore  = TMC26XStepper, LiquidCrystal, LiquidTWI2, SailfishLCD, SailfishRGB_LED
+lib_ignore  = LiquidCrystal, LiquidTWI2, SailfishLCD, SailfishRGB_LED
 src_filter  = ${common.default_src_filter} +<src/HAL/HAL_ESP32>
 
 #