I am at the instant, running a 7i90HD, with its i/o buffered by 3 7i42TA's, which do a fine job of gobbling up any incoming noise on the lines to here and there. At the moment running stretch on an rpi3b. So the video is obviously laggy but the machine runs fine.
The machine is an 11x56 sheldon, with 2 ball screws, and no compound, it was all smashed to hell by a fallover that landed on the compounds crank, stripping the crossfeed nut in addition to demolishing the compound castings. And because there was a heavy chuck when it fell, the spindle was bent. I've had fun fixing that.
it has a solid block of cast between the toolpost and the crossfeed. No great loss since linuxcnc can drive it at angles the compound couldn't reach anyway.
I have quite a bit of gingerbread code running in a 100hz thread that does the hand drive of both axises from a pair of 100ppr mpja encoder dials with adjustable motions per "click" ranging from .0001" to .0200" per click. I've removed the taper assembly, tossed the crossfeed screw in favor of a ball screw, making a new crankshaft for the front crank with a compression fitted connection to the screw from that shaft, which now has hard bearings, made a cage for the ball screws nut which is bolted to the bottom of the crossfeed. Backlash is around 1 thou. A cog belt pulley and matching belt connect that crank to a nema 24 motor sticking out the rear of a new 1/2" alu apron bolted to the front face of the carriage. The original apron and all its gingerbread have been removed, and a new 25mm by 1450 long ball screw is suspended at each end by its mounting bearings, and a way too big stepper drives it. Its covered by a pair of bellows assemblies to keep swarf out of the ball nut. That works well, as does my inserting of sealing panels in the crossfeed to keep swarf off the otherwise bare crossfeed screw. Z feed backlash is a fat thousandth.. Bed wear that effects the diameter of the cut has been trimmed to a thou or so by some more of that "gingerbread" code adjusting the x offset as needed according to its Z position..
Since the gearing (except for backgear) is all gone, I've made a hall effect spindle encoder watching the bull gear, so threading in sae or metric is nothing but feeding the right data into the gcode since LCNC knows the position AND direction of spindle rotation 240 times per rev.
I've got more gingerbread code in the hal file driving some extra data to the gui, so I know both the turns and the distance it overshoots when doing rigid tapping. No more running a tap against the bottom of the hole and breaking it.
And of course the oem 3/4 horse single phase turning the spindle has been replaced by a 1 hp 3 phase motor and a vfd, so LCNC has total control over the spindle.
All in all, a pretty smooth conversion that can do more, much faster at similar accuracy to someone turning cranks.
But all that has got the rpi3 dragging its tongue on the floor, so I'm in mid process of switching the pi3 for a pi4
Probably TL;DR.