From 5e5c0d65f3bce3bf6f795901e1c6aeb1af78d4d2 Mon Sep 17 00:00:00 2001
From: Keith Bennett <13375512+thisiskeithb@users.noreply.github.com>
Date: Wed, 20 Jan 2021 23:26:12 -0800
Subject: [PATCH] Lerdge K/S/X support for Flash Drive (#20593)

---
 Marlin/src/pins/pins.h                  |  6 +++---
 Marlin/src/pins/stm32f4/pins_LERDGE_K.h |  3 +++
 Marlin/src/pins/stm32f4/pins_LERDGE_S.h |  3 +++
 Marlin/src/pins/stm32f4/pins_LERDGE_X.h |  3 +++
 platformio.ini                          | 24 ++++++++++++++++++++++++
 5 files changed, 36 insertions(+), 3 deletions(-)

diff --git a/Marlin/src/pins/pins.h b/Marlin/src/pins/pins.h
index c0995e88262..2a635df60b8 100644
--- a/Marlin/src/pins/pins.h
+++ b/Marlin/src/pins/pins.h
@@ -581,11 +581,11 @@
 #elif MB(BTT_BTT002_V1_0)
   #include "stm32f4/pins_BTT_BTT002_V1_0.h"     // STM32F4                                env:BIGTREE_BTT002
 #elif MB(LERDGE_K)
-  #include "stm32f4/pins_LERDGE_K.h"            // STM32F4                                env:LERDGEK
+  #include "stm32f4/pins_LERDGE_K.h"            // STM32F4                                env:LERDGEK env:LERDGEK_usb_flash_drive
 #elif MB(LERDGE_S)
-  #include "stm32f4/pins_LERDGE_S.h"            // STM32F4                                env:LERDGES
+  #include "stm32f4/pins_LERDGE_S.h"            // STM32F4                                env:LERDGES env:LERDGES_usb_flash_drive
 #elif MB(LERDGE_X)
-  #include "stm32f4/pins_LERDGE_X.h"            // STM32F4                                env:LERDGEX
+  #include "stm32f4/pins_LERDGE_X.h"            // STM32F4                                env:LERDGEX env:LERDGEX_usb_flash_drive
 #elif MB(VAKE403D)
   #include "stm32f4/pins_VAKE403D.h"            // STM32F4
 #elif MB(FYSETC_S6)
diff --git a/Marlin/src/pins/stm32f4/pins_LERDGE_K.h b/Marlin/src/pins/stm32f4/pins_LERDGE_K.h
index 18cbdeaaf58..bf6df035623 100644
--- a/Marlin/src/pins/stm32f4/pins_LERDGE_K.h
+++ b/Marlin/src/pins/stm32f4/pins_LERDGE_K.h
@@ -29,6 +29,9 @@
 
 #define I2C_EEPROM
 
+// USB Flash Drive support
+#define HAS_OTG_USB_HOST_SUPPORT
+
 //
 // Servos
 //
diff --git a/Marlin/src/pins/stm32f4/pins_LERDGE_S.h b/Marlin/src/pins/stm32f4/pins_LERDGE_S.h
index 486aabfd8ec..c6cfa98831e 100644
--- a/Marlin/src/pins/stm32f4/pins_LERDGE_S.h
+++ b/Marlin/src/pins/stm32f4/pins_LERDGE_S.h
@@ -32,6 +32,9 @@
 
 //#define I2C_EEPROM
 
+// USB Flash Drive support
+#define HAS_OTG_USB_HOST_SUPPORT
+
 //
 // Servos
 //
diff --git a/Marlin/src/pins/stm32f4/pins_LERDGE_X.h b/Marlin/src/pins/stm32f4/pins_LERDGE_X.h
index c73b9927ac3..606d932c573 100644
--- a/Marlin/src/pins/stm32f4/pins_LERDGE_X.h
+++ b/Marlin/src/pins/stm32f4/pins_LERDGE_X.h
@@ -32,6 +32,9 @@
 
 #define I2C_EEPROM
 
+// USB Flash Drive support
+#define HAS_OTG_USB_HOST_SUPPORT
+
 //
 // Servos
 //
diff --git a/platformio.ini b/platformio.ini
index a142fe891a5..6b1543fa53f 100644
--- a/platformio.ini
+++ b/platformio.ini
@@ -1373,6 +1373,14 @@ build_unflags       = ${common_stm32.build_unflags} -DUSBCON -DUSBD_USE_CDC -DUS
 extends              = lerdge_common
 board_build.firmware = Lerdge_X_firmware_force.bin
 
+#
+# Lerdge X with USB Flash Drive Support
+#
+[env:LERDGEX_usb_flash_drive]
+extends           = LERDGEX
+platform_packages = ${stm32_flash_drive.platform_packages}
+build_flags       = ${stm32_flash_drive.build_flags}
+
 #
 # Lerdge S
 #
@@ -1380,6 +1388,14 @@ board_build.firmware = Lerdge_X_firmware_force.bin
 extends              = lerdge_common
 board_build.firmware = Lerdge_firmware_force.bin
 
+#
+# Lerdge S with USB Flash Drive Support
+#
+[env:LERDGES_usb_flash_drive]
+extends           = LERDGES
+platform_packages = ${stm32_flash_drive.platform_packages}
+build_flags       = ${stm32_flash_drive.build_flags}
+
 #
 # Lerdge K
 #
@@ -1389,6 +1405,14 @@ board_build.firmware = Lerdge_K_firmware_force.bin
 build_flags          = ${lerdge_common.build_flags}
   -DLERDGEK
 
+#
+# Lerdge K with USB Flash Drive Support
+#
+[env:LERDGEK_usb_flash_drive]
+extends           = LERDGEK
+platform_packages = ${stm32_flash_drive.platform_packages}
+build_flags       = ${stm32_flash_drive.build_flags}
+
 #
 # RUMBA32
 #