diff --git a/Marlin/Version.h b/Marlin/Version.h
index 802a4ca870..5de52e2e12 100644
--- a/Marlin/Version.h
+++ b/Marlin/Version.h
@@ -28,7 +28,7 @@
 /**
  * Marlin release version identifier
  */
-//#define SHORT_BUILD_VERSION "2.1.1.1"
+//#define SHORT_BUILD_VERSION "2.1.1.2"
 
 /**
  * Verbose version identifier which should contain a reference to the location
@@ -41,7 +41,7 @@
  * here we define this default string as the date where the latest release
  * version was tagged.
  */
-//#define STRING_DISTRIBUTION_DATE "2023-07-20"
+//#define STRING_DISTRIBUTION_DATE "2023-12-08"
 
 /**
  * Defines a generic printer name to be output to the LCD after booting Marlin.
diff --git a/Marlin/src/inc/Version.h b/Marlin/src/inc/Version.h
index c70ad24093..ff5b017c62 100644
--- a/Marlin/src/inc/Version.h
+++ b/Marlin/src/inc/Version.h
@@ -25,7 +25,7 @@
  * Release version. Leave the Marlin version or apply a custom scheme.
  */
 #ifndef SHORT_BUILD_VERSION
-  #define SHORT_BUILD_VERSION "2.1.1.1"
+  #define SHORT_BUILD_VERSION "2.1.1.2"
 #endif
 
 /**
@@ -42,7 +42,7 @@
  * version was tagged.
  */
 #ifndef STRING_DISTRIBUTION_DATE
