What Controller Software can I use for CNC Foam Cutters?

In this article, I’ll discuss 4 software solutions can be used for CNC Foam cutters that I’ve used with the pros and cons. With this information, you should be able to decide which one is best for you.

CNC Foam cutters are usually 4 axis machines with each one moving independently. So if we are creating a tapered wing each axis has to follow a cutting path that is different from the other axis but is synchronised. That means hot wire must exit the wing profile at the same time even if the root and tip are different sizes.

cnc logos

These are the 4 solutions:-

  • Mach3
  • LinuxCNC
  • DevCNC Foam
  • 4 axis GRBL

Mach 3

This is the most popular for hobbyist and is very good. I started with Mach3 several years ago. You can run 500 lines of g-code for free but after that, you need a license which is $175. It’s possible to do some cut jobs in 500 lines but I haven’t found many.

Mach3 Main Screen
Mach3 Main Screen

Mach3 is windows only and was originally designed to use the parallel port that we used for printers. That port has long since been discontinued on computers but there are still many controller boards available.

So if you have an old desktop kicking around with a parallel port then it’s a good option. I still use Mach3 like this and it never failed me. The only caveat is that you need to use Windows 7 or XP 32 bit with the parallel port driver.

My old desktop PC is not connected to the internet and I’ve turned a lot of unnecessary services off. It has no antivirus software and no need for updates. It only runs mach3 and nothing else. I get the g-code on by a USB thumb drive.
You can use Mach3 on more modern computers but you will need a specialized USB adapter.
I have a post on my website showing several options for Mach3


LinuxCNC is a free alternative to Mach3 and is very good and still in development. It has configuration options for foam cutting which gives a better display. I’ve cut many wings with it. The only issue with using LinuxCNC is that it doesn’t work with USB so you are limited to the old parallel port or specialized Mesa add-on cards. Which can be a bit tricky to set up. 

wing gcode linuxcnc

I have videos and posts on the website that show how to get LinuxCNC up and running.

4 Axis Hardware for Mach3 and LinuxCNC

Mach3 and LinuxCNC will require a controller card to drive the 4 stepper motors. Here are a few suggestions

This kit is good value on Amazon and has everything you need for a parallel port build.

TB6560 separate drivers

DevCNC Foam

DevCNC Foam is one of the newer offerings and works really well on a variety of controller boards. I use it on an Arduino Mega with a RAMPS 1.4 board. It’s not free and cost €60 but you have support.

You can download it and run up to 400mm of G-code total movement to check your hardware works OK. It even uploads the correct firmware for you so you don’t need to use the Arduino IDE or a loader to install the firmware.

The one big advantage of DevCNC foam is that it’s specifically designed for foam cutting. Whereas the previous Mach3 and LinuxCNC are general purpose.

4 Axis GRBL

This Arduino based 4 axis GRBL controller is a fork of GRBL originally for 3 axis which is free and works well, but it has a few limitations.

The main one being it doesn’t support the G93 feed rate mode. It can’t use limit switches. But these are not show-stoppers and I’ve made several wings using it. My video series on YouTube shows how to build a USB Foam Cutter using this software.

grbl cnc 4 axis

So which one would I recommend? 

All of them, they all work well. The one you chose really depends on how much you can afford, skill level and intended use. 

CNC can be very addictive and if you want to do some CNC routing as well then Mach3 and LinuxCNC are good choices and if you are on a budget and have an old desktop kicking around LinuxCNC is a great choice with a parallel port controller.

Configuring Mach3 and LinuxCNC can take a bit of effort but is well documented I have several articles on the website for both.

If you want almost a plug and play option then DevCNC Foam is probably your best option. Just connect it to one of the supported boards and it will upload the correct firmware. Just some calibration of the steps/mm and you’re up and running.

The GRBL 4 axis option is the cheapest option for USB and gets the job done.  But you may need to spend more time configuring and testing. I have it fully documented on the website with a video series explaining how to get it working. 

You will need to test speeds and feeds on more complex wings that have a big difference in the root and tip size because G93 doesn’t work on this board and no limit switches.

What is G93

G93 is a feed mode recommended by DevCad for DevWing Foam and DevFus Foam. For straight wings, it doesn’t matter too much. But for a swept wing or one with a root and tip that are different sizes its the best option to use.

It gets a bit techie but the simplest definition I found is this.

G93 stands for Inverse Time Feed Mode. The F code value, when DIVIDED INTO 60, is the number of seconds that the motion should take to complete.

Mach3$175YesYesWidely used
Can be used on Mill, Lathes and Plasma cutter as well.
Needs extra hardware for USB.
Not being developed anymore.
General-purpose and still being developed
Parallel Port or Mesa Card
DevCNC Foam€60YesYesDesigned for 4 axis foam cutting
Support several controllers
Very easy to install
Can only be used for foam cutting
4 Axis GRBL$0No NoCheapest USB optionArduino Mega and Ramps broad only.
May need extra testing to get a good feed rate.


Hopefully, this post will help you decide the best option for you. I’ve just started using DevCNC Foam and will follow up later with a more in-depth article. When we decide to build a CNC foam cutter we tend to concentrate on the hardware but over the years of foam cutting, I’ve found this may not be the best option

Software is where you’ll spend the bulk of your time. So I would suggest you think about the type of projects you want to make and then match that to the software and then the hardware.

CNC foam cutting doesn’t not as precise as a CNC routing/milling machine so you don’t need to spend a fortune of super-accurate hardware. I have printed out profiles of wings and fuselages sections and then overlaid them on the foam cut part and to the naked eye, they line up perfectly.

