diff --git a/Marlin/Marlin.h b/Marlin/Marlin.h
index 7ed7d37cbca..4285318852f 100644
--- a/Marlin/Marlin.h
+++ b/Marlin/Marlin.h
@@ -315,7 +315,7 @@ float code_value_temp_diff();
   extern float delta_diagonal_rod_trim_tower_1;
   extern float delta_diagonal_rod_trim_tower_2;
   extern float delta_diagonal_rod_trim_tower_3;
-  void inverse_kinematics(float cartesian[3]);
+  void inverse_kinematics(const float cartesian[3]);
   void recalc_delta_settings(float radius, float diagonal_rod);
   #if ENABLED(AUTO_BED_LEVELING_FEATURE)
     extern int delta_grid_spacing[2];
@@ -323,7 +323,7 @@ float code_value_temp_diff();
   #endif
 #elif ENABLED(SCARA)
   extern float axis_scaling[3];  // Build size scaling
-  void inverse_kinematics(float cartesian[3]);
+  void inverse_kinematics(const float cartesian[3]);
   void forward_kinematics_SCARA(float f_scara[3]);
 #endif
 
diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp
index 3677ad2d891..f36c175b479 100644
--- a/Marlin/Marlin_main.cpp
+++ b/Marlin/Marlin_main.cpp
@@ -7737,7 +7737,7 @@ void clamp_to_software_endstops(float target[3]) {
     delta_diagonal_rod_2_tower_3 = sq(diagonal_rod + delta_diagonal_rod_trim_tower_3);
   }
 
-  void inverse_kinematics(float cartesian[3]) {
+  void inverse_kinematics(const float in_cartesian[3]) {
 
     delta[TOWER_1] = sqrt(delta_diagonal_rod_2_tower_1
                           - sq(delta_tower1_x - cartesian[X_AXIS])
@@ -8353,7 +8353,7 @@ void prepare_move_to_destination() {
     //SERIAL_ECHOPGM(" delta[Y_AXIS]="); SERIAL_ECHOLN(delta[Y_AXIS]);
   }
 
-  void inverse_kinematics(float cartesian[3]) {
+  void inverse_kinematics(const float cartesian[3]) {
     // Inverse kinematics.
     // Perform SCARA IK and place results in delta[3].
     // The maths and first version were done by QHARLEY.