-  #define STRING_DISTRIBUTION_DATE "2023-07-20"
+  #define STRING_DISTRIBUTION_DATE "2023-12-08"
 #endif
 
 /**
diff --git a/Marlin/src/pins/pins.h b/Marlin/src/pins/pins.h
index 37e222d004..d473fefcd9 100644
--- a/Marlin/src/pins/pins.h
+++ b/Marlin/src/pins/pins.h
@@ -700,7 +700,7 @@
 #elif MB(ARTILLERY_RUBY)
   #include "stm32f4/pins_ARTILLERY_RUBY.h"      // STM32F4                                env:Artillery_Ruby
 #elif MB(CREALITY_V24S1_301F4)
-  #include "stm32f4/pins_CREALITY_V24S1_301F4.h" // STM32F4                               env:STM32F401RC_creality env:STM32F401RC_creality_jlink env:STM32F401RC_creality_stlink
+  #include "stm32f4/pins_CREALITY_V24S1_301F4.h" // STM32F4                               env:STM32F401RC_creality env:STM32F401RC_creality_nobootloader env:STM32F401RC_creality_jlink env:STM32F401RC_creality_stlink
 
 //
 // ARM Cortex M7
diff --git a/config/README.md b/config/README.md
index 8a35573b14..b20c6be2ab 100644
--- a/config/README.md
+++ b/config/README.md
@@ -1,3 +1,3 @@
 # Where have all the configurations gone?
 
-## https://github.com/MarlinFirmware/Configurations/archive/release-2.1.zip
+## https://github.com/MarlinFirmware/Configurations/archive/release-2.1.1.zip
diff --git a/ini/features.ini b/ini/features.ini
index 768cd4dcae..5960741bfe 100644
--- a/ini/features.ini
+++ b/ini/features.ini
@@ -11,21 +11,21 @@
 
 [features]
 YHCB2004                               = red-scorp/LiquidCrystal_AIP31068@^1.0.4, red-scorp/SoftSPIB@^1.1.1
-HAS_TFT_LVGL_UI                        = lvgl=https://github.com/makerbase-mks/LVGL-6.1.1-MKS/archive/master.zip
+HAS_TFT_LVGL_UI                        = lvgl=https://github.com/makerbase-mks/LVGL-6.1.1-MKS/archive/a3ebe98bc6.zip
                                          build_src_filter=+<src/lcd/extui/mks_ui>
                                          extra_scripts=download_mks_assets.py
 MARLIN_TEST_BUILD                      = build_src_filter=+<src/tests>
 POSTMORTEM_DEBUGGING                   = build_src_filter=+<src/HAL/shared/cpu_exception> +<src/HAL/shared/backtrace>
                                          build_flags=-funwind-tables
-MKS_WIFI_MODULE                        = QRCode=https://github.com/makerbase-mks/QRCode/archive/master.zip
+MKS_WIFI_MODULE                        = QRCode=https://github.com/makerbase-mks/QRCode/archive/261c5a696a.zip
 HAS_TRINAMIC_CONFIG                    = TMCStepper@~0.7.3
                                          build_src_filter=+<src/module/stepper/trinamic.cpp> +<src/gcode/feature/trinamic/M122.cpp> +<src/gcode/feature/trinamic/M906.cpp> +<src/gcode/feature/trinamic/M911-M914.cpp> +<src/gcode/feature/trinamic/M919.cpp>
 HAS_T(RINAMIC_CONFIG|MC_SPI)           = build_src_filter=+<src/feature/tmc_util.cpp>
 HAS_STEALTHCHOP                        = build_src_filter=+<src/gcode/feature/trinamic/M569.cpp>
-SR_LCD_3W_NL                           = SailfishLCD=https://github.com/mikeshub/SailfishLCD/archive/master.zip
+SR_LCD_3W_NL                           = SailfishLCD=https://github.com/mikeshub/SailfishLCD/archive/6f53c19a8a.zip
 HAS_MOTOR_CURRENT_I2C                  = SlowSoftI2CMaster
                                          build_src_filter=+<src/feature/digipot>
-HAS_TMC26X                             = TMC26XStepper=https://github.com/MarlinFirmware/TMC26XStepper/archive/master.zip
+HAS_TMC26X                             = TMC26XStepper=https://github.com/MarlinFirmware/TMC26XStepper/archive/a7d7c92a13.zip
                                          build_src_filter=+<src/module/stepper/TMC26X.cpp>
 LIB_INTERNAL_MAX31865                  = build_src_filter=+<src/libs/MAX31865.cpp>
 NEOPIXEL_LED                           = adafruit/Adafruit NeoPixel@~1.8.0
@@ -43,7 +43,7 @@ HAS_(FSMC|SPI|LTDC)_TFT                = build_src_filter=+<src/HAL/STM32/tft> +
 HAS_FSMC_TFT                           = build_src_filter=+<src/HAL/STM32/tft/tft_fsmc.cpp> +<src/HAL/STM32F1/tft/tft_fsmc.cpp>
 HAS_SPI_TFT                            = build_src_filter=+<src/HAL/STM32/tft/tft_spi.cpp> +<src/HAL/STM32F1/tft/tft_spi.cpp>
 I2C_EEPROM                             = build_src_filter=+<src/HAL/shared/eeprom_if_i2c.cpp>
-SOFT_I2C_EEPROM                        = SlowSoftI2CMaster, SlowSoftWire=https://github.com/felias-fogg/SlowSoftWire/archive/master.zip
+SOFT_I2C_EEPROM                        = SlowSoftI2CMaster, SlowSoftWire=https://github.com/felias-fogg/SlowSoftWire/archive/f34d777f39.zip
 SPI_EEPROM                             = build_src_filter=+<src/HAL/shared/eeprom_if_spi.cpp>
 HAS_DWIN_E3V2|IS_DWIN_MARLINUI         = build_src_filter=+<src/lcd/e3v2/common>
 DWIN_CREALITY_LCD                      = build_src_filter=+<src/lcd/e3v2/creality>
@@ -238,7 +238,7 @@ HAS_SERVOS                             = build_src_filter=+<src/module/servo.cpp
 MORGAN_SCARA                           = build_src_filter=+<src/gcode/scara>
 HAS_MICROSTEPS                         = build_src_filter=+<src/gcode/control/M350_M351.cpp>
 (ESP3D_)?WIFISUPPORT                   = AsyncTCP, ESP Async WebServer
-                                         ESP3DLib=https://github.com/luc-github/ESP3DLib/archive/master.zip
+                                         ESP3DLib=https://github.com/luc-github/ESP3DLib/archive/dc0f3d96c6.zip
                                          arduinoWebSockets=links2004/WebSockets@2.3.4
                                          luc-github/ESP32SSDP@1.1.1
                                          lib_ignore=ESPAsyncTCP
diff --git a/ini/native.ini b/ini/native.ini
index 1905559fd0..ceee6c85a9 100644
--- a/ini/native.ini
+++ b/ini/native.ini
@@ -41,9 +41,9 @@ debug_build_flags = -fstack-protector-strong -g -g3 -ggdb
 lib_compat_mode   = off
 build_src_filter  = ${common.default_src_filter} +<src/HAL/NATIVE_SIM>
 lib_deps          = ${common.lib_deps}
-  MarlinSimUI=https://github.com/p3p/MarlinSimUI/archive/refs/heads/bugfix-2.0.x.zip
-  Adafruit NeoPixel=https://github.com/p3p/Adafruit_NeoPixel/archive/marlin_sim_native.zip
-  LiquidCrystal=https://github.com/p3p/LiquidCrystal/archive/master.zip
+  MarlinSimUI=https://github.com/p3p/MarlinSimUI/archive/8791f3ff43.zip
+  Adafruit NeoPixel=https://github.com/p3p/Adafruit_NeoPixel/archive/c6b319f447.zip
+  LiquidCrystal=https://github.com/p3p/LiquidCrystal/archive/322fb5fc23.zip
 extra_scripts = ${common.extra_scripts}
   pre:buildroot/share/PlatformIO/scripts/simulator.py
 
@@ -69,8 +69,9 @@ build_flags = ${simulator_linux.build_flags} ${simulator_linux.release_flags}
 #  sudo port install gcc11 glm libsdl2 libsdl2_net
 #
 #  cd /opt/local/bin
-#  sudo rm -f gcc g++ cc
-#  sudo ln -s gcc-mp-11 gcc ; sudo ln -s g++-mp-11 g++ ; sudo ln -s g++ cc
+#  sudo rm gcc g++ cc ld
+#  sudo ln -s gcc-mp-12 gcc ; sudo ln -s g++-mp-12 g++ ; sudo ln -s g++ cc
+#  sudo ln -s ld-classic ld
 #  cd -
 #  rehash
 #
diff --git a/ini/stm32-common.ini b/ini/stm32-common.ini
index c8f28cd0e3..a0d56559c5 100644
--- a/ini/stm32-common.ini
+++ b/ini/stm32-common.ini
@@ -35,7 +35,8 @@ extra_scripts = ${common_stm32.extra_scripts}
 # USB Flash Drive mix-ins for STM32
 #
 [stm_flash_drive]
-platform_packages = framework-arduinoststm32@https://github.com/rhapsodyv/Arduino_Core_STM32/archive/usb-host-msc-cdc-msc-3.zip
+# Arduino_Core_STM32 uses usb-host-msc-cdc-msc-3 branch
+platform_packages = framework-arduinoststm32@https://github.com/rhapsodyv/Arduino_Core_STM32/archive/39f37d6d6a.zip
 build_flags       = ${common_stm32.build_flags}
                     -DHAL_PCD_MODULE_ENABLED -DHAL_HCD_MODULE_ENABLED
                     -DUSBHOST -DUSBH_IRQ_PRIO=3 -DUSBH_IRQ_SUBPRIO=4
diff --git a/ini/stm32f4.ini b/ini/stm32f4.ini
index 5e0d4a13ec..761d157a35 100644
--- a/ini/stm32f4.ini
+++ b/ini/stm32f4.ini
@@ -610,7 +610,7 @@ extra_scripts     = ${common_stm32.extra_scripts}
 #
 # Ender-3 S1 STM32F401RC_creality
 #
-[env:STM32F401RC_creality]
+[STM32F401RC_creality_base]
 extends                     = stm32_variant
 board                       = genericSTM32F401RC
 board_build.variant         = MARLIN_CREALITY_STM32F401RC
@@ -624,6 +624,18 @@ extra_scripts               = ${stm32_variant.extra_scripts}
                               pre:buildroot/share/PlatformIO/scripts/random-bin.py
 monitor_speed               = 115200
 
+[env:STM32F401RC_creality]
+extends                     = STM32F401RC_creality_base
+board_build.offset          = 0x10000
+board_upload.offset_address = 0x08010000
+
+[env:STM32F401RC_creality_nobootloader]
+extends                     = STM32F401RC_creality_base
+board_build.offset          = 0x0000
+board_upload.offset_address = 0x08000000
+debug_tool                  = stlink
+upload_protocol             = stlink
+
 [env:STM32F401RC_creality_jlink]
 extends                     = env:STM32F401RC_creality
 debug_tool                  = jlink
diff --git a/ini/stm32g0.ini b/ini/stm32g0.ini
index c80c8dd9e2..8b5fb91102 100644
--- a/ini/stm32g0.ini
+++ b/ini/stm32g0.ini
@@ -25,7 +25,8 @@
 [env:STM32G0B1RE_btt]
 extends                     = stm32_variant
 platform                    = ststm32@~14.1.0
-platform_packages           = framework-arduinoststm32@https://github.com/stm32duino/Arduino_Core_STM32/archive/main.zip
+platform_packages           = framework-arduinoststm32@~4.20600.231001
+                              toolchain-gccarmnoneeabi@1.100301.220327
 board                       = marlin_STM32G0B1RE
 board_build.offset          = 0x2000
 board_upload.offset_address = 0x08002000
diff --git a/ini/stm32h7.ini b/ini/stm32h7.ini
index fb898d1b72..58a56419e5 100644
--- a/ini/stm32h7.ini
+++ b/ini/stm32h7.ini
@@ -24,7 +24,8 @@
 #
 [env:BTT_SKR_SE_BX]
 extends            = stm32_variant
-platform_packages  = framework-arduinoststm32@https://github.com/thisiskeithb/Arduino_Core_STM32/archive/biqu-bx-workaround.zip
+# framework-arduinoststm32 uses biqu-bx-workaround branch
+platform_packages  = framework-arduinoststm32@https://github.com/thisiskeithb/Arduino_Core_STM32/archive/8b3522051a.zip
 board              = marlin_BTT_SKR_SE_BX
 board_build.offset = 0x20000
 build_flags        = ${stm32_variant.build_flags} ${stm_flash_drive.build_flags}
@@ -45,17 +46,17 @@ debug_tool         = cmsis-dap
 [env:STM32H743Vx_btt]
 extends                     = stm32_variant
 platform                    = ststm32@~14.1.0
-platform_packages           = framework-arduinoststm32@https://github.com/stm32duino/Arduino_Core_STM32/archive/main.zip
+platform_packages           = framework-arduinoststm32@~4.20600.231001
 board                       = marlin_STM32H743Vx
 board_build.offset          = 0x20000
 board_upload.offset_address = 0x08020000
 build_flags                 = ${stm32_variant.build_flags}
-                            -DPIN_SERIAL1_RX=PA_10 -DPIN_SERIAL1_TX=PA_9
-                            -DPIN_SERIAL3_RX=PD_9 -DPIN_SERIAL3_TX=PD_8
-                            -DPIN_SERIAL4_RX=PA_1 -DPIN_SERIAL4_TX=PA_0
-                            -DSERIAL_RX_BUFFER_SIZE=1024 -DSERIAL_TX_BUFFER_SIZE=1024
-                            -DTIMER_SERVO=TIM5 -DTIMER_TONE=TIM2
-                            -DSTEP_TIMER_IRQ_PRIO=0
-                            -DD_CACHE_DISABLED
+                              -DPIN_SERIAL1_RX=PA_10 -DPIN_SERIAL1_TX=PA_9
+                              -DPIN_SERIAL3_RX=PD_9 -DPIN_SERIAL3_TX=PD_8
+                              -DPIN_SERIAL4_RX=PA_1 -DPIN_SERIAL4_TX=PA_0
+                              -DSERIAL_RX_BUFFER_SIZE=1024 -DSERIAL_TX_BUFFER_SIZE=1024
+                              -DTIMER_SERVO=TIM5 -DTIMER_TONE=TIM2
+                              -DSTEP_TIMER_IRQ_PRIO=0
+                              -DD_CACHE_DISABLED
 upload_protocol             = cmsis-dap
 debug_tool                  = cmsis-dap