Storage is one option.
I think you need to calculate your data rate first: how much data do you
need to read per second to control the machine?
If we are talking one GB per day its much different from one GB per
I would probably go for an SD card as well, provided that the interface
can handle it.
The SD interface comes in two flavors: simple, serial SPI and a much
faster 4-bit parallel variant. The typical library only implements the
Your actual problem I would probably address in a different manner:
- use one controller per axis
- use an SPI to feed data to the axis controllers from a machine
- us a network interface to feed the data from the PC to the machine
Depending on speed requirements the controllers could be:
machine controller: pollin AVR net-IO
or rather the Webmodule by Ulrich Radig
good starting points if speed requirements are not too high.
For higher data rates and larger memory buffers, I would consider a
"larger" controller like
This can integrate the axis controllers as software (output to port pins
directly) or use separate controllers to create loop-control and
maintain precise timing.
The speed that the windows machine can transmit over Ethernet should be
fast enough on /average/, even though Windows can not provide
The machine controller can implement the buffer required to even-out the
average speed to a constant speed.
Again: depending on your data rate, a small buffer (such as the Atmega32
or 644 can provide with its internal RAM) may be sufficient, if a larger
buffer is required for evening out the Windows processing jitter, the
ARM controller with megabytes of space will be easier to fulfil the
hope, this helps