LinuxCNC to upgrade old lathes drive train

More
21 Mar 2026 21:17 #344588 by Nik
Hello everyone, I am working on an upgrade for my old lathe. In short, I want to replace the old main motor with its multiple belt stages as well as the change gear system for the lead screw with two servos (more detail below). I am wondering whether or not LinuxCNC is the right way to go about it. I am a mechanical engineer by trade, but have little to no experience with control systems or LinuxCNC, so I do apologize in advance for any potential stupid questions coming up. 

The long version:
I want to upgrade my lathes drive system. It's an old machine, build somewhere around 1945, and it uses an induction motor followed by two v-belt, one flat belt and an optional gear stage to set the spindle speed, giving me a grand total of 12 possible spindle speeds to select from. Changing speeds therefore also isn't the quickest process. Even worse is the feed gearing driving the lead screw; It's set up as a change gear type system, so to set the feed rate I have to disassemble and then reassemble the drive train, which makes for painfully slow changes in feed rate. While the machine is certainly mechanically beautiful, my shop is not a museum and my time is quite precious to me, so I want to change that. The plan is to replace the main spindle motor and drive train with a big servo, and the feed gearing with another, smaller, servo. That would allow for easy changes of my feeds and speeds, as I just need to set whatever value I want on the controller. The feed rate per revolution would then no longer be controlled mechanically through the feed gearing, but electrically, by the smaller servo acting as a virtual reduction gearing if you will.

I already sourced the servos, a 1kW for the spindle and a 400W for the lead screw. They use EtherCAT for communication. For the controller I was thinking about either a Raspberry Pi 4 or a Kunbus RevPi that I have lying around. To run the machine I want to use LinuxCNC and an open source EtherCAT master, as done by Marco Reps for example.

I am however unsure on how to go about it. I don't yet require the full CNC potential of LinuxCNC; That might come at a later point, but for now, all I need are the following two features:
  • Set the spindle's rpm
  • Set the feed rate
Both of those options I would like to have on an easy GUI, ideally with as little unused "clutter" as possible. Depending on how hard that is to pull off, I would not mind learning how to program/code/design that myself, it might however quite likely be far above my current skill level. I am a mechanical engineer after all, not a software wizard. 

For the actual servo control I would like the option of having soft start and stop options by controlling the acceleration and jerk, so that the servo doesn't just violently try to reach the set spindle rpm.
Ideally the feed servo would be set up as a slave, following the main spindles rpm precisely, i.e. perfectly mimicking a mechanical gear train. So if for example the main spindle bogs down during thread cutting, the feed servo should ideally not just run it's course and lose synchronization. That should certainly be possible via EtherCAT, I just don't know how hard that would be to set up with LinuxCNC. It would however also be acceptable to solve that via a maximum allowable tracking error for the servos, if full on synchronization doesn't work.

I have a lot of ideas and things I would at some point like to add/have, from motor load indicators, a DRO via linear encoders, small easily programmable cycles all the way up to full on CNCing the lathe. But for now its baby steps, i.e. getting the lathe functional with its new servo drive train.

Is what im having in mind possible with LinuxCNC? Does anyone have pointers to a similar project? Or any advice or resources on how to set this up in LinuxCNC? How do I go about setting up the big servo as a spindle motor? Can I actually use the smaller servo as a slave synchronized to the main spindle motor? Is it possible to create a simple custom GUI showing only spindle speed and feed rate? Or would you guys recommend an entirely different route to set this up?

Any advice is greatly appreciated. I apologize if the post became a bit "rambly" in places and for any stupid/basic questions contained in it.

Cheers,
Nik

Please Log in or Create an account to join the conversation.

Time to create page: 0.116 seconds
Powered by Kunena Forum