Turning a Mill into CNC to help with an electric car conversion

Hi all,

I am in the process of making a Power Unit for my MG F car, where I am manually machining out the parts on a hobby milling machine at home and around my day job.

To save my aching feet and arms every evening, I am now looking at converting it to CNC.

I first got introduced to O-Drive by James Bruton on his OpenDog project.

Has anyone else converted machinery using the O-Drive on here? I’m looking to use simple Mach 3 software and having separate manual controls via an Arduino.

Here are some pictures to get an idea of what I am doing.

What mill are you using?

Also, would be cool to hear more about your electric car conversion.

Hi Wayne,

It’s an Axminster Sieg X1 that I bought 10 years ago, so it deserves an upgrade.

The project is on my YouTube channel and my web page at www.dev255.uk.

I will be looking at getting 2 x O-Drive motors, the O-Drive ESC, 2 x rotary encoders and asociated brake resistors initially. I’ll connect it to X & Y then if that works well I’ll double it up and drive the Z and spindle motor too.

I’ll be looking at designing all the parts on CAD (Alibre Design) and milling them, then programming an Arduino to control everything.

I’m happy to share everything that I am doing including the Arduino script, if that is ok too.

Hi, I have been looking through all the setup instructions and commands, where it looks like this will work a treat with a drive reduction of 4:1 to increase torque (timing belt’n’pulley) for X and Y axis. I will be allowing for belt slack/backlash within the arduino program (or Mach 3 software) and at the moment hope to allow startup motor calibration to only configure once by using the Z input.

On that thought, what is the minimum amount of rotation during calibration? This as I am worried that on startup after a power failure, the motors will move causing the milling bit to strike the work without rotating, causing damage to the bit and work. I will be using batteries for this to reduce/smooth power issues though.

I hope all that makes sense, it did in my head.

Thank you,



During calibration, it does one rotation cw and one rotation ccw

Carelsbergh Stijn

Thank you,

I may have to lift off the tool every time it starts up then.

I was thinking of using a rotary encoder, timing pulley and belt (one end attached to the table) to feedback the absolute position of the table too, as well as the rotary encoder on the motor.



We’re not QUITE at the point where we can use absolute encoders to avoid the re-calibration, and extra encoders for table feedback. Absolute encoders are being reviewed for merge, and we can do extra encoders … but we can only have 2 encoders total right now, so you lose the ability to drive one motor. But these will be two features that are available Soon™

Hi, are you looking at grey code rotary encoders working in tandem with the capacitive encoders? I have worked with grey code encoders in my day job to good effect. It’s ok with the absolute position encoders as I’ll read these on an Arduino or Teensy Mc, where the ODrive will act purely as a dual servo device and with its output compared with the absolute encoder within the Arduino. Thank you for your response, I shall order 2 motors, encoders and a 24V ODrive :-D.

So the issue here isn’t the Odrive - it’s that it takes a lot of modification to convert a manual mill to a CNC. Manuals use leadscrews, which usually have somewhere in the vicinity of 5-15 thou of backlash per axis. Us humans are able to correct for that, but computers aren’t so good at it (without some specialized code/firmware that still doesn’t work as well as it could). Usually whenever you’re doing a CNC conversion you’ll swap everything out with ballscrews, which are as zero backlash as they come. If you’re okay with the accuracy loss due to backlash, then I’d say just slap an Odrive on there, but if not, maybe consider picking up a used CNC machine or something like that.

Hi, I’ve placed my order :smiley:,

2 x Dual Shaft Motors D5065 270KV
2 x Encoders
1 x 24V ODrive

I will put it all together and record this for people to see via YouTube.

When I have played around with the programming and getting used to the system, I will look to ordering 2 more encoders for absolute position control directly to an Arduino or Teensy.

Just a quick question, what is the minimum voltage the 24v ODrive will accept?

Thank you,



Hi Solomon,

I totally agree, there is a lot of backlash on my machine that I compensate for manually… although I like a challenge (just see my MG F EV project :wink: )

I intend to initially account for measured backlash in code (so that the G-Code doesn’t continue to the next step until the backlash is added in), then hopefully add the direct table positioning encoder (attached between the table bed and base) to jog the ODrive until it reaches an absolute position (again only moving on to the next G-Code command when achieved)

Or it will all fail and we will all learn something :wink: , Either way I intend to share every step on my YouTube channel :slight_smile: (watch this space).

Would it be ok to share my channel in this feed?

1 Like

12V nominal (errors out at 10V).

Sure, context for discussion is always welcome.

Hi, thank you, I will run it at 12v initially off-load just to play around with on the bench and crank the constant current up to 5A.

Here is my Channel, please bear with it as I am very new to sharing projects online.

Thank you again,




Hi again, I thought I’d put a few pics up as I have started taking apart my Axminster Sieg X1 mill and building it up in CAD (Alibre Design 2019).

Also, I have ordered the bearings, belts and pulleys for a 4:1 speed reduction or more importantly an almost 4:1 increase in torque :smiley:

The pictures may look a little blurry although these were stills taken from the video I will upload later.

Have fun,


1 Like

Hi all, I thought I’d update you with my progress.

I hope I’m not putting too much on here, although I have almost finished the CAD design of the ODrive on my machine, just while I wait for them to arrive, should be very soon. I need to make the housing for the rotary encoder too and then put the machine back together to make the components, doh!

Don’t worry, everything will be covered from swarf ingress with clear perspex, so you can see it all working. I may even have some LED’s in there to light it all up and have a Blue one that flashes once per revolution CW and Red for CCW so that the ODrive name is clearly seen and you know which direction it’s going.

Also, the belt and pulley box would look good with some ODrive stickers :smiley:

This design has taken me 4 and a half hours this evening… (I wish I could do this full time :frowning:)

All comments welcome :smiley:

Have fun,


1 Like

Good Morning, Afternoon, Evening all,

Here is my latest video, where I am now in the process of converting the milling machine to CNC using the ODrive System. Please don’t share the video just yet as it is unlisted on YouTube so you guys and my Patrons can see it first, thank you.

Milling Machine Conversion to Brushless CNC - Part 1

Let me know what you think, all suggestions welcomed (even if it’s “you are doing it all wrong!”) :smiley:

As my Dad says, if you don’t have a tool for the job, you just have to make one :-).

Kind Regards,


1 Like

Cool, good luck with everything. Will be interesting to see this come together.

Thank you, I can’t wait to see how fast I can move the table, may have to bolt it down :grin:

Hi Neil, looking good :slight_smile: I will wait with anticipation to see the conversion. Now just with centering the encoder on the rear of the Odrive “You can do this with a bearing, and you will find it supports centering perfectly.”

Regards Jerry

Hi Jerry, thank you, I will try with a bearing, it’s probably a good idea to have a bearing to support the motor at the back when the belt is tensioned too as it may load the motors bearing too much.