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 "ZWX", letter "X" 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.