How to choose Steppers Motors and Controllers for DIY CNC machines

posted in: CNC | 14

When I decided to build my first CNC machine, a foam cutter, I didn’t have any real idea of what I needed to use for stepper motors or a CNC controller. I did quite a bit of research and was overwhelmed by the amount of information. So how did I choose the right parts?

Well, basically I checked to see what was the most popular selling items online for very similar projects to mine and hoped I would be OK. This was around 2010 when 3d printing was relatively unheard of for hobbyists. Luckily I made good choices and everything still works and has been 100% reliable.

Steppers and controllers

I’ve learnt so much and now have a CNC router and a 3d printer as well. CNC can be a bit addictive and very rewarding when it all works. But when it doesn’t work as expected or not at all in can be very frustrating. I’ve helped several guys all over the world to get their machine working and the elation they show when it works is priceless. So I hope this post will help you make an informed decision.

There are so many stepper motors and CNC controllers to choose from now how do you know which one to pick. If you search the Internet for answers you’ll probably be overwhelmed with all the technical information. 

I have a simple method which works without too much techie stuff.
I get questions from time to time such as, will these stepper motors be OK, what CNC controller should I use.

My method is to see what motors are used by vendors who sell complete kits that are very similar to my build and use that as a starting point. There are ways to do this scientifically which involves a lot of maths and inertia calculations but it’s heavy going. If your interested check this link here

Once we have the motors selected the rest is quite straight forward. Its worked for me and if your build is a fairly simple router or hot wire machine then read on.

I’m a DIY hobbyist and have been running a foam cutter, CNC router and a 3d printer for several years now so in no way am I an expert.  But what I can share with you is my experience on a modest budget with great success to help you can make informed choices. Check out some of my CNC projects to see what can be achieved.

Stepper Motors

Let’s start with these first and the rest should fall into place.  You probably decided you are going to build a foam cutter or router and the first thing you usually start looking at is stepper motors.  So what’s all this NEMA stuff about.

NEMA (National Electrical Manufacturers Association)is a standard that defines the size of the faceplate of the motor, this is where the mounting screws attach the motor to the frame of your machine. It has nothing to do with the power of the motor
Two of the most popular sizes for DIY machines are NEMA17 (1.7in x 1.7) and NEMA23 (2.3in x 2.3in)  
My Anet A8 3d printer used 4 NEMA17’s but my CNC original foam cutter and router used NEMA23’s.

NEMA17 and NEMA23 stepper motors

Torque Rating

Stepper motors are rated by their holding torque in oz/in or N.M, Newtons per meter or centimetre.  For example, a NEMA23 might say 175 oz/in (ounces per inch).  So it can hold 175 ounces on an arm of 1 inch in length attached to the motor shaft. This is the holding torque.  This is useful for comparing motors
We also need to note how much current the motor will draw and the voltage it needs to work at.

What is Bipolar Unipolar

Stepper motors can be bipolar or unipolar. This has to do with the way coils are connected. Without going into too much technical detail in nearly all cases we use bipolar motors. Bipolar motors have a high torque output due to the way the coils are wired. But it needs more complex circuitry to switch the coils, this isn’t an issue because the driver modules do this for us. You can make a unipolar motor work as a bipolar by wiring the coils in a certain way, but we’ll not go into that here. Nearly all motors for hobby CNC machines are sold as bipolar.

Choosing Stepper Motors

Choosing a stepper very much depends on the type of machine you have or are going to build and the material you are going to cut.  So I’ll show you my approach for choosing motors for a foam cutter and router.

For 3d printers, NEMA17 are used mostly and because of their popularity, they can be purchased as complete kits quite cheaply. My ANET A8 can be picked up now for around £120/$170 so its hardly worth the effort of building one. Check my post here on my ANET A8

Stepper Motors For Hot Wire CNC Foam Cutters

When we cut foam with a hot wire foam cutting machine it’s not actually being cut but melted.  Its referred to as cutting by radiance.  So the load on the steppers motors is virtually nothing from the hot wire if its temperature and feed rate are correct.  Nearly all of the load comes from the weight of the moving parts of the machine. 

So NEMA17’s should be fine if your machine is not too heavy, something around 50-80 oz/in should be OK.  Vortec RC uses NEMA17 on their kit.
FoamLinx offers several machines but these are not really aimed at hobbyist, costing several thousand dollars. However, we can see they are using NEMA23 rated at 220oz/in on their small machine.

My old CNC foam cutter used NEMA23 175oz/in rated at 2.8 Amps. The moving parts on my build weigh a little over 11KG or 25 lbs, so it’s a bit on the heavy side. It’s made from 3/4″ (18mm) High-Density FIbreBoad(HDF) which is very strong and stable but quite heavy. So I decided to use the bigger stepper motors with the recommended 24 Volt power supply.

