I've been working on a project where I use the Arduino to drive a three axis plotter (that uses various drawing / printing tools). The plotter uses three stepper motors and I'm using stepper drivers that require a step/direction signal. Everything has been going quite well, I've got a good implementation of the Bresenham algorithm for linear interpolation (based on the one used in the RepRap project). I would really like to have your advice on the following: when I have the plotter draw curves (which are split up in small straight line segments), the serial communication (currently at 28800kbps) can't keep up and starts to interfere with having a smooth movement. I have a kind of flow control set up between Processing and the Arduino, when the Arduino buffer runs low, it sends an ascii character through the serial connection, and processing replies with a new set of commands. But each time the arduino receives this new set of commands, it seems to slow down about 4 milliseconds.
Since hardware flow control is not available (correct me if I'm wrong), I will need another solution, what could be an option is to buffer the full sequence of commands, but since this won't fit in the RAM, some kind of external memory should be used. But using external memory requires reading data serially once again. My question is, can the Arduino read at fair speeds from an external EEPROM or CF card, and would this be a solution?
Any advice / comments / suggestions are most welcome!