<font face="Arial, Verdana">I believe that a tower as a reference to be chosen by the user and accuracy in time to give the command, it can be a starting point. For example. My endstop Z is fixed because I spend all supply wires to plate lamp sensors and hotend the tower Z and some wires cross over the endstop (on the side - more stable). He does not like being moved. Choosing the Z tower as a default, it could make the initial measurement in Z tower, take as a reference, adjust the X and Y Towers (endstops) by Z tower and then set the table center. After these four stored values, there would be another measurement between the towers and calculate the individual radius and arms corrections. It would be a relatively simple solution. When its found the value, remake tests to fine-tune and then finalize.</font>
<font face="Arial, Verdana">
</font>
<font face="Arial, Verdana">I believe that these parameters should be calculated by the host rather than the Arduino as is done with the Marlin. This allows a more elaborate calculation and with better results, as the computer's processing power is much higher than the Arduino, and have a greater amount of memory to work with variables, because from what I saw the Arduino is already near its limit. The firmware could have 3 extra variables that would be just the right angles of the towers as Xp, Yp, Zp. Passed via serial, the host would do the "dirty work"</font>