Free CNC software to make foam wings with a Hot Wire CNC foam cutter

posted in: CNC, Hot Wire | 2

You’ve built your 4 axis CNC Foam Cutter and now you need some free CNC software to generate g-code for that foam wing. If you can afford it then buying software may be the way to go, but expect to pay up to £300/$400 for Mach3/4 and DevFoam Wing. But your probably here because that’s more than you are willing to spend. So what software is available to make that foam wing for free?

This article explains how to use free CNC software to control your 4 axis hot wire CNC foam cutter.  LinuxCNC moves the axis on your machine and 2 pieces of software can  be used to generate the wire paths, JediCut and David the Swarfer’s Wing Cutter in Gcode software. You can use either one of these. Jedicut is Windows only where as David’s software can be run from his website, login required, or you can download the Python version and run locally.

So the first step is to get LinuxCNC up and running. This is what controls machine.

LinuxCNC free CNC software for foam cutters

I have an article on this site on how to install and configure LinuxCNC for CNC routing. I would encourage you to read this first. The only real differences is in the configuration files, all the steps up to “Stepconf for TB6560 Motion Controller” are the same for the foam cutter. Read as far as that and then come back here.

My hotwire machine has been running for several years on the TB6560 controller and NEMA23 steppers and been very reliable. As a hobbyist is not in full-time operation but I have run it for several hours in one session without any issues.

4 Axis Hot Wire CNC Foam Cutter
4 Axis Hot Wire CNC Foam Cutter

The reason I mention this is that the cheap chinese boards come in for a lot of bad press but I can’t fault mine. If your looking at this post your probably trying to avoid spending a lot of money on software as well, such as Mach3 at $175. You can if you follow this article get foam wing cores and many other designs all using free software. Read on to find out how.

If you want to build a hot wire cnc machine then check out my build page with free ebook and parts list.

LinuxCNC stepper configuration for 4 axis foam cutter

My configuration is based on the TB6560 all in one board but should work on many others, but the pin assignments on the parallel port may be different, so check your documentation.

If you don’t want to use the parallel port or your machine doesn’t have one, then the most cost effective way to do this is with a Mesa Ethernet card. This connects the network port on your computer to the parallel port on the TB6560. They are currenlty around $89. 7192 Anything I/O board This will need a different configuration than described below. The documentation should help out.

I’m also using home and limit switches and a E-stop for safety. It took me some time testing to get working, but it works now with all axis going in the right direction and home and limit switches triggering. My home and limits are wired in series so it only needs 1 pin.  You can wire separately and the will home all together but that means using more input pins and wiring.

LinuxCNC has a foam option that can be specified in the configuration. The display then shows a 4 axis foam cutter, which is very good. The only caveat with this is that your axes must be named XYUV and not XYZA. Later we add the option foam =1 to the ini file that’s created by stepconf and the some other setting.

Initially you can use the Stepconf wizard but after that we need to make a few changes to the ini file created by the wizard. If you re-run the wizard it removes the entries. More details later.

Step 1 create a new configurtion

We start of using the stepconf wizard to get the initial settings, but then we need to edit the ini files in our config folder to add the necessary setting for a foam cutter

Give your machine a name I’ve called mine foam-cutter, but you can name it anything you like. Set Axis configuration to XYZA (we change to XYUV later) and machine units to your preferred units. My setting are based on millimeters MM. Enter your Base Period Max Jitter. My post linked above show how to get this figure and I have a video on YouTube that show the process. Don’t guess this figure or your machine may not work very well or not at all.

Stepconf LinuxCNC free CNC software

Step 2 Parallel port config for TB6560

This if for a Chinese 4 axis TB6560 often called the blue board, like the ones below from Amazon. If you are using something else then check your documentation

Set the pins as below. If you’re not using home and limit switches then set pin 10 to unused.

LinuxCNC ports foam cutter free CNC software
LinuxCNC ports foam cutter

Step 3 Axis Configuation

I’m using 10mm x 1.5 pitch threaded rod for the lead screws and have found that Maximum Velocity set at 4.5 works well, any higher and steps get missed. But using the Test this axis button you can fine tune your settings.

My machine has a X and U travel of 600mm and a V and Y of 300mm. Set the dimension to suit your machine.

The settings below should be a good basis to get your machine working but you may need to fine tune when testing your axis.

LinuxCNC stepconf X axis foam cutter
LinuxCNC stepconf X axis foam cutter

Set the Y axis

LinuxCNC stepconf Y axis foam cutter
LinuxCNC stepconf Y axis foam cutter

The Z axis will become the U axis

The A axis in the stepconf wizard assume you are using a rotarty axis, but just ignore the deg labels and set as below. We will ammend the config file to change it to a linear axis later. This becomes the U axis.

Now we are done with the stepconf wizard. and you should have a launcher and a folder with your config.

Editing the ini files for foam cutting

I’ll include my ini files which you can download and use. Use a text editor, MousePad is the LinuxCNC default applications for this and works fine.

On the desktop you should have a icon that corresponds to you machine name


I called mine foam-cutter, so open this folder and double-click on foam-cutter.ini. Make a copy first just in case you need to go back.

Add the following lines to the [DISPALY] section

FOAM = 1
OPEN_FILE = ./foam.ngc

Find the [TRAJ] section add change to this:

AXES = 9

Seems odd to have 9 Axes in this but its to do with the way the axes are referenced

Now change Axis 2 and 3 to 6 and 7

Change [AXIS_2] to [AXIS_6] 
Change [AXIS_3] to [AXIS_7]

Change Axis 7 to Linear


Save this file

Now we need to make a couple of changes to the foam-cutter.hal. Once again make a copy and change as below. Use Find and Replace in the editor, Usually called MousePad in LinuxCNC

Change [AXIS_2]  to [AXIS_6]
Change [AXIS_3]  to [AXIS_7]
Change axis.2. to axis.6.
Change axis.3.  to axis.7.

Save your file.

Now you should be able to launch your configuration. Double click on the Launch Foam Cutter or you can use the Config Picker from the CNC menu.

Image below shows how it should look with a gcode file loaded in.

wing gcode linuxcncSample g-code

This gcode was generated by Wing Cutter in Gcode from It uses a clark-y airfoil and has a root chord of 250mm. This can be loaded in to LinuxCNC and you should see a similar image to the one above.

You may have to experiment with current and feed for you hot wire. I use very thin ni-chrome about 0.6mm and the iCharger 206B with a foam cut option.  All the iChargers  have this option.

Here is the video showing all the steps above.

My foam cutting playlist including Jedicut


Using free CNC software to make foam wings is really quite easy and I have stopped using Mach3. The Axis display for foam is very good and in my opinion much better. I will still probably use Profili2 Pro for generating g-code, only really because I’ve paid for it so I might as well use it. But I won’t be upgrading to the new version DevWing Foam. It’s currently in 2018 around £83. When I purchased Profili it was much cheaper, so I don’t think the cost is worth it for me.

Jedicut which has a few more options for wings

2 Responses

  1. Nathan Knight

    Thank you very much for putting the time in to these articles. I have all my parts and am going to start building it in the next couple weeks.

    • Keith

      Hi Nathan
      Thanks, I learnt a lot myself. Video is in progress had to re-shoot some parts today.
      Let me know how it goes on your build.

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.