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

posted in: CNC, Hot Wire, JediCut, LinuxCNC, Software | 6

You’ve built your 4 axes 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 axes 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 G-code software. You can use either one of these. Jedicut is Windows only whereas David’s software can be run from his website, login required, or you can download the Python version and run locally.

Update 2019

You can now use the new USB Hot Wire CNC Foam Cutter I’ve released. All the information here regarding Jedicut and Wing Cutter in G-code is 99% the same. I have a post here explaining the changes required. It’s only a few configuration settings

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

LinuxCNC software configuration for 4 axis 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 are 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.

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 you’re 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 an eBook and parts list.

LinuxCNC stepper configuration

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 with a PCI Parallel Port card.

I’m also using home and limit switches and an 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 altogether 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 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 configuration

We start off 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 settings are based on millimetres MM. Enter your Base Period Max Jitter. My post linked above shows 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

1Nema23 Breakout Board and TB6560 drivers4 Axis TB6560 Controller Board Amazon US
Amazon UK
1CNC-DIY-Parts-4-Axis-Tb6560-Stepper-Driver-4x-Nema23-Motor-Software-LPT-Cable 4 Axis TB6560 Controller Board
All in one with power supply.
Drivers all on one board usually cheaper
Amazon US
Amazon UK

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 Configuration

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 an 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 assumes you are using a rotary axis, but just ignore the deg labels and set as below. We will amend 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 an icon that corresponds to your 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 g-code file loaded in.

wing gcode linuxcnc
Sample g-code

If you plan to cut wings that have are large sweep angle, so the root is much bigger than the tip then I advise you to use Jedicut.  LinuxCNC only calculates the feed on the XY so when to try to cut the opposite wing with the root on the UV inside it causes this axis to run very fast and ruin the foam.

I’ve just discovered this issue in November 2018 building a BAE Hawk wing.  If you can afford DevWing Foam then this the best option as it uses a G93 g-code to compensate for this.  Mach3 seems to compensate for this and my g-code for the right-wing came out perfectly.

This g-code 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 into 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 but I still use Mach3 sometimes just to keep my hand in. The Axis display for foam cutting on LinuxCNC is very good and in my opinion much better. I have upgraded to DevWing Foam2 for generating g-code, it’s not free but well worth the money in my opinion.

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

  2. Jeff Garland

    I notice on your display that the tip and root airfoil are spaced fairly wide apart as they should be for a normal wing. When I load your sample gcode in my setup (built following your excellent instructions), the foils are close together. I have tried by setting the correct spacing/wingspan using devWingFoam and it still shows close together.

    I tried this last year and was close but never got it to work. I found your instructions and it worked perfectly first time.

    How did you get them to show the correct separation?


    • Keith

      Hi Jeff
      Are you using inches or mm I use the metric so maybe thats causing it. Can you send me a screen shot if that doesn’t do it.


  3. Jeff Garland

    I can’t see how to attach photos to this response. It is set to mm and it shows the two foils 38.1 mm separated. Everything else looks right and it seems to run the gcode correctly although I haven’t hooked up to the machine yet.

    It may look bad for my machine anyway since my towers are about 48″ apart and the wings may get that big as well. It’s ok of course for constant chord wings but may be unusable for tapered wings.

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.