For more than 10 years (nearly 15) I have been using this small 9×20 lathe, marketed by Jet tool company, and it has served me well, certainly earned multiple times its cost. Years back I converted it to closed-loop (0.001/0.01 mm resolution glass-scales, spindle encoder) operation, so it can do the very precise and tiny work I do without any problems. Many people may consider this lathe inferior to the big brands and expensive machinery, but well, you need to buy a machine that fits your needs, rather than just something that is expensive and heavy and has little practical use. This lathe at least can run automatically, with CNC control, machining microwave resonant cavities, antennas, all kinds of fine-thread screws and stuff with no effort, once you have written good code to control it.
The motion controller so far is based on two parallel ports, running LinuxCNC software on an old Ubuntu PC. Ubuntu 8.04 released in 2008! Finally time for some upgrade. With more recent LinuxCNC versions, and new (used) PC, it is much preferred to let the time-critical tasks be done by external hardware, namely, the step generation for the stepper motors, and the encoder counting. Both of these tasks have been working to my satisfaction on the old parallel port based real-time system (30 µs base thread, 1 ms servo thread), but the encoder counting for 3 encoders was at the limit, and fast moves or vibration of the Z axis (long axis) sometimes cause skipped steps, leading to loss of dimension reference. Needs a faster counter to capture all of the glass scale encoder transitions – something that can’t be done over the parallel port.
After some research, I settled for a Mesa 7I92TF, because this card can easily substitute two parallel ports, without any need to review the circuit and cables, and will work much faster and independent of the PC running LinuxCNC – at least independent for 1 millisecond at a time. A long time for real-time Linux, and easy to achieve without much bother.
Received the Mesa card from a dealer in Portugal, sure the tax, customs and intermediate tradesman were ripping me off – a cards just costing USD 109, sold for nearly 200 EUR here… but at least, it works! Connection to the host PC is by Ethernet, using UDP protocol.
To modify the pinout to the existing cables, I had to alter the Mesa software, fortunately, the source code is available, and even the programming tools for the FPGA – the 7I92TF uses a China-made EFINIX FPGA, available free of charge.
By default, the 7I92TF only supports one encoder, but easily changed in the software, and because I have already signal conditioning circuitry installed, no need to by even more expensive add-on cards for the Mesa.
Here are the major changes, just used an existing, similar configuration, then changed the number of step generators (only need two) and encoders (need 3).
A quick bench test, and working very well – we have three encoder counts.
The software integration to the existing HAL (LinuxCNC configuration) was easily done – just change the parallel port pins to the Mesa pins, some other minor changes to load the Mesa driver, etc. – within less than 1 hour, all done.
The old stepper drivers and interface board still working fine. Just moved the parallel cables to the inside of the case – and connected the two DB25 headers to the Mesa card. For the pin header – luckily, had a ribbon cable to DB25 adapter in my collected, probably, since childhood days when I disassembled electronic scrap to scavenge some parts – finally that part is getting some 2nd use.
Final function test on the lathe – all working. Z axis moved in and out as quickly as I could, certainly would be losing counts on the parallel port encoder counter, but not here. The Mesa seems to count even the fastest moves without skipping a step.
Also assume that the system will have very good noise immunity – no more parallel cables and galvanic connection of the driver and PC, just an (isolated-by-default) Ethernet cable, that’s it!