This is going to come a bit out of left-field…
To be clear, I am a software guy, speculating about appropriate hardware, so adjust your expectations accordingly.
The core problem of a 3D printer is four dimensions of motion (X, Y, X and extrusion). Even a cheap 8-bit controller CPU can twiddle four stepper-drivers, mostly fast enough for present-generation 3D printers.
On the upside there are outfits like Trinamic who come up with up with stepper-drivers that offer more smarts, when controlling a single stepper. Though most folk most of the time are not using most of the features.
What bothers me, as an algorithms guy, is that in model a 3D printer is a singular, simple state machine. In practice we have a slow CPU controlling each stepper individually via each distinct stepper driver. That means skew, in the motion of steppers. Maybe small enough we do not care. Maybe.
In my day job, recently joined an outfit that builds advanced experimental radars for the military. They use a couple of large/fast FPGAs to do very fast signal processing. As my present exercise, re-writing the Linux device driver for controlling the FPGAs. (The box has a bunch of high-end Xeons for more complex processing.)
So … learning about FPGAs.
Is the usual partitioning of the control logic for 3D printers … wrong?
Older generation FPGAs are pretty cheap. An old/cheap FPGA looks more than adequate for controlling motion in a 3D printer (or other like robots…).
Need to bump up the small voltages (~1-2 volts) to the relative massive voltages required to drive stepper motors (~`24 volts and an Amp or so). Seems the requires simple “driver” chips. (For jargon, called up my father, whose work spanned from the first integrated circuits, up to current cell phone chips, ten years back.)
Maybe the optimal partitioning is a simple FPGA (for exact and integrated motion) hooked to a bank of simple “drivers” (for needed power)?
Maybe “smart” stepper driver chips are … silly?
(Watching videos about FPGAs. Seems they freak out hardware folk. As an algorithms guy, least bothered by the part that most bothers hardware folk.)
An FPGA is programmable hardware. Cool.
Give me a board with a Xilinx Spartan-6 and adjustable drivers sufficient to power stepper motors, and I suspect we have an optimal motion controller.
(Or maybe something simpler/cheaper.)
Are there hardware folk in this group, who can comment?