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.
So the first step is to get LinuxCNC up and running. This is what controls 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. http://www.rckeith.co.uk/free-linuxcnc-openbuilds-ox-router/ 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.
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. http://www.rckeith.co.uk/cnc-hot-wire-foam-cutter/
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 switch 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 https://youtu.be/F4xHCwtaS3w that show the process. Don’t guess this figure or your machine may not work very well or not at all.
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
|1||4 Axis TB6560 Controller Board||Amazon US
|1||4 Axis TB6560 Controller Board |
All in one with power supply.
Drivers all on one board usually cheaper
Set the pins as below. If you’re not using home and limit switches then set pin 10 to unused.
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.
Set the Y-axis
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 GEOMETRY = XY;UV OPEN_FILE = ./foam.ngc
Find the [TRAJ] section add change to this:
AXES = 9 COORDINATES = X Y U V
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
[AXIS_7] TYPE = 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.
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 http://swarfer.co.za/rc/wire/ 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 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. I have upgraded to the new version DevWing Foam.