diff --git a/Marlin/src/core/boards.h b/Marlin/src/core/boards.h
index 4435452005b..5ee99b533f6 100644
--- a/Marlin/src/core/boards.h
+++ b/Marlin/src/core/boards.h
@@ -404,16 +404,17 @@
 #define BOARD_MKS_ROBIN2              4226  // MKS_ROBIN2 (STM32F407ZE)
 #define BOARD_MKS_ROBIN_PRO_V2        4227  // MKS Robin Pro V2 (STM32F407VE)
 #define BOARD_MKS_ROBIN_NANO_V3       4228  // MKS Robin Nano V3 (STM32F407VG)
-#define BOARD_MKS_MONSTER8            4229  // MKS Monster8 (STM32F407VG)
-#define BOARD_ANET_ET4                4230  // ANET ET4 V1.x (STM32F407VG)
-#define BOARD_ANET_ET4P               4231  // ANET ET4P V1.x (STM32F407VG)
-#define BOARD_FYSETC_CHEETAH_V20      4232  // FYSETC Cheetah V2.0
-#define BOARD_TH3D_EZBOARD_V2         4233  // TH3D EZBoard v2.0
-#define BOARD_INDEX_REV03             4234  // Index PnP Controller REV03 (STM32F407VE/VG)
-#define BOARD_MKS_ROBIN_NANO_V1_3_F4  4235  // MKS Robin Nano V1.3 and MKS Robin Nano-S V1.3 (STM32F407VE)
-#define BOARD_MKS_EAGLE               4236  // MKS Eagle (STM32F407VE)
-#define BOARD_ARTILLERY_RUBY          4237  // Artillery Ruby (STM32F401RC)
-#define BOARD_FYSETC_SPIDER_V2_2      4238  // FYSETC Spider V2.2 (STM32F446VE)
+#define BOARD_MKS_ROBIN_NANO_V3_1     4229  // MKS Robin Nano V3.1 (STM32F407VE)
+#define BOARD_MKS_MONSTER8            4230  // MKS Monster8 (STM32F407VG)
+#define BOARD_ANET_ET4                4231  // ANET ET4 V1.x (STM32F407VG)
+#define BOARD_ANET_ET4P               4232  // ANET ET4P V1.x (STM32F407VG)
+#define BOARD_FYSETC_CHEETAH_V20      4233  // FYSETC Cheetah V2.0
+#define BOARD_TH3D_EZBOARD_V2         4234  // TH3D EZBoard v2.0
+#define BOARD_INDEX_REV03             4235  // Index PnP Controller REV03 (STM32F407VE/VG)
+#define BOARD_MKS_ROBIN_NANO_V1_3_F4  4236  // MKS Robin Nano V1.3 and MKS Robin Nano-S V1.3 (STM32F407VE)
+#define BOARD_MKS_EAGLE               4237  // MKS Eagle (STM32F407VE)
+#define BOARD_ARTILLERY_RUBY          4238  // Artillery Ruby (STM32F401RC)
+#define BOARD_FYSETC_SPIDER_V2_2      4239  // FYSETC Spider V2.2 (STM32F446VE)
 
 //
 // ARM Cortex M7
diff --git a/Marlin/src/pins/pins.h b/Marlin/src/pins/pins.h
index 0afff4bd42a..88e7946edc4 100644
--- a/Marlin/src/pins/pins.h
+++ b/Marlin/src/pins/pins.h
@@ -669,6 +669,8 @@
   #include "stm32f4/pins_MKS_ROBIN_PRO_V2.h"    // STM32F4                                env:mks_robin_pro2
 #elif MB(MKS_ROBIN_NANO_V3)
   #include "stm32f4/pins_MKS_ROBIN_NANO_V3.h"   // STM32F4                                env:mks_robin_nano_v3 env:mks_robin_nano_v3_usb_flash_drive env:mks_robin_nano_v3_usb_flash_drive_msc