My new updated design for 2020 uses 12mm MDF and features several changes and improvements. It reduces weight considerably and allows the use of NEMA17 steppers. Keep checking back for the updated design should be out soon.

Stepper Motors For CNC Routers

Generally, you are going to need at last NEMA23 from 175oz/in upwards unless your machine is very small such as a CNC engraver. These are quite often used for making Printed Circuit Boards(PCB) and if you check the description they will say only for soft materials.

So let’s look at a couple of examples.

For routers, the cutting material plays a big part in our decision. Harder materials will need a more powerful stepper because the cutting bit is being driven into the material.

The WorkBee from Ooznest in the UK which is based on the OpenBuilds design. It uses NEMA23 of 175 oz/in. If you check some of the offerings online for 6040 CNC routers you’ll quite often see in the description 57 size motors, which is the metric equivalent of 2.3 inches or NEMA23’s and these usually come with 175-200oz-in motors

If you intended to cut very hard materials then high torque steppers motors will be required usually around 300-400 oz/in and you may need to go up to NEMA34 and you will need a strong frame to support that.

CNC controllers for the DIY machine

Now we know the stepper motors required for our project we can match them to a suitable CNC controller. The controller converts the g-code we’ve created and sends step pulses to the stepper motors. It also takes input signals from the machine such as limit switches and E-stops.

So there are 3 things we need to know:-

  • Number of Axes. So usually 3 for routers and 4 for a foam cutter
  • Current and voltage we need to supply to the stepper motors
  • How do we intend to connect the computer to the CNC controller

Number of Axes

CNC routers can use 3 or 4 axis controllers. There is only 3 planes of movement X, Y and Z but some designs use two stepper motors on one axis. My OX CNC router uses two NEMA 23 on the Y-Axis as its a gantry type router. Some move the table bed for the Y-Axis on sliders and only need 1 motor for the Y-Axis. Like a 3d printer bed

OX CNC router
Y-Axis complete and running very smooth

Foam cutters need 4 axes to allow the hot wire to move in any direction on 4 planes usually X,Y,Z and U.

USB CNC Foam Cutter
New Foam Cutter

Current and voltage we need to supply to the stepper motors

So you’ve decided how many stepper motors you need and the torque rating. It’s then just a matter of matching to a suitable controller. All controllers will have stepper drivers that either individual modules or integrated into the controller board. The stepper drivers are designed to supply current and voltage, which in most cases is adjustable. It’s important to match the current with the stepper motor. Stepper motors can work at very low voltages but they are usually driven at much higher voltages up to 8 times by a chopper driver. If you would like more information check this link This gives higher torque and speed.
If you use a stepper that needs 2.8 amps and your drivers only supplies 1.5 amps it may still work but slowly and may not be enough to overcome the load.

Generally, NEMA17’s are run on 12 volts and NEMA23 24 volts. If you supply less then the motors will turn slowly or not at all. Its to do with something called back EMF. So when you are deciding on the controller check the current rating of the steppers and make sure the controller or driver modules can be adjusted to match as close as possible but don’t supply more or the motor may fail.
My old foam cutter used 57BYGH56-401A NEMA 23 which are rated at 2.8 amps and 3.36 Volts per phase. I run this with a 24-volt power supply and the current is at 2.25 amps set via DIP switches on the board. This has run for several years without any issues

Power Supply

The power supply needs to be able to deliver the voltage and current for your chosen motors and controller. Going bigger on the current won’t hurt but the voltage needs to match the controller’s voltage. So for my old foam cutter, I used 4 x 57BYGH56-401A NEMA 23 rated at 2.8 amps and the controller need 2 amp. So 4 x 2.8 amps plus 2 amps for the controller gives 13.2 amps. If we multiply that by 24 volts to give Watts that comes to 316.8 Watts. Powers supplies can be rated by Amps or Watt so I use a 15 Amp 350 Watt supply.

For my latest foam cutter it uses 4 x 0.9 amps with the controller needing 1 amp. So I would only need 4 x 0.9 + 1 = 4.6 amps x 12v so I should only need a 55 Watt power supply. I would use a 12v 120 Watt power supply. If I ever need to replace the motors wanted to use slightly higher current then it would be OK.

Connecting the computer to the CNC controller

There are quite a few options to connect your computer whether it is a laptop or desktop to the CNC controller. The connection is also dependent on the software you intend to use. Mach3 is probably the most widely used for CNC routers.. It was designed to use the parallel port with a DB25 (25 pins) cable. The parallel port is now obsolete and Mach3 would only run on Windows 32bit computers with the parallel port driver. This meant Windows XP was the last version you could use. But you can use it on modern computers with specialized hardware and drivers. My article here has much more detail 6 Solutions for Mach3 Obsolete Parallel Port Interface

