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 unheard of for hobbyists. Luckily I made good choices and everything still works and has 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.
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.
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.
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/
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
So let’s look at a couple of examples.
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
Foam cutters need 4 axes to allow the hot wire to move in any direction on 4 planes usually X,Y,U and V.
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 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
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 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
These use your network port to connect to a specialized controller card or adapter that can connect to a parallel port controller, k
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
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 https://www.rckeith.co.uk/how-to-build-a-usb-cnc-hot-wire-foam-cutter/
Make sure you get the DRV8255 or the TMC2100 driver modules they can handle more current than the A4988 and use a cooling fan.
|1||The Arduino Mega 2560||USA Price Check
UK Price Check
|1||RAMPS 1.4||USA Price Check
UK Price Check
|4||NEMA 17 Stepper Motors 0.9Amp x 4||Check the latest price|
|1||60 mm Cooling Fan||Check the latest price|
|1||12 Volt Power Supply||Check the latest price|
|4||DRV8825 Driver Modules x 4||USA Price Check
UK Price Check
|8||600mm Drawer Slides x 2 pairs – 4 in total|
450mm Drawer Slides x 2 pairs – 4 in total
|Purchase from a local DIY store|
|4||Flexible couplers x 4 |
M10 x5mm for NEMA17
M10 x 6.35 for NEMA23
|Get the couplers here NEMA17 are 5 mm x 10|
|4||10 x 1.5mm T-Nuts x 4||USA Price Check
UK Price Check
|40||M6 Cross Dowels Bolts 50mm and Barrel Nuts x40||Get the Cross Dowels here|
|4||10 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
The step/mm will need to be re-calculated
|Purchase from a local DIY store.
Alternative T8 lead screws
|1||12 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.
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 good 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.