If you have any questions then feel free to contact me and I do my best to answer them.

Happy foam cutting

14 Responses

  1. Dave Mansfield

    I have this about 50% complete. I built the atx power supply for it. I wonder from your video what the power supply voltage is for the two wires going to the arduino board. If it’s 12v, can I wire mine the same? Does the arduino adjust the current it needs for itself and the stepper drivers? Same for the fan? I found the 12v uncontrolled is too much for the Hotwire, although, the 5v works good. Thank you, good project I’m sure I’ll have questions on the software.

    • Keith

      Hi Dave, the Arduino runs on 12Volts and a ATX power supply will supply more than enough current. The current to the stepper motors is controlled by the driver which you adjust to suit the motors you are using. In Part 2 of the video series, I show how to adjust a voltage reference that determines the current https://youtu.be/0GPtbG_O5g0?t=779 about 12 minutes in. The fan just runs off the 12 Volt supply and uses very little current. The hotwire can be controlled by GRBL HotWire Controller software via a slider that alters the voltage and current supplied but I prefer to use my iCharger which has a foam cut option which I set to around 2 amps for white foam. You can use most battery chargers with a NiCad setting to get the same results just set it to about 2 amps. The current is what really controls the temperature of the wire but it does take some testing to find the best setting.
      Hope that helps

  2. Dave Mansfield

    I’m starting the electronic setup of the arduino board. I’ve got it connected as in the video. When I check the voltage on the drivers, I get 1.66 volts on average instead of .45 as you do. Is there an adjustment for this? Is the Phillips screw an adjustment dial? Thank you for your help, Dave Mansfield

    • Keith

      Hi Dave
      Yes, it’s that screw but the setting needs to match your stepper motors. Mine are 0.9A so that equates to 0.45v. So you need to match to the current of your steppers. If they are the same as mine then that’s the vref voltage to use. Have a look at the video I made it shows how to do it. The link takes you to the right part https://youtu.be/0GPtbG_O5g0?t=777


  3. David Mansfield

    I have nema17. Watching your video, it looked as though the .9A was stamped on the back of yours. Mine aren’t but the online literature says they’re 2A. So my voltage should read 1V. Since they all read 1.66V, I need to adjust mine to read 1V. Correct?

    • Keith

      Hi David
      Yes, 1V is correct but make sure you have good cooling over the RAMPS board as 2A is about the limit the drivers can take.


  4. Dave Mansfield

    I’m having trouble getting to where you were in your electronic video when the motors first started turning with the tape tags on them. What software program do you have where you can jog the different axis? I’ve tried jedicut and mach 3 with no success. They don’t seem to work well with my computer which is a Windows 10 PC. I’ve also tried them on my MacBook with even less results. I do like the Devcad foam and that is probably the one I will eventually use. However, I would like to at least see that the motors respond to input before spending money on that program. Eventually I will get a windows laptop to run this if I see success. Thanks for your help.

    • Keith

      Hi Dave
      In the video, I’m using GRBL Hotwire Controller which is on the website https://www.rckeith.co.uk/download/hot-wire-cnc-controller/. If you’ve uploaded the firmware OK via the Arduino IDE it should just work. I use Windows 10 and it works fine. Mach3 won’t work. Jedicut is really just for generating the gcode.


  5. Dave Mansfield

    I have the GRBL hotwire controller loaded and I now have the panel presentation that you have in your video. However, there are no numbers in the tower control boxes. . When I press the jog buttons my motors don’t turn but I do get code loading in the lower left window. Also, the motors don”t lock when power is applied. I was wondering about if I uploaded the firmware OK as you suggested. I think I did as there was a flashing red light on the board that went solid after I uploaded it. Is there another way or any way to check to make sure it got uploaded properly?

    • Keith

      Hi Dave
      What power supply are you using for the RAMPS board. Have you set the Vref on the drivers. Can you send some pictures of your setup. You can reply to hotwir[email protected]


  6. maciel

    ola amigo estou com o projeto do cnc hotwire pronto e funcionando
    uso o grbl control e o jedicut para o gcode porem nao consigo abri o codigo g gerado com o jedicut , o grbl control da erro e nao abre, ja vi seus videos sobre o jedicut mas nao consegui resolver o erro sera que pode mim dar alguma dica ,desde ja obrigado!

  7. Dave Mansfield

    Keith, Ive been working on Jedicut trying to figure it out and was wondering if I could get some help. The only real problem I have with it, so far, is the directory line on the options page. On your example you had Google Drive in the directory. Is that required? If so, Im having trouble getting Jedicut to load into the directory line with Google Drive or for that matter, get anything in the directory line to pass ok. Currently I have C:\program files(x86)\Jedicut in the directory. When I press OK it puts up a message in French which I think says, ” cannot write without C:\Program Files (x86)\Jedicut_Addresse_port_LPT.ini.” Also, in loading the clark y airfoil, I only get the bottom half of the pictorial. The other functions seemed ok. I thought you may have seen similar trouble with others, Thank You again, Dave

    • Keith

      Hi Dave
      I only have mine in Google Drive for convenience. You will get a error trying to save in C:\Program Files (x86) because that is windows system directory for programs. Create a folder under the C drive like C:\Jedicut and use that in the options->Directory.
      Not quit sure what you mean about the clark-y. Are you able to send a picture. There is an upload on the contact page where you can attach a file https://www.rckeith.co.uk/contact-me/

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.