2 stepper cnc inaccurate I'm building a simple cnc machine that just writes letters. It uses 2 steppers for x and y axis.
Here is how it works

generate letters in c# and convert them to list of lines
send to arduino mov_xy line.x line.y as string for each line
on arduino convert to int, multiply by steps per mm and run with speedy stepper

It eventually builds up to accuracy problems.
If it's writing &quot;ZWX&quot;, letter &quot;X&quot; would be slightly to the side.
Things i tried:

500000 baud rate
accumulate remainder of float number of steps
different usb cables
different cnc machines

It is serial communication error?
Do i need to implement CRC?
Can UNO handle this?
Does SERIAL_8E1 do parity check automatically or do i need do something?
I went trough everything many times.
What am i missing here?

This image is generated directly from letter lines in c#, so i doubt the problem is on c# side.
I forgot to take care of negative steps in remainder accumulation.
This solved it.
// x accum
float resX = mmX * (float)X_STEPS_PER_MM;
float lresX = (long)resX;
_x_acum += resX - lresX;
    
long extraStepsX = 0;
while(_x_acum &gt; 1.0f){
     _x_acum -= 1.0f;
     ++extraStepsX;
}
    
while(_x_acum &lt; -1.0f){
     _x_acum += 1.0f;
    --extraStepsX;
}
// move stepper for lresX + extraSteps