I just build an LCD/encoder control panel for my Marlin/RAMPS1.4 prusa. It works great and I'm loving having it on my printer, but I couldn't help but notice that it displays incorrect values for the Z steps and E steps (X and Y are correct). I did a little analysis, and discovered that the issue is the integer precision of the Arduino.
I looked at the conversion routine ftostr52 that is used to format these values, and if I assume that the Arduino long integer is only 16 bits, then I can explain the values I get. The value I have for E steps is 699.897. Marlin presents this as +44.53. The value I have for Z steps is 2560.00 and marlin presents this as -61.44.
I can't believe I'm the only/first one to have experienced this issue. Does anyone know if there is a correction or work-around? I may not have the latest marlin, but I'm fairly recent.