Don’t discount the old parallel port if you’ve got an old desktop computer laying around with a couple of gigabytes of RAM it will work just fine with Mach3 and LinuxCNC. You can usually pick them up very cheaply as well. This is a very reliable solution and I’ve used it for years on both Mach3 and LinuxCNC. You can also buy parallel port cards to add to a more modern desktop machine. This way you can dedicate the computer just to CNC. The majority of CNC controllers sold on eBay and Amazon that support Mach3 and LinuxCNC are still parallel port versions.

If you’d prefer to go USB then you have a couple of options.

  • Use an Arduino based controller
  • Use a USB controller board or adapter for Mach3 or Mach4. LinuxCNC doesn’t support USB

Arduino based USB controllers

3d printers use Arduino based board and these are very popular. CNC routers and foam cutters can use these as well. The only downside is that you need to able to load compile and upload firmware to the board. This is fairly easy and there are many tutorials on how to do this. You won’t be able to use Mach3 or Mach4 with this setup. The Universal G-code Sender(UGS) is probably the most popular software to control the board. There are some forks of this for foam cutters as well. I’ll have an in-depth article here

USB for Mach3

To use USB with Mach3 you can buy a specialized controller board with drivers that support Mach3 or a USB to parallel adapter to connect to an old parallel port controller. This isn’t a generic adapter but a specialized CNC USB adapter. The best one of these is the UC100. More details here

Ethernet Controllers

These use your network port to connect to a specialized controller card or adapter that can connect to a parallel port controller, known as BOB(Break Out Boards) This works for Mach3/4 as well as LinuxCNC

Suggested configurations

In these suggested configurations I’ll show what I would purchase using the following criteria. Machine intended use, budget and connection to the computer

CNC router used to cut materials from softwoods up to aluminium

If your budget is limited and you have an old desktop computer with a parallel port then use LinuxCNC with 3 or 4 axis controller and NEMA23 stepper motors rated at 175 oz-in or better. Mach3 is $175 so you’ll save on that and I’ve done a complete tutorial on this configuration with a video as well here

TB6560 separate drivers

If your budget permits and you prefer to use USB with Mach3/4 then I would use one of these USB breakout boards with TB6600 driver modules or the Geckodrive G251X drivers.

Hot Wire CNC foam cutter

If your budget is limited I would use the same option as the budget router If you prefer to use USB and are happy uploading firmware to Arduino boards then the option below would be a good choice.

You need to keep you build light as it uses NEMA17 motors. My new USB Foam Cutter build is here
I prefer to use the DRV8255 or the TMC2100 driver modules because they can handle  a little more current than the A4988 and always use a cooling fan.

1mega 2560The Arduino Mega 2560. The genuine add a little more to the cost but are more reliable.USA Price Check
UK Price Check
1RAMPS 1.4 BoardRAMPS 1.4USA Price Check
UK Price Check
4nema17NEMA 17 Stepper Motors 0.9 -1.5 Amp x 4Check the latest price
160 mm Cooling FanCheck the latest price
112 Volt Power SupplyCheck the latest price
4DRV8825 Driver Modules x 4USA Price Check
UK Price Check
8600mm Drawer Slides x 2 pairs – 4 in total
450mm Drawer Slides x 2 pairs – 4 in total
Purchase from a local DIY store
4CouplersFlexible couplers x 4
M10 x5mm for NEMA17
M10 x 6.35 for NEMA23
Get the couplers here NEMA17 are 5 mm x 10
4tee-nuts for cnc foam cutter10 x 1.5mm T-Nuts x 4USA Price Check
UK Price Check
40cross dowel and barrel nutM6 Cross Dowels Bolts 50mm and Barrel Nuts x40
Get the Cross Dowels here
4threaded rod for CNC foam cutter10 x 1.5mm x 1000mm (cut to size) Threaded Rod x 4
If you prefer to use T8 Lead Screws
M5 x 8mm couplers will be needed as well.
450mm for vertical
750mm for horizontal
The step/mm will need to be re-calculated as well.
3/8"-16 can also be used. See the See here
Purchase from a local DIY store.

Alternative T8 lead screws UK

Alternative T8 lead screws USA
1MDF Sheets12 mm MDF Moisture resistant or paint after the build.Purchase from a local DIY store.

If you prefer to use Mach3/4 with USB then the use the same option above for the router and with a light build NEMA17 stepper motors should be fine.

Final Thoughts

As you can see there is a lot to consider when choosing parts for your build. As I said earlier I’m no expert on this subject but I’ve had a good experience in CNC routing, foam cutting and 3d printing and I hope this may help in your decisions.

