Large CNC router

Hi, Asle from Norway here.
I am a mechanical engineer, but I am completely cr@p at programming anything more advanced than a vcr :stuck_out_tongue:

I am building a large cnc router with travel in the areas of : X1300mm, Y2800mm, Z300mm. The structure consists of aluminium extrusions 90x90mm and 45x180mm. X-axis will be run by one belt, Y will be run by two belts, and Z will have a lead screw (or ball screw, I haven’t decided yet).

My initial plan was to use NEMA 34 steppers, as information on sizing of steppers is well explained on at least one million cnc websites, but I want closed loop, and I really like the idea of using bldc motors in stead of steppers.

And so over to the questions: Has anyone here built a cnc router, and are you guys able to help me choose the right size and power bldc motor?

Question two: It seems to me that the oDrive controller can accept Stp.Dir.Enable - signals from a break out board, Arduino, RaspberryPi or similar, and I guess the oDrive has to be set up for this. Does the oDrive retain the memory, or do I have to perform this set up every time I power up?

Sorry for the n00b questions, my programming skills are limited to simple editing of Arduino code, and old fashion PLCs…


Nice, it will be cool to see how fast a large machine like that can move with powerful servomotors.

What belts will you be using (profile, pitch, width)? How many teeth on the drive pulleys? The thing with these brushless motors is that they are super fast (like 7000 RPM no problem), but the torque is not too much. So you should probably use the smallest drive pulley that is reasonable; but if you still need more torque, you should consider a 2:1 belt reduction before the belt drive pulley. What is the holding torque specified for a machine of your size coming from the NEMA34 recommendations?

In either case, a very nice motor is the SK3 6374, which you can also find in the motor guide. I would suggest that one, and then you just have to solve what transmission ratio you want from there.

Yes the ODrive can be set up to use step/dir, though the enable signal is a feature we plan to add soon (ODrive is always enabled when powered right now). The step/dir config will stay in memory no problem. Though one thing I would suggest is that you get an encoder with an index pulse, such as the AMT102 encoder which is available in the ODrive shop.

Very cool project, I’m excited to see how it will go.

1 Like

depending on your needs, you should take a look at the maslow CNC a standing 1220x2440 router that’s driven with plain brushed DC motors

what you are building is better in many ways, but will also take a bunch of space. being aware of other options is always good

1 Like

I have been following Maslow since the KS campaign, but still feel it is too inaccurate. Been gathering parts for a large gantry router, and believe this to be the right way forward…

By the way David, it was your maslow post about oDrive that led me here :wink:

I’m guessing (since I haven’t done any calculations yet) that I will need a serious reduction ratio.
The belts I have are HTD LL8M, so 8mm pitch. I have a couple of pulleys with 28 tooth pulleys, but 28*8=224mm pr revolution, and that might be a little rich :stuck_out_tongue:

If i buy 20 tooth drive pulleys and put in a 1/10 reduction between it and the motor:
20*8=160mm pr rotation.
1/10 reduction on the motor gives 16mm of travel pr motor rotation–> 1mm travel pr 22,5 degrees.
And this in turn, leads to a question:

What is the angular “resolution” of a bldc driven by oDrive?


You can make a copy of the ODrive motor guide (File -> Make a copy). Then you can look at the row for Turnigy Aerodrive SK3 - 6374-149kv, and play with Pulley circumference or screw pitch, including your reduction. So for 20 tooth x 8mm circumferance, and 10:1 reduction, you would enter 16mm effective circumference after reduction.

Entering these numbers I get a Force rating of 1,525.72 N and a effective encoder resolution of 1.95 µm. I think both of those values you need to de-rate a bit, especially the force, since the motor’s rated torque is with very good cooling and probably even then should be taken with a grain of salt. And the resolution will be degraded by any slop in the mechanics / gearbox, and the ODrive should only be expected to servo to within 2 counts or so.

Within two counts of the encoder? That is quite remarkable! :slight_smile:

1 Like

Hi Asle
This sounds like an awesome approach.
Die you have any updates on the project?

16mm travel per motor revolution sounds pretty high to me. I would propose driving a ball screw (via belts).
In my experience a bldc motor has less torque than steppers which *usually? run at around 5-15 ish mm travel/motor revolution. And I suspect you can easily get more RPM from a iDrive+bldc motor than a stepper.

Yes, PMAC / BLDC motors generate their power from speed, they tend to have less torque than a stepper. But they don’t lose torque until much higher speeds, so with a reduction you get a lot more power density