How to choose Steppers Motors and Controllers for DIY CNC machines

posted in: CNC | 2

When I decided to build my first CNC machine I didn’t have any real idea 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 on eBay and took a gamble. This was around 2010 when 3d printing was unheard of for hobbyists. Luckily I made a good choice and now in 2019 as I write this post everything is still working and been 100% reliable.

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.

Steppers and controllers

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 uses 4 NEMA17’s but my CNC foam cutter and router uses NEMA23’s.

NEMA17 and NEMA23 stepper motors

Torque Rating

Stepper motors are rated by their holding torque in oz/in or N.M, N.cm 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. http://www.vortex-rc.com/product/4-axis-diy-hot-wire-cnc-for-rc-hobbyists-aeromodellers-and-designers/
FoamLinx offer 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 current CNC foam cutter uses 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 updated design for 2019 which will use 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 on eBay 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,U and V.

CNC Foam Cutter
CNC HotWire 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. 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 foam cutter uses 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 foam cutter, I use 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.


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 and foam cutters. 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 relaible soultion 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 decidcate 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 be doing an in-depth article on this soon.

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 configuation I’ll show what I would purchase using the following critera. 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

GeckoDrive produces some of the best drivers and controllers which are more expensive but get extremely good reviews. Stepper motors are said to run a lot smoother and have features which reduce current when the motor is stationary


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


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. I will be doing a full tutorial on this soon keep checking back.
Make sure you get the DRV8255 or the TMC2100 driver modules they can handle more current than the A4988 and use a cooling fan.


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 you build. As I said earlier I’m no expert on this subject but I’ve had 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 good decisions on your purchases. The links in this post are afflilate links which means if you do purchase from Amazon or eBay I receive a small comission. You pay no more and if you do thank you. It all helps to fund the website.

2 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.

Leave a Reply

Your e-mail address will not be published. Required fields are marked *

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