Please use this post as a guide and check out other resources as well and you should be able to make some informed decisions on your purchases.

The links in this post are affiliate links which means if you do purchase from them I receive a small commission. You pay no more and if you do thank you. It all helps to fund the website.

14 Responses

  1. John Frenzel

    Sir I have 4 stepper motors and I don’t know if they are 17s or 23s. They are Vexta model pk244-02ba 2 phase 1.8 degrees made by the Oriental motor co LTD Will they work or should I get a kit?

    • Keith

      Hi John
      Looks like they are NEMA17 unipolar motors with 6 wires. It depends on what you want to use them for. For a CNC router, I’d say they are too small but for a CNC foam cutter, they could be OK if your build wasn’t too heavy. But you would need to use them in a bipolar mode to get the maximum torque. Looking at the datasheet you should have a white and yellow wire coming out of the motor, just leave these disconnected and connect up as a 4 wire bipolar. Hope that helps.

  2. Eric

    I am planning to build a laser roughly 4′ x 2′ bed. Would your platform be able to use a laser system instead of the router or wire? I have to take into account the cooling and smoke removal, but I think it might be good.

    Also, pardon my density, but what is the 4th axis? X Y Z I get.


    • Keith

      Hi Eric
      Could you explain your question a bit more? Not quite sure what you mean by ‘Would your platform’ If you are referring to the CNC foam cutter then that uses 4 independent axis two horizontal and two vertical. That so I can make tapered wings which needs them to move independently. It wouldn’t really work for a laser cutter. I do have a CNC router from Ozznest in the UK and that you could have a laser mounted on the Z-axis instead of the router. Have considered doing that at some time, the dust from the router is a real pain.

      There are quite a few DIY router plans on the internet which may be better for you have a look here

      Hope that helps


  3. Raynor Johnston

    Appreciate if you can point me to any link if you can. (I am an electronic ignoramus!!)
    I have built a Momus CNC router but now want to convert it to ballscrew operation so I realistically only have the z and z axis re-useable and will have to rebuild the set up to use linear bearings on guide rails for the y axis. (probably chinese). This will require TWO (probably 16mm) ball screws and steppers one each side which have to operate exactly in sync of course.
    Question is what else do I need apart from an additional stepper motor.
    I have a Gecko 540 driver and the steppers are Keeling KL23H284-35-4b’s.
    any help appreciated
    Raynor J

    • Keith

      Hi Raynor
      Thanks for your comment. So it looks like you want to slave another stepper on the Y-axis. Looking at your controller it supports a 4th axis so all you need is another stepper motor and wire that into the 4th axis.
      Once you have that set then it’s just configuring Mach3 or LinuxCNC to use the motor as a slave. I did this on my OX CNC route I have some details here OpenBuilds OX DIY CNC router from Ooznest

      It’s pretty straight forward. What I would advise is that you just connect the motors to the controller before you attach them to the ball screws and check they go in the correct direction. Sometimes you need to reverse one of them in Mach3 or LinuxCNC. Here’s a video on YouTube that shows how to do it in Mach3

      Hope that helps.

  4. Raynor Johnston

    Spot on thanks very much,
    Still not sure if I will do the job or not as have anumber of projects on go. But now I have all I need from your answer so as I say many thanks
    Raynor J

  5. Tarun sai Varma

    Hello keith,

    I want to build a wood ,glass and laser engraver and a 3d printer all together i am very much a beginner in the field your article helped me a lot.

    Actually I need to submit a project work at my schooling, I want the build to be cheapest will a NEMA 17 65 oz in do the work for me.

    Correct me or Suggest anything would be helpful and thankful

    I liked your words sharing knowledge might help someone or ourselves sometime.

    Tarun Sai

    • Keith

      NEMA17 should be fine for a 3d printer laser engraver. There isn’t much load like a cnc routing would have so you should be fine. Have a look at products for sale and see what they use, it’s a good starting point.
      Glad you liked the article.

  6. Tarun sai Varma

    actually i am experimenting the idea. I didnt even knew if it would work out to make such a multipurpose cnc by changing the work heat and firmware on Arduino simultaneously. Since it is my project work.

    • Keith

      Arduino is very good and can be used for several types of machines.

  7. Tarun sai Varma

    Thanks sir,
    I Would like to know wheater NEMA 17 65 oz-inch would be sufficient for a wood engraver.
    Glad if I could get the justification wheater its sufficient need a specific high torque NEMA

  8. Mike Pelton

    Hi Keith – really useful piece so many thanks. The link for the RAMPs didn’t return any results from Amazon – too many keywords – so in the interests of all of us helping to keep you solvent you might want to take a look at it!!

    • Keith

      Thanks, Mike Amazon are making some changes so I’ve had to change a few links looks like a need to fix this one.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.