diff --git a/.github/workflows/test-builds.yml b/.github/workflows/test-builds.yml
index f08032c2dee4a1231ff1e37492b482d1ee104718..6a75cd4931432d57102e2a6210fef600676061c1 100644
--- a/.github/workflows/test-builds.yml
+++ b/.github/workflows/test-builds.yml
@@ -59,6 +59,7 @@ jobs:
         - FYSETC_S6
         - malyan_M300
         - mks_robin_lite
+        - mks_robin_pro
 
         # Put lengthy tests last
 
diff --git a/buildroot/share/tests/mks_robin_pro-tests b/buildroot/share/tests/mks_robin_pro-tests
new file mode 100644
index 0000000000000000000000000000000000000000..4b437e0e0320dbf21e07ea4d5f6155a471655d06
--- /dev/null
+++ b/buildroot/share/tests/mks_robin_pro-tests
@@ -0,0 +1,16 @@
+#!/usr/bin/env bash
+#
+# Build tests for MKS Robin Pro
+#
+
+# exit on first failure
+set -e
+
+use_example_configs Mks/Robin_Pro
+opt_set SDCARD_CONNECTION LCD
+opt_set X_DRIVER_TYPE TMC2209
+opt_set Y_DRIVER_TYPE TMC2130
+exec_test $1 $2 "MKS Robin Pro with TMC Drivers "
+
+# cleanup
+restore_configs
diff --git a/platformio.ini b/platformio.ini
index a2c587ebc9c96defb54fd8091d15a405b29a57de..1dbb9a6817d541cbddeab97ebe7089e0c084bbb1 100644
--- a/platformio.ini
+++ b/platformio.ini
@@ -558,11 +558,12 @@ platform      = ststm32
 board         = genericSTM32F103ZE
 extra_scripts = buildroot/share/PlatformIO/scripts/mks_robin_pro.py
 build_flags   = !python Marlin/src/HAL/STM32F1/build_flags.py
-  ${common.build_flags} -std=gnu++14 -DSTM32_XL_DENSITY
+  ${common.build_flags} -std=gnu++14 -DHAVE_SW_SERIAL -DSS_TIMER=4 -DSTM32_XL_DENSITY
 build_unflags = -std=gnu++11
 src_filter    = ${common.default_src_filter} +<src/HAL/STM32F1>
 lib_deps      = ${common.lib_deps}
-lib_ignore    = Adafruit NeoPixel, SPI, TMCStepper
+  SoftwareSerialM=https://github.com/FYSETC/SoftwareSerialM/archive/master.zip
+lib_ignore    = Adafruit NeoPixel, SPI
 
 #
 # MKS Robin E3D (STM32F103RCT6) and