+#elif MB(MKS_ROBIN_NANO_V3_1)
+  #include "stm32f4/pins_MKS_ROBIN_NANO_V3.h"   // STM32F4                                env:mks_robin_nano_v3_1 env:mks_robin_nano_v3_1_usb_flash_drive env:mks_robin_nano_v3_1_usb_flash_drive_msc
 #elif MB(ANET_ET4)
   #include "stm32f4/pins_ANET_ET4.h"            // STM32F4                                env:Anet_ET4_OpenBLT
 #elif MB(ANET_ET4P)
diff --git a/buildroot/share/PlatformIO/boards/marlin_STM32F407VET6_CCM.json b/buildroot/share/PlatformIO/boards/marlin_STM32F407VET6_CCM.json
new file mode 100644
index 00000000000..faf32c200e4
--- /dev/null
+++ b/buildroot/share/PlatformIO/boards/marlin_STM32F407VET6_CCM.json
@@ -0,0 +1,56 @@
+{
+  "build": {
+    "core": "stm32",
+    "cpu": "cortex-m4",
+    "extra_flags": "-DSTM32F407xx -DSTM32F4",
+    "f_cpu": "168000000L",
+    "hwids": [
+      [
+        "0x1EAF",
+        "0x0003"
+      ],
+      [
+        "0x0483",
+        "0x3748"
+      ]
+    ],
+    "mcu": "stm32f407vet6",
+    "product_line": "STM32F407xx",
+    "variant": "Generic_F4x7Vx"
+  },
+  "debug": {
+    "default_tools": [
+      "stlink"
+    ],
+    "jlink_device": "STM32F407VE",
+    "openocd_extra_args": [
+      "-c",
+      "reset_config none"
+    ],
+    "openocd_target": "stm32f4x",
+    "svd_path": "STM32F40x.svd"
+  },
+  "frameworks": [
+    "arduino",
+    "cmsis",
+    "stm32cube",
+    "libopencm3"
+  ],
+  "name": "STM32F407VE (128k RAM, 64k CCM RAM, 512k Flash",
+  "upload": {
+    "disable_flushing": false,
+    "maximum_ram_size": 131072,
+    "maximum_size": 524288,
+    "protocol": "stlink",
+    "protocols": [
+      "stlink",
+      "dfu",
+      "jlink"
+    ],
+    "require_upload_port": true,
+    "use_1200bps_touch": false,
+    "wait_for_upload_port": false
+  },
+  "url": "https://www.st.com/content/st_com/en/products/microcontrollers/stm32-32-bit-arm-cortex-mcus/stm32-high-performance-mcus/stm32f4-series/stm32f407-417/stm32f407vg.html",
+  "vendor": "Generic"
+}
diff --git a/ini/stm32f4.ini b/ini/stm32f4.ini
index c7d70dd01de..9e6e2134273 100644
--- a/ini/stm32f4.ini
+++ b/ini/stm32f4.ini
@@ -440,6 +440,29 @@ build_flags       = ${env:mks_robin_nano_v3_usb_flash_drive.build_flags}
                     -DUSBD_USE_CDC_MSC
 build_unflags     = -DUSBD_USE_CDC
 
+#
+# MKS Robin Nano V3_1
+#
+[env:mks_robin_nano_v3_1]
+extends           = env:mks_robin_nano_v3
+board             = marlin_STM32F407VET6_CCM
+
+#
+# MKS Robin Nano V3.1 with USB Flash Drive Support
+# Currently, using a STM32duino fork, until USB Host get merged
+#
+[env:mks_robin_nano_v3_1_usb_flash_drive]
+extends           = env:mks_robin_nano_v3_usb_flash_drive
+board             = marlin_STM32F407VET6_CCM
+
+#
+# MKS Robin Nano V3.1 with USB Flash Drive Support and Shared Media
+# Currently, using a STM32duino fork, until USB Host and USB Device MSC get merged
+#
+[env:mks_robin_nano_v3_1_usb_flash_drive_msc]
+extends           = env:mks_robin_nano_v3_usb_flash_drive_msc
+board             = marlin_STM32F407VET6_CCM
+
 #
 # MKS Eagle
 # 5 TMC2209 uart mode on board