diff --git a/buildroot/bin/pins_set b/buildroot/bin/pins_set
index 158c5224e6d..31b4480449a 100755
--- a/buildroot/bin/pins_set
+++ b/buildroot/bin/pins_set
@@ -3,9 +3,13 @@
 IFS='/' read -r -a PINPATH <<< "$1"
 DIR=${PINPATH[0]}
 NAM=${PINPATH[1]}
-PIN=$2
-VAL=$3
 
 SED=$(which gsed sed | head -n1)
-eval "${SED} -i '/^[[:blank:]]*\(\/\/\)*[[:blank:]]*\(#define \+${PIN}\b\).*$/{s//\2 ${VAL}/;h};\${x;/./{x;q0};x;q9}' Marlin/src/pins/$DIR/pins_${NAM}.h" ||
-(echo "ERROR: pins_set Can't find ${PIN}" >&2 && exit 9)
+
+shift
+while [[ $# > 1 ]]; do
+  PIN=$1 ; VAL=$2
+  eval "${SED} -i '/^[[:blank:]]*\(\/\/\)*[[:blank:]]*\(#define \+${PIN}\b\).*$/{s//\2 ${VAL}/;h};\${x;/./{x;q0};x;q9}' Marlin/src/pins/$DIR/pins_${NAM}.h" ||
+  (echo "ERROR: pins_set Can't find ${PIN}" >&2 && exit 9)
+  shift 2
+done