You are on page 1of 74

CNC Hot Wire Foam Cutter

This Hot Wire CNC Foam Cutter can run from most modern computers and laptops using
Windows 10 or 11 with a USB port.
It's based on my original design with several modifications and this one works even better. If
you want to build your own then all the details are here with links to parts and resources you
need.
© 2023 Published by Keith Howlette https://rckeith.co.uk
All rights reserved. No part of this book may be reproduced or modified in any form,
including photocopying, recording, or by any information storage and retrieval system,
without permission in writing from the publisher.
Dec 2023 Version 6.0
Keith Howlette
Table of Contents
Introduction...........................................................................................................5
What’s in this eBook 6.0...................................................................................6
What’s NOT in this eBook................................................................................6
Foam Cutter Accuracy.......................................................................................6
How much will it cost?......................................................................................7
Cutting Range....................................................................................................8
Is it difficult to build?........................................................................................8
Can I buy a kit?.................................................................................................9
What tools do I need?........................................................................................9
Build Videos....................................................................................................10
Where to start..................................................................................................10
Main Parts List................................................................................................11
CNC Controller Boards......................................................................................11
Firmware.............................................................................................................12
grblHAL 32-bit Firmware...............................................................................12
Grbl 8-bit Arduino Mega 2560 Firmware.......................................................13
Marlin 3d Printer Firmware.............................................................................14
Software..............................................................................................................14
Grbl HotWire...................................................................................................14
DevCNC Foam................................................................................................15
Electronics Hardware..........................................................................................15
SKR Pico TMC2209 Drivers..........................................................................15
DRV8255/A4988 drivers RAMPS amd MKS................................................16
Connect Stepper Motors..................................................................................18
Cooling Fan and Case......................................................................................18
Power Supply..................................................................................................18
MKS Board External Drivers..........................................................................18

2
Mechanical Build................................................................................................22
Plans................................................................................................................22
Metric to Inches...............................................................................................22
Axis Definition................................................................................................23
Horizontal Carriages X and A Axis................................................................23
Vertical Carriages for Y and Z-Axis...............................................................27
Electrical Wiring.................................................................................................37
Connecting Stepper Motors.............................................................................37
Connecting NEMA23 Stepper Motors to the MKS Board..............................38
Installing the Grbl Hot Wire Software................................................................41
Configuration...................................................................................................41
Checking Axis direction..................................................................................41
Steps/MM........................................................................................................42
Calibration.......................................................................................................43
Homing/Limit Switches/End-Stop Configuration...........................................44
First Test Run......................................................................................................49
Running the sample G-Code...........................................................................49
Hot Wire Tension............................................................................................50
Types of foam.....................................................................................................51
Foam placement..............................................................................................53
The Hot Wire...................................................................................................53
How to get a good Kerf value.........................................................................54
Software to generate g-code...............................................................................57
Fusion 360 for foam cutting – Parallel cuts only............................................58
Videos.................................................................................................................61
Hot Wire CNC FAQ...........................................................................................62
How do I design a wing?.................................................................................62
What’s the biggest size wing I can cut?..........................................................62
What type of foam do I use?...........................................................................63
What type of hot wire do I use?......................................................................63

3
How do I cover foam wings or fuselages........................................................63
Using Marlin 3d Printer Firmware......................................................................64
Hardware requirements...................................................................................64
Software required to compile and upload the firmware..................................65
Compiling the firmware..................................................................................65
Drivers and Connections.................................................................................67
Configuration...................................................................................................68
Testing the Hot Wire.......................................................................................72
Dry Run...........................................................................................................73
First Cut...........................................................................................................73

4
Introduction
This eBook contains all the information you’ll need to build your own 4-axis USB Hot Wire
CNC foam cutter for approximately $200(US).

The eBook is updated quite often with new information and user feedback so do check on
the website for updates.

I’ve built many flying wings and a few scale models with foam fuselages using a Hot Wire
CNC foam cutter.

Here’s a few I’ve made.

Why would you want to use a hot wire CNC machine to make wings or fuselages? Surely
it’s cheaper to buy foam models than building with a CNC machine.

Yes, it can be to start with but some of the big EDF jets made from foam can be quite
expensive. I’ve seen a few crashes beyond repair at my flying club. The first flying wing I
built with the machine flew fantastic until I crashed it, well I crashed it a few times but the last
one was its final. So power up the machine and cut some new wing cores and I was back in
the air in a few days. The pictures above show that new wing. I made a video playlist
showing the full process here

Another reason is to build models that you can’t buy or if you could they would be very
expensive. I enjoy researching and designing my own and there's some very good software
you can use now. Learning how to use a CNC machine has been great fun and I’ve made
many friends all over the world helping them out.

5
Warning you may get the CNC disease, I did. Once I had my foam cutter working and made
a few models I wanted a CNC Router, then a 3d Printer and a Vinyl Cutter. I have them all
now. I can justify this because I don’t buy RC model aeroplanes anymore. Nothing against
them I just prefer to make my own.

What’s in this eBook 6.0


● This e-book is accompanies the new software and firmware I released in Nov 2023. The
Windows software is now called Grbl Hotwire using XYZA axes letters

● Full instructions showing how to build the machine

● An updated mechanical design from my original. I’ve made several modifications to


make the build simpler. The new design is lighter and intended to be run with stepper
motors and controllers used in 3d printers. You can still use other stepper motors and
controllers if you wish.

● Links to the plans for the mechanical build. Full-size templates for all but 2 parts of the
build. There is a small charge for the plans.

● Electronics installation and configuration

● How to use the Arduino Mega 2560 with a RAMP 1.4 board including the MKS Gen L
V1.0 and V2.1 (Comined Arudino Mega 2560 and RAMPS is one board)

● How to use newer 32-bit boards running grblHAL

● Using Marlin 3d Printer Firmware instead of a PC.

● Part list required to build the machine. If you’re unsure then just drop me an email with
the parts you are considering and I’ll take a look for you.

● Foams and Hot Wires used. Calculating the Kerf Value.

● G-code Generation update with several software options

● I’ve removed the section for using the old parallel port interface in this eBook. Details
can still be found on the website.

● Tips for builders in the USA where some metric parts are not economically available and
with inch equivalents that can be used.

What’s NOT in this eBook


I’ve removed the sections that are not very relevant in 2023 as follows
1. Using Mach3 and LinuxCNC with a parallel port computer.
2. Compiling the Arduino Mega 2560 firmware. The firmware can be uploaded
to the board pre-compiled. Any setting changes are through grbl $ settings.

Foam Cutter Accuracy


Sometimes guys ask about the accuracy of a CNC foam cutter using threaded rods for the
lead screws and drawer slides for the linear motion. Which I can understand. Well, the
accuracy required for CNC foam cutting isn’t the same as needed for a CNC router. But I
6
still get very good results when I compare the cut parts with the scale drawings. I’ve overlaid
cut parts on top of drawings and it's always been a perfect fit to the naked eye. See my
video here where I show how accurate it can be.

How much will it cost?


This is probably the most important consideration because it is a bit of an investment, but
worth every penny in my opinion.

The majority of the cost will be the CNC controller, stepper motors and power supply.
Software is also another consideration. There is free software for generating the g-code and
I’ll cover these in this eBook.

I use the software that I’ve purchased which is more comprehensive but I would suggest
starting with the free software first which is fine for simple wings and then upgrading to paid
software as you progress.

Working on average prices in 2023 if you had to purchase everything except the PC/Laptop,
then I should budget for around $200 (US) £160 (UK) €180 (EU) for the hardware, but you
may be able to do it for less if you have some suitable parts and materials already. A lot of
guys have repurposed old 3d printer parts.

Some builders in the USA have said some of the metric parts used in this design such as
threaded rods can be quite expensive. This eBook includes imperial alternatives that can be
used.

Don’t go crazy on expensive hardware for your machine, unless you want to. Software is
where you will get the most benefit. Generating g-code for your wing or fuselage is where
the paid software excels.

The cost of my original machine has been cut by about 30%. It won’t take you long to
recover this once you have built a few models. It's a real buzz when that wing core reveals
itself from the foam block for the first time.

Some of the big EDF foamy jets can cost two to three times that, and yes they look fantastic
and sound great. But if you crash your design made with this machine you can repair it with
some new parts or just make a new one for the cost of some foam.

I had an EDF Phantom F4 which I purchased several years ago. It flew great and looked
good. But one day I lost control and just found a load of foam pieces when I got to it. That
was a £130 model gone.

When you fly something you’ve built and it flies well there’s no better feeling in my opinion.
It's been great fun learning CNC and this makes the hobby even better for me.

STOP! Read this before building


Please check the g-code generation software before building your machine. There aren’t
that many programs available for CNC foam cutting being a bit of a niche hobby.

I’ve had several guys contact me who have a design in a CAD program, typically Fusion 360
and want to export from that into the g-code generation software. You may find your design
can’t be done in the free software and you will need to add software purchases to your
budget.

7
So please try the free and demo version of the g-code generation software with your
intended designs before you commit time and money to build this machine.

There is a section in the eBook covering G-code generation software.

Cutting Range
The vertical travel is 350 mm (13.5″) and the horizontal is 550 mm(21.5″) using 450 mm and
750 mm threaded rods. You can use a longer threaded rod on the horizontal axis up to 1000
mm if needed but you will also need longer drawer slides. The maximum with longer drawer
slides is 700mm (27.5”). I have 2 sets of threaded rods and just swap to the longer rods if
the design requires it.

The distance between the carriages can be set quite far apart. I have used up to 1000 mm
with good results. My current setup is about 750 mm or around 30 inches. But the hot wire
may need more power depending on the type of wire you use. The MKS Gen L board can
use 24 Volts which may be better on larger wingspans. If you intend to go more than
1000mm/40 inches then the MKS board with a 24-volt power supply is a better option.

Swept-back wings can present a problem but you can produce larger sweep backs than the
machine can travel. We do this by aligning the trailing edge to the hot wire and then cutting
the root and tip afterwards to the correct angle. I did a video on this some time ago showing
how to do this. Here

Is it difficult to build?
No, if you are reasonably practical then you have all the skills you need. Don’t be put
off by the electronics. It can look a little daunting but if you follow this eBook and the video
series you have all the information you need. If you do need help, reach out to me at
hotwire.cnc@gmail.com and I’ll get back to you with some answers. I get quite a lot of
questions from all over the world asking for advice and recommendations on parts to buy.

Here’s a picture of all the parts you need to build the machine.

8
Can I buy a kit?
Yes, if you don't want to do all the cutting and sourcing the parts.

Check the website here for the latest offerings https://rckeith.co.uk/hot-wire-cnc-


foam-cutters-you-can-buy/
You can still follow the software section of this article as well because as you’ll find out, and I
speak from experience, this can be the most challenging part. But don’t be put off, my article
will have you making wings and other projects in no time.

What tools do I need?


The new design is built using 12 mm MDF except for one part which uses 18 mm MDF. I'd
recommend using a moisture resistance board usually labelled MR-MDF, but any 12 mm
stable wood can be used. I have a cheap table saw that I used to cut most of the bigger
parts and then used a circular saw to cut some of the smaller parts. So nothing too fancy,
you may already have everything. Just general wood/metalworking tools and some good
wire strippers.

To save yourself time and some expense take the cutting list to the local DIY store and get
them to cut all the parts. My local store does this and you only pay for what you need and
you’ll get them cut to the correct sizes with nice square cuts.

If you have a pillar drill it's very useful and ensures holes are drilled square. Lots of holes in
this design. I’ve used cross dowels to join the major parts and these are available at most
DIY stores. Sometimes called furniture bolts. Mine are M6 cross dowels with socket/Allen
key heads, link in the parts list. There is a drawing in the plans for a jig to align the cross
dowel and bolt. There are a few screws used to hold down the drawer slides.

You will also need a PC or laptop to send the g-codes to the Arduino Mega 2560. Any
modern computer will be fine with a USB interface. For this build to use the controller
software it needs to be a Windows machine. I’ve only tested the software on Windows 10 so
I can’t confirm if it works on older versions.

Build Videos
The build videos are here on YouTube.

9
Where to start
I’d recommend starting with the electronics first to make sure all your parts are working. If
you have just purchased them it's nice to know they are all functioning correctly rather than
finding out a few weeks later and then having issues with the supplier.

We will just mock up the electronics on the bench and check everything works OK first.

Main Parts List


10
Here’s the link to Parts List. If you are building a parallel port interface version then use this
list Parts List TB6560
If you are unsure just drop me an email and I can check for you.

CNC Controller Boards


The first release of the foam cutter was based on the Arduino Mega 2560 and the RAMPS
1.4 board which works great.
You can now also use BTT SKR Pico 32 bit board with the latest firmware and software. I
would recommend using this option now. Other 32-bit boards listed under grblHAL supported
controllers should work as well. But so far I’ve only tested the SKR Pico V1.0

You can use the MKS Gen L V1.0 board which is an Arduino Mega and RAMPS board in
one unit. It has a few extra features that may be worth considering depending on your build.
The V2 board doesn’t expose pin D42 required to home the A-axis. You can still use it with a
version of firmware I’ve compiled to use pin D2 for the X-Axis MAX pin instead. This means
you can’t use the MAX travel pins, just the MIN pins for homing and then set $130-$133 for
the maximum travel. This is how I have my machine running.

●You can power the MKS and SKR Pico with a 24 Volt power supply. This will allow the hot
wire connected to the D8 connector to run at this higher voltage. If your machine uses a
very long hot wire getting it hot from 12 volts can be a problem. I’ve run up to 1 metre or
39 inches on 12 volts with no problem.
●You can use NEMA23 or bigger stepper motors connected to external drivers via the
external driver socket on the MKS board. If your machine is much bigger than the
machine described here and you have used heavier materials, then the NEMA17 stepper
motors might not be enough.
●If you have an old parallel port machine using NEMA23 stepper motors and drivers that
has just failed then the MKS board could replace it. One caveat is that you won’t be able
to use Mach3 or LinuxCNC any more.
If you build the machine as described here and on the website then the Arduino Mega 2560
and the RAMPS board will work fine, the SKR Pico is just a little easier to configure.
First check you have all the parts as listed here.

On-board drivers with NEMA17 Stepper Motors


1 Arduino Mega 2560

2 RAMPS 1.4 board


Alternatively use the MKS Gen L board, SKR Pico 32-bit

3 DRV8255 drivers x 4 or A4988 – the SKR Pico has embedded TMC2209 drivers

4 12 or 24 Volt 15-20A Power Supply

5 NEMA17 Stepper Motors x 4 1.5A per phase or less

6 USB Cable for Arduino (usually supplied with it)

7 60 mm Cooling Fan

8 Red and Black Power Supply wire to RAMPS board (16AWG)

11
9 4 Microswitches (optional)

External Drivers with NEMA23 Stepper Motors

1 MKS Gen L V1.0 or V2.0 board(see the note above)

2 TB6560 x 4 or similar separate driver modules

3 24 Volt 15-20A Power Supply

4 Stepper Motors x 4 NEMA23

5 Cables to connect the external connector to the stepper motors

6 USB Cable for MKS (usually supplied with it)

7 Cooling Fan

8 Red and Black Power Supply wire to RAMPS board (16AWG)

9 4 Microswitches (optional) Check the parts list above for full details

Firmware
grblHAL 32-bit Firmware
I’ve only tested the SKR Pico V1.0 32-bit board on the foam cutter but any supported
board running grblHAL should work fine. Please let me know if you have any issues
as I can’t test every board.
The firmware is available on the website https://rckeith.co.uk/download/grbl-hotwire-
firmware-and-software/
GrblHAL 32bit firmware upload
This is very easy set the jumpers as the picture below.

12
When you connect the board you should see an extra drive. Just copy the firmware
from the download grblhal.uf2 onto it and the board will reboot. Disconnect and put
the jumpers back in the original position
Now install gbrl HotWire windows software and connect to the port in the drop down.
If the port isn’t shown just click “ReScan” The firmware sets the driver current to 500
mAh and the micro-stepping to 1/16th. This is a safe setting and can be adjusted
later to suit your stepper motors.

Grbl 8-bit Arduino Mega 2560 Firmware


Originally I used the firmware and software developed by a user on RC groups called Daniel
Rascio. He’s made an excellent article and provided some great software and firmware.

There were some limitations with the older firmware, nothing major but Grbl is now at version
1.1 and the old version was based on 0.8c2. Use the latest version on the website which is
1.1f. Full details later in the eBook
The software is the same whether you use an Arduino Mega 2560 with a RAMPS board or
the MKS Gen L
The firmware only differs if you use MKS Gen L V2.0 board.
The firmware is now included in the latest software release for all controllers boards. This is
available on the website https://rckeith.co.uk/download/grbl-hotwire-firmware-and-software/
Check my YouTube Channel for the build videos here

Uploading Grbl 8-bit Firmware


This process is the same for both the Arduino Mega 2560 and the MKS Gen L boards.
The MKS board is just an Arduino Mega with a RAMPS board in one unit instead of two
separate boards.

13
Upload the pre-compiled firmware
Please use the instruction on the website
http://www.rckeith.co.uk/easy-way-to-upload-cnc-foam-cutter-firmware/
There you will find the downloads and detailed instructions. The upload uses a utility called
XLoader to install the firmware. This is Windows only.

Marlin 3d Printer Firmware


As of March 2022 you can now used a customized version of Marlin 2.0 firmware.
The 4-axis CNC foam cutter until now required a Windows computer to run the software to
send g-codes to the controller. Several times I have been asked if there is a way to run the
foam cutter like a 3d printer by just inserting an SD card with the g-code.
Full details are in the Appendix of this eBook

Software
The Windows software can drive 4 axes independently using the Arduino Mega 2560 based
boards or grblHAL supported boards. Which now use axes letters XYZA and not XYUZ as
the previous software

Grbl HotWire

This is the latest so ftware and is based on the older software with several user requested
features and support for 32-bit grblHAL boards as well as 8-bit. The only limitation is that it
needs a Windows computer to run the software. I’ve only tested it on Windows 10 and 11 but
it should work on older version of Windows as long as you have .Net Framework 4.8
installed

14
Wifi Coming Soon
FluidNC is a version of firmware that can run the foam cutter and will run from a web
browser over wifi. I have it running on the bench but have not tested it yet on the live
machine. Hope to have this available early 2024 running on the MKS Tinybee using the
ESP32 bit processor.

DevCNC Foam
This requires a license and is very good and there is a 7 day free trial before you commit to
purchase. DevCad includes the firmware and software in one package. So it’s very easy to
install and use.

DevCNC Foam is purpose-built for 4 and 5 axis foam cutting and will run on several
hardware configurations. It can even be used to make an old parallel port controller
compatible with USB using an Arduino. DevCNC Foam cost €95 in 2022.

It supports a rotary axis which can make some very interesting shapes. You will need to use
DevFoam to generate 5 axis g-code.

You can use g-code from many g-code generators not just the DevCad software.

One benefit is that it’s very easy to install and doesn’t require the Arduino IDE or Xloader to
load the firmware. It checks the controller board and will upload the correct version. You
can try it for free for up to 400 mm of total movement. Just enough to confirm your hardware
works OK before you purchase a licence.

Electronics Hardware
SKR Pico TMC2209 Drivers
The SKR Pico current is set in software via the settings tab with the $140-$143 press
the enter key each time otherwise the setting won’t be applied. The default value is
15
0.5 amp. Make sure you don’t leave these values at 0.00 amps. Otherwise will
supply full current to the steppers and they get very hot. I had this happen during
testing.
The maximum continuous current for the TMC2209 drivers is 2.0amps. When
choosing a stepper motor make sure you don’t exceed this. So this means NEMA17
are the best choice. Most NEMA23 phase current is usually rated above 2.0amp.
For the foam cutter, we don’t need big powerful motors because a foam cutter with a
hot wire that is cutting well places very little load on the machine My stepper motors
are rated at 0.9 amps per phase and work well even at 0.5 amps
So look for the current per phase for your steppers and just go 20% below that. The
setting in the firmware is in milliamp hours e.g. 0.9 amps is 900 mAh
Microstepping is set via $150-$153 which I have set at 1/16th. This setting works
well for 32-bit boards. A much nicer solution than moving jumpers and turning trim
pots.
To help you set the driver current I’ve created a utility on the website where you enter
the current rating of your stepper motor and the drivers you are using and the correct
VRef is calculated for you. Check the link here

DRV8255/A4988 drivers RAMPS amd MKS


Before we install the driver chips we need to set the micro-stepping. We are going to set this
to ⅛ micro-stepping for our foam cutter which gives us a little more torque than 1/16 or 1/32.
Using higher than 1/8 can place extra workload on the Arduino or MKS

Place jumpers on pins MS1 and MS2 to give 1/8 steps. The MKS is the same except on my
board they are labelled M1 and M2

16
Line up the “enable” pin on the driver with your chosen board enable pin and push in
carefully.

So before you start adjusting the current you need to know the voltage
reference(VRef) required for your stepper motors. This depends upon the current
rating of your stepper motor and the drivers you have chosen.

17
You should be able to find the current rating of your chosen stepper motor via a
Google search just type in your model. For example, a 17HS13-1334S has a current
rating of 1.33A
Both these drivers can only handle a peak current of 2 Amps so my advice would be
to choose motors of around 1.5A or less mine are 0.9A
Please check the video to show how to set the current. This link takes you to the
section in the video https://youtu.be/0GPtbG_O5g0?t=779

Connect Stepper Motors


You will see pins labelled 2A2B1A1B in front of the driver, this is where we plug the cable for
each motor. One of the sets of pins has a double row on the RAMPS board just use any
row; it doesn't matter which one. Connect the other end of the cable to the motor.

Cooling Fan and Case


Don’t skip the cooling fan when using the onboard drivers because they do get hot.

I used a 60 mm 12 Volt DC fan to keep the drivers cool over the RAMPS board and two 40
mm 24 Volt fans for the MKS. These are easier to source in 24 Volt. I just wired in parallel
to the connection shown in the MKS connection picture above. Don’t use the socket with
FAN printed on the board; this won’t work. Please make sure you install these or you can
overheat the drivers and burn them out.

I used a piece of board to mount the Arduino and RAMPS, board. For the MKS board, I
found a print on Thingiverse for the mainboard and designed a fan mount for the 2 40 mm
fans. I’ll put a link to them in the parts list.

Power Supply
A standard 3d printer 12 Volt 240-300 Watt power supply will be more than adequate for our
build with a RAMPS or an MKS board. As we won’t be using any heated bead or hot end
extruder this has more than enough power for our needs. If you want to save some money
you can use a PC ATX power supply if you have one laying around but these need a little
prep work. Here’s a video showing how to modify one. https://www.youtube.com/watch?
v=SBhlHQbUaqs

For the MKS and SKR Pico boards, we can use a 24 Volt supply which can help if your hot
wire is longer than 1000mm or 39”.

Please be very careful when dealing with mains electricity and if you are unsure get
professional help

MKS Board External Drivers


You can use external drivers as the board provides connectors to take the step and direction
signals to external drivers.

18
I ordered some 4 wire cables with a 4 pin HX 2.54mm JST Connector to plug on to the
external connector on the MKS. I then cut off the 6 pin connector and terminated the wires
with some ferrules. The TB6560 uses screw block connectors which work best with ferrules.
I’ll put a link in the parts list to the kit I ordered with ferrules and crimping pliers

The connections are as the diagrams below

19
The process is very similar to the onboard drivers. Make sure the drivers can deliver

the current required for your chosen motors.

20
Most external drivers use DIP switches to set the current and other settings.

My NEMA23 motors are rated at 2.8 Amps so I set the current on the DIP switches to
2.6A the next setting was 3A. The other switches are set to 1/8 micro-stepping and
decay to 25% and stop current to 50%
I’ve used these settings on my old foam cutter with the parallel port and it worked
perfectly for many years
Please check your documentation if you are using a different driver. These settings
worked for my drivers but you may need to check your operation and adjust to suit.

TB6600 and DM542 External Drivers


On the TB6600 and the DM542, you will probably need to leave the EN- and EN+
disconnected. I don’t have these drivers but a couple of builders have confirmed this.

21
Mechanical Build
Plans
The plans are all PDF and have been developed in Auto Desk Fusion 360 3D modelling
software. I’ve made several modifications to the original design to save weight and make it
as simple as possible to build.

***IMPORTANT***
When printing the plans for Parts B, C, E, F, G, H, I, J and K make sure your printer
setting does not say “Fit to Page” or “Scale to Fit” or something very similar.
Otherwise, you won't be able to use them as templates for the hole positions. This
does not apply to Part A and D which are too big for a single sheet of A4 or Letter size.
You may not need to print these just use the sizes given.

The design incorporates ways to adjust the alignment of stepper motors with the threaded
drive rods. We need to ensure the rods and steppers are running as true as possible to
remove any unnecessary load on the steppers. This will be covered later.

Check your stepper motors as there is usually a raised section on the mounting end that fits
into the hole on Part E. It is usually 24mm but if not and 1mm to the size and make a hole of
that size. The hole on the drawing is 25 mm and 40mm for NEMA23 steppers

Metric to Inches
If you prefer to use inches then these are the conversion to use in this build. Justin Saenz
from the USA built the machine and used the following conversions for drill sizes.
4mm (motor screws) - 5/32”
6mm – 1/4"

22
8mm – 5/16"
10mm – 3/8"
25mm – 1" Forstner
3/8” Threaded rods can be used instead of 10×1.5 mm. The M10×5 mm flexible couplers
are 0.5 mm too big. Justin used some vinyl tape to make the difference up and says it works
well. More details can be found later using the 3/8” threaded rods in the calibration section.
Drawer Slides
24” Drawer slides can be used instead of 600 mm
18” Drawer slides can be used instead of 450 mm

Axis Definition
The software we have installed on the Arduino 2560 uses XYZA for the axis letters. X and A
are horizontal and Y and Z vertical. This is important for our design software which needs
the correct letters assigned to generate the g-code. More on this later, depending on the
software there are a few ways to assign this.
I’ve had a few people contact me saying one of their axis isn’t moving on Mach3 and
LinuxCNC and it's usually their design software that doesn't match the controller axis letters.
So the g-code may refer to an axis letter that doesn’t exist, e.g. G01 X10 Y10 Z10 A10 and
we don’t have an A axis. Most g-code software has the option to change the axis letters.
Check my video How to Build a USB Hot Wire CNC Foam Cutter – Part 3 Mechanical showing
how I built mine

Horizontal Carriages X and A Axis


A cutting list is provided in the download of the plans.

Cut Parts A, B, C to the dimension and use the plan for Part B as a template to mark the
holes and drill out to the sizes shown. There are two templates for Part B depending on the
size of the stepper motor you are using. If you are going to use NEMA23 steppers use the
template Part B-NEMA23.
23
I recommend using cross dowels and barrel nuts which won’t tend to pull the fibres apart on
MDF as wood screws can. I’ve made a simple jig to get the holes for the cross dowels in the
right position. Check the video showing how I use this.

Joining Part A and B


Use Part B to mark the position for the cross dowel bolts on Part A. It should be centred on
one end of Part A. You can use the positions given in the drawing but I’d recommend
aligning Part B then marking the holes. You will find the barrel nuts protrude by about 1 mm
on either side of the MDF.

24
Adding Triangular support pieces Part C
Don’t drill any holes in Part C yet just mark the positions. I like to put a small chamfer on the
corner just so it fits a little cleaner to Parts A and B.

1 Line up Part C centred on the holes on Part B hold in position and mark the hole
with a drill bit. Use the jig to drill the holes.

25
2 Attach Part C to B with a cross dowel bolt and barrel nut. Use a square to check Part
C is perpendicular to Part A.

3 With a pencil mark the outline and remove Part C

4 Using the small template on Part C drawing, align with the pencil marks and mark the
hole centre on Part A and drill to size on the drawing.

5 Refit Part C secure and check its perpendicular to Part A. From the underneath of
Part A drill through to Part C a few millimetres to get a good mark.

6 Remove Part C and using the jig drill the small and bigger hole.

7 Now we can refit Part C for the last time and secure the two cross dowel bolts and
barrel nuts. Repeat for the second support.

Finally, check that Part B is perpendicular to Part A

Attach the stepper motor to Part B using suitable screws and some flat washers. I’ve used
M3×20 screws with a flat and spring washer. If you are using NEMA23 steppers then you'll
need some 5 mm bolts and nuts. Check your motors to make sure the screws are OK and
don’t bottom out in the motor. If so you can add some more washers or shorten the screws.
The holes are drilled to 4 mm for NEMA17 and 6mm for NEMA23, so this allows for a little
adjustment. I would advise using spring washers to stop the screws or nuts from coming
loose. It’s worth every couple of months checking if the screws are still tight.

Fitting the Drawer Slides


Align one of the 600 mm drawer slides 25 mm from the long edge and against Part C at the
stepper motor end. Secure with at least 3 screws. Do the same for the other 600mm slide,
26
but just use 2 screws initially and use one of the elongated holes in the slide. We can use
this to adjust it so it’s parallel to the other slide. When fitted the slides must be parallel to
each other.

The best way to do this is to use a vernier digital calliper and check the distance is the same.
If not, loosen the screw on the second slide and move it slightly. We’ll fit the final screw in
the slide when we attach Part G and ensure it runs smoothly

Now you have made that one we need another one. We can now move on to the vertical
carriages.

Vertical Carriages for Y and Z-Axis

These carriages have a few more parts and connect to the drawer slides on the horizontal
carriages we’ve just built. We will start with Part G and use this to mark the position of some
fixing screws on the drawer slides of Part A. It’s easier to do this first before we have the
vertical tower built on Part G

27
Attaching Part G to the horizontal drawer slides

1 Cut out Part G to the dimensions given in the plan and use the template to mark the
position of the holes. The 3 larger holes need to be recessed so the cross dowel sits
flush. See the picture below. The drawer slides will not sit flush on Part G if there is
no recess for the cross dowel socket heads.
I used a 15 mm Forstner Bit and drilled down 4 mm and then after that, I drilled the 6
mm hole all the way through

2 Make sure the drawer slides are fully closed on Part A and position Part G at the end
of the slide at the stepper motor end.

28
3 Mark through the smaller holes using a drill bit on the drawer slides. It may help to
put some masking tape onto the slides to see the drill marks easier.

4 Now on the drawer slides remove the top part of the slide, mark them first so they go
back in the same slide. There is usually a lever to push that releases the top part of
the slide.

5 Drill out the holes and then attach some 5mm pan head screws and secure them
with a nut. Some blue Loctite is best to stop the screw from coming undone.

6 Put the top part of the slide back in and make sure the screws don’t catch on the
bottom part of the slide.

7 On Part G we need to make a small recess for the nut on the drawer slide to fit into
so it is flush on Part G. Use a 10 mm drill and drill down 5mm.

8 Temporarily we will fit Part G to the slides with some nuts and washers and make
sure the slides run freely and it’s flush on the slides. If not adjust the drawer slide
with 2 screws in, this is very important to get good results from our foam cutter. Now
put the final screw in the drawer slide on Part A.

9 Mark Part G with the slides so it goes back the same way. Remove Part G from the
slides.

Attaching the 450 mm drawer slides to Part D

1 Cut out Part D to the dimensions given on the plan drawing and drill the holes in the
middle to the sizes and dimensions shown. These are used to attach the support
pieces Parts H and F later in the build.

29
2 Align the drawer slides to the bottom and long side edges and secure with 2 screws
initially in each slide.

3 Cut out Part I to the dimensions and use it as a template to mark the hole positions.
Drill the holes to the size specified on the drawing. I used some 6 mm nut inserts in
the 2 larger holes instead of T-nuts, but you can use them if you prefer.

4 Make sure the drawer slides are fully closed on Part D and position Part I at the end
of the slide where the top part of the slide doesn’t come out. Put some masking tape
on the slide to make it easier to see the drill bit marks. Make a mark on Part I so it
goes back on the same slide and drill to the dimensions.

5 Now on the drawer slides remove the top part of the slide, mark them first so they go
back in the same slide. There is usually a lever to push that releases the top part.

6 Drill out the holes and then attach some 5mm pan head screws and secure them with
a nut. Some blue Loctite is best to stop the screw from coming undone.

7 Put the top part of the slide back in and make sure the screws don’t catch on the
bottom part of the slide.

8 We need to make a small recess on Part I for the nuts on the drawer slides to sit
flush on Part I as we did for Part G. Use a 10 mm drill and drill down 4 to 5 mm.

30
9 Temporarily we will fit Part I to the slides with some nuts and washers and make sure
the slides run freely and are flush on the slides. If not adjust the drawer slides, this is
very important to get good results from our foam cutter. Now put the 3rd screws in
the drawer slide on Part D.

10 Mark Part I and the slides so it goes back the same way. Remove Part I from the
slides on Part D. Remove the slides as we will need to drill some holes in Part D that
are quite close to the slides. It will help to keep dust and wood chipping out of the
slides.

Part H Support Strut

1 Cut out Part H to the dimensions given in the plan drawing and use the template to
drill the holes to the sizes and dimensions shown.

2 Position Part H on Part D so it’s flush with the bottom of Part D and aligned in the
centre

3 Mark the hole positions from Part D with a 6mm drill bit and then remove and use the
jig to drill the holes.

4 Attach to Part D and ensure its flush

Part G Attaching

1 Align Part G so it’s flush with the front edge of Part D and centred.

31
2 Mark the position of the 3 holes for the cross dowels with a 6 mm drill bit

3 Remove Part H and use the jig and drill the 6 mm and 10 mm holes.

4 Reattach Part H and then Part G and tighten.

Stepper Motor Mount – Part E

1 Lay the template over Part E. If you are using NEMA23 then use Part E-NEMA23.
Mark all the hole positions. There are 3 slots to allow the alignment of the threaded
rod.

2 Make the slots by drilling a hole as indicated at each end. You can drill more holes in
between and then use a small file to make the slot. Or you could use a fret saw to
cut out the slot and finish with a file.

3 Drill the stepper motor holes to the sizes shown for NEMA17 or NEMA23 Part E plan

32
4 Position Part E centred on Part D check the video on how I did this, I used some
support pieces and clamps. Put a mark with a drill bit centred on the two slots. Use
the jig to drill the small and big holes on Part D

5 Attach Part E to Part D with cross dowels and make sure it’s centred and
perpendicular with Part D.

6 Cut out Part F to the dimensions shown. It may help to leave it square until the holes
have been drilled and then cut the angle after.

7 Position Part F so that it is supporting Part E and flush with Part D and clamp in
position. It should be aligned with the centre of the rear slot on Part E. Mark the
33
positions for the holes with a 6 mm and 8 mm drill bit and remove Part F. Drill the
holes with the jig. The 3 cross dowels in Part E don’t need to be fully tightened just
yet. Later we will check the alignment with the threaded rods and then tighten fully.

Parts I and J
These parts are used to attach the threaded rod to slides. Part J is 18 mm MDF because
the holes for the cross dowels are 8 mm to allow for alignment. If we used 12 mm MDF here
there would be very little material left. If you find the 18 MDF splits when drilling on the end
grain as I did use a piece of normal wood such as pine.

1 Attach the stepper motor to Part E using suitable screws and some flat washers. I’ve
used M3×20 screws with a flat and spring washer on the NEMA17 stepper. For
NEMA23 use 5 mm bolts and nuts. Check your motors to make sure the screws are
OK and don’t bottom out in the motor. If so you can add some more washers or
shorten the screws. The holes are drilled to 4mm or 6mm for the NEMA23 so this
allows for a little adjustment. I would advise using spring washers to stop the screws
or nuts from coming loose.

2 Cut out and drill the holes on Part J using the template and dimensions given.

3 Secure a 10 mm T-nut with a couple of small screws on Part J

4 Screw in the threaded rod on Part J and then place the other end into the flexible
coupler and attach Part I to the drawer slide using the 5 mm nuts and washers.

5 Attach Part J to Part I using some 6 mm T-nuts or nut inserts and bolts. We use the
movement to adjust the threaded rod alignment later.

34
Vertical Tower Threaded Rod Fitting and Alignment

You can use 8 mm lead screws instead of the M10 threaded rods, these are the same type
as used in many 3d printers. You will need the nut that goes with them as well. They are
often labelled T8 and usually have a 4 start thread. The steps/mm will need to be
recalculated. A good resource is https://blog.prusaprinters.org/calculator/ which you can use
as a starting point for steps/mm.
Some builders in the USA have said the 10 mm x 1.5 mm threaded rods are very expensive
and could they use 3/8-16 TPI, which are easily obtainable.
One builder Steve Henderson from the USA kindly updated me on his findings. I’ll quote him
word for word
“And to share with your other US customers who choose the 3/8" imperial threaded rod
(which is very inexpensive at Home Depot). The motor couplers are always metric and the
5×10mm are too sloppy for the 3/8 threaded rod. I bought additional 5×8mm couplers and
tap-threaded the 8 mm end to 3/8" thread. The 8mm hole is perfect pilot for the tap.
Threaded the rod to the coupler and the set screws hold tight. Perfect.”
Alignment is very important to ensure we don’t overload the stepper motors.
Using a digital calliper or combination square to check the distance the threaded rod is from
Part D. See the video on how I check this.
If the distances aren’t equal move the stepper motor mount backwards or forwards and
tighten the 3 cross dowels.
Now check the threaded rod is perpendicular to Part J and use the slack in the holes on Part
J to achieve this. Tighten the cross dowels.

35
The final check I do on the alignment is to turn the threaded rod by hand and feel for any
tight spots. It should move very freely with no binding. If we can move it easily then the
stepper motors won’t be stressed unduly.
Now we need to make the second vertical tower and it should go a little quicker now you
made one.

Joining the Horizontal and Vertical Carriages

1 Lift the vertical tower onto the drawer slides on Part A and secure it with the 5
mm nuts and washers.
2 Check that it slides on Part A with no tight spots with the weight. If not you
may need to adjust them again
3 Cut out Parts K and use the plan template to mark the holes and drill to the
sizes given on the plan.
4 Attach a T-nut to one of the Part K's with two small screws and screw this on
the threaded rod.
5 Pass the threaded rod through the hole on Part H and then put another Part K
on the other side. Attach to the flexible coupler.

6 Using some 6 mm bolts, washers and lock nuts attach Parts K on either side
of Part H don’t fully tighten just yet but enough to grip on to Part H but allow it
to move.
7 Now we need to align the threaded rod in the same way as we did above
using the digital callipers or a set square. Tighten the 6 mm bolts and lock
nuts and double-check the threaded rod turns easily by hand.

36
8 Now do the same for the other vertical tower and make sure they face each
other.
9 Finally, check all the threaded rods move very easily. Turn each axis to its
maximum travel and check the threaded rods can be turned by hand easily. If
there is any binding it will be more noticeable at full travel. If so then adjust
the alignment until you can move them easily. Check at the home position as
well after you’ve re-adjusted.
Well done, you’ve now made a hot wire CNC foam cutter.

Electrical Wiring
Connecting Stepper Motors
The connecting wires that came with your motors are probably too short I’ve located
the controller near the X-axis carriage which means I can use the lead that came
with the stepper motor for this axis. We need to lengthen the lead for the other axis.
The motors I used are rated at 0.9 Amps so I need a wire that can handle that plus a
little bit for safety.
For the wiring I used drag chains and Ethernet Cables which works well for the foam cutter.
If you are going to use limit switches or endstops make sure to use screened cable.

37
The Ethernet cables have 8 wires which I pair together. The cables are 24 AWG and my
NEMA17 stepper motors use the same wire gauge as well. So pairing them together will be
more than adequate. If you are going to use this method make sure you check the current
rating of your stepper motors first.

I use this method on my CNC router and the old foam cutter with NEMA23 motor rated at
2.8Amps and it always worked perfectly. Generally, the stepper motors will rarely use more
than 70% of the available current.

Connect the fan or fans to the board or power supply. Please note the MKS boards have a
socket labelled “FAN” this won’t work. It’s meant to be for a 3d printer extruder fan which is
controlled via the software. See the diagram earlier in the eBook.

Connecting NEMA23 Stepper Motors to the MKS


Board

There is a lot more wiring when you use external drivers with NEMA23 stepper motors. So I
decided to 3d print some mounts for the TB6560 drivers to securely mount them and keep
the wiring as neat as possible.

38
You will need to extend your stepper motor cables because there is quite a lot of travel on a
4-axis foam cutter. I just used terminal blocks with ferrules on the cables. My stepper motors
use 24 AWG so make sure the cables you use are at least that size or bigger.

39
Connect the stepper motor as the diagram below and ensure you set the DIP switches to
suit the motor current and 1/8 micro-stepping.

40
Installing the Grbl Hot Wire
Software
Download the latest software from the download page on the website.

Make sure you are using the version from the website
Unzip the download and click setup.exe to run it. It should open the new application if all is
well once installed.
I usually run the g-code through the application without any foam and the wire switched off
just to make sure it does as I expect. DevCNC Foam has a very good 3D simulation option
which has saved me some mistakes in the past.

Configuration
After installing the software we need to configure the settings. The default settings will set
the foam cutter up as the build on this website. But before you start testing any movement,
move each axis away from the physical stops of the machine. Disconnect the motors first as
turning the motors by hand induces a current back to the board and could damage it. If an
axis goes in the wrong direction we could ruin a flexible coupler, trust me I've done it a few
times!
To change any setting click on the settings tab and you'll see a table with all the settings.
Each of the $ settings is a value we can change on the Arduino. A full list can be found here
on the GitHub page. Make sure you are connected to the Arduino before trying to change a
setting and press the return key after otherwise the settings are not applied.

** Don’t enable homing yet make sure $22=0 **

Checking Axis direction

41
A simple option if you do find an axis going the wrong way is just to reverse the 4 pin
connector on the RAMPS board. Many thanks to Jim H from Halifax, Nova Scotia for
pointing this one out.
Just tick the box on the axis that is going the wrong way and disconnect and reconnect.

Check my video here where I cover the correct procedure including homing direction

Steps/MM
$100-103 are the values for each axis step per millimetre. The default value is 1066 for 1/8
micro stepping with 10 mm x 1.5 mm pitch thread. If you are using different lead
screws/threaded rods then this will need recalculating. A good resource is here which has a
Steps per millimetre – lead-screw driven system, calculator.
If you are having trouble getting a 10×1.5 mm threaded rod then you can use 3/8-16 TPI and
set the Steps/MM to 1007 for 1/8 micro-stepping. I’ve had a few builders in the USA that say
10×1.5 mm threaded rods are quite expensive.
Some builders have used T8 lead screws which can come in many forms. The example
below is for a T8 lead screw with a 2 mm pitch. Please check the specifications as some
lead screws can have multiple starts which alter the steps per mm. If you are unsure just
measure how far the drive nut moves in one revolution of the lead screw.

Lead Screw/Threaded Rod Steps per MM 1/8 micro-stepping

10 mm x 1.5 mm pitch Threaded Rod 1066

T8 Lead Screws 2 mm pitch 800

3/8-16 TPI Threaded Rod * 1007

* Please see this before purchasing flexible couplers for 3/8 Threaded rods.

42
If you are not using limit switches then that should be enough to get your machine working.
Do check the calibration afterwards. The video I made Part 2 Updated has the details on
how to do this. The link will take you to the correct place in the video.

Calibration
We need to check that our machine moves the correct distance when it receives the g-
codes. So if the g-code says move 50 mm we need to check it moves 50 mm. If not we
need to adjust the steps/mm in the settings page

The firmware has defaults which should be fine but may need some minor adjustments. It’s
good pratice to check it anyway

To check the calibration, place a steel rule on the X or A-axis (see pic) then make a pointer
that you can align on the rule. Set the pointer on say 300 mm and then in the Manual
Command dialogue box type G1 X100 F50 or G1 A100 F50 and check how far the pointer
has moved. If it's at 200 mm then that's correct. If not we need to adjust the steps/mm.

If you have limit switches set $20=0, $21=0 and $22=0 while you check the calibration

43
The website can now calculate this for you here
So if it moved to 205 mm on the rule and it moved 95 mm we divide 100/95 * 1066 = 1,122
we ignore the decimal part.

On the settings page, we can enter the new value for the X or A step/mm and retest the
calibration.

Homing/Limit Switches/End-Stop Configuration


Before starting this configuration make sure you have completed the section above.
Many problems with limit switches or end-stops can be attributed to not using screened
cables or providing some form of electrical isolation. Opto switches do this but require 3
wires to work, power, ground and signal.

Limit Switches Pins on the RAMPS board


I've only used the MIN switches on my foam cutter using the pin listed below with soft limits
enabled for the MAX travel. I had limit switches on my old machine for the maximum travel
but I never actually triggered them while cutting any foam. It also adds extra wiring. So using
MIN switches with soft limits gives the same result with less wiring.

44
By default, the limit switches must be wired between a ground and the following pins on the
Arduino board:

Axis Pin min Soft Limit

(X) D3 $130

(Y) D14 $131

(Z) D18 $132

45
(A) D42 $133

(A) MKS D2 $133


Version 2.

46
Limit Switches Pins on the MKS Gen L V1.0 board
SKR Pico Connections

47
Here's a quick summary of the settings to enable homing
Please read the full descriptions below as well
Setting Value Comment
$5 1 NC(normally closed)
$22 1 Enable Homing
5-25
$26 Debounce setting see below
milliseconds
$27 5-10mm Axis pull off
Soft Limits (if using 4 switches. Leave at 0 if
$20 1
you use 8 switches)

$21 1 Hard Limits

Check this
$23 Homing in the wrong direction
video
$130- Max
How far each axis can move used with $20
$133 Travel(mm)

Normally Closed Switches


The general consensus of opinion is to wire switches as NC(normally closed) and the
triggering breaks the connection. So we need to set $5 = 1, the limit switches operate in
"Normally closed" (NC) mode.

Enable Homing
To enable homing the $22 setting needs to change from 0 to 1 and it's a good idea to set
$27 to a small value say 5 or 10 mm. This pulls the axis off the switch after it has triggered. If
you leave it at 0 then you may get a false trigger.

Debounce
Sometimes you may need to change $26, the debounce setting. If you find you are getting
strange results then increasing this value may help. I had this problem when I first used
Mach3 with limit switches. Increasing this value fixed it. It's because the switches are not
triggered cleanly and this can cause problems.

Homing in the wrong direction


From software version 5.1 you can now use a simple checkbox on the settings page.
If you find the axis homes in the wrong direction then change $23. It uses the same table as
the axis direction invert mask above. So if you found X and A going the wrong way then
enter 9 in $23

Soft and Hard Limits


Soft limits is a safety feature to help prevent your machine from travelling too far and
beyond the limits of travel, crashing or breaking something. It works by knowing the
maximum travel limits for each axis and where Grbl is in machine coordinates.
Hard Limits is the same except we use a physical switch at the end of the axis
48
Only use these settings if you have Homing enabled with limit switches.
I only have 4 switches and have set soft limits to the max travel of vertical and horizontal
axes. Less wiring and I very rarely come anywhere near the maximum travel.
On my old machine I had 8 switches and I never once triggered the maximum travel
switches. But I did have some connection breaks which took some finding.
$130, $131, $132, $133 – [X, Y, Z, A] Max travel This sets the maximum travel for each axis
in mm. This is only useful if you have soft limits (and homing) enabled.
For Soft Limits using 4 switches set $20=1 and $21=1 and then $130-133 to your maximum
travel.
For Hard Limits using 8 switches Set $20=0 and $21=1 leave $130-133 set to 0.
That should get your homing with limit switches working. There are a few other settings that
can be adjusted for speed and acceleration. The default settings in the firmware works well
in my machine and are very similar to DevCNC Foam. If you need to change them do so
with caution as trying to run too fast can cause missed steps.
Gauthier has produced a very detailed wiki page on homing and limit switches so if you are
having issues not covered here please check his wiki page https://github.com/fra589/grbl-
Mega-5X/wiki/Limit-switches-and-homing

First Test Run


Before switching on, turn the threaded rods by hand until the vertical carriages are in the
middle of Part A, do the same on the vertical carriages until Part I is in the middle of the
tower. It’s a good idea to disconnect your motors while you are doing this because back EMF
can feed into the controller and damage it. This is so if you accidentally jog the axis too far
you won’t drive the rods into the stops and damage the couplers. I did this and had to
replace a few.

Connect the Arduino or MKS board to your computer and switch on your power supply. You
should find the stepper motors are locked and can’t be moved. Load the Grbl HotWire
program and connect to your controller board.

Use the jog buttons, check your axis moves OK, start with the 1 mm on the Distance panel
on the program and if it works then try the other distances. If it does, well done it’s a big
sense of achievement.

If not double-check your wiring if you did the bench mock-up test of the electronics then it is
most likely a loose or wrong connection.

Running the sample G-Code


From the plans, you have purchased or on the website, there are 2 sample g-code files. The
file clarky.nc is a simple airfoil for a straight wing. This is a good test for the new machine
which I suggest you use on some scrap foam. Don't put a large piece of foam in yet it may
take a few runs to get your hot wire temperature correct.

49
Hot Wire Tension
Spring Method
The simplest method is to attach the hot wire using a spring to keep the wire under tension.
It doesn’t need to be much and I suggest you run several tests first on some scrap foam.
Works well in most circumstances but can add too much tension for swept wings. It your cut
have very little sweep angle then this is a good choice.

Bow Method
Another option is to use a bow that is guided by the foam cutter and all the tension is in the
bow. This is a good option but you will need to support the bow and have enough room for
it. I now us the bow method which work well and avoids any tension on the carriages. I’ve
had the odd occasion when the wire has snapped because the carriages were cutting a
swept wing. Too much tension on the wire.

Pulley Wire Tension Method


Sometimes the spring method doesn’t work well especially if the wire needs a large angle to
complete the cut. For example a highly swept-back wing or a fuselage section.
I came across this issue making my T45 Goshawk fuselage especially around the canopy
section where the angle of the wire was steep and the carriages had to be close together.
The spring can be extended too far and puts a lot of strain on the machine. So instead of
using a spring, I a pulley and weight system. There is about 1 kg or 2 pounds of weight on
the wire.

50
The tension on the wire now is consistent and doesn’t matter what angle the wire is at.
The only issue with this method is that it can be tricky to set up to allow for all movements. I
abandon this method.
I don’t use the pulley method anymore since converting to a bow

Types of foam
I use polystyrene and XPS foam designs. It’s readily available at most DIY stores and cuts
well with the foam cutter.
XPS foam is denser and cuts well and sands easily. I’ve used this on several of my builds.
When sanding the dust particles can be an irritant, so wear a mask and have good
ventilation.
EPP foam is a popular choice for commercial models, especially flying wings. But as yet I
have never used it on the foam cutter. It’s not easy to source at a reasonable cost in the UK
so that's another reason why I haven’t tried it yet.

Adding strength to foam


My favourite method is to place a carbon spar usually 3-5mm in diameter in the wing or
fuselage and then cover it in brown paper and PVA glue. The spar holes or slots in the foam
can be designed by some of the g-code generation software. But quite often I will use a
Dremel with a tiling attachment as in the picture below.

51
52
The brown paper and PVA glue method will make a very strong wing, you’ll be surprised.
Check my YouTube channel for a video where I show the whole process. Make sure to
cover both sides of the wing at the same time. Otherwise, you can end up with a warped
wing.
After the wing has dried you can fill and sand any areas that need it. I then use a sanding
sealer or non-shrinking dope to give a hard finish, usually a couple of coats. For final
finishing, I sometimes cover with Solar Film or paint the wing. Solvent-based paints should
be OK now it's covered but be careful around any exposed area like the wingtips.
The wing below was finished in automotive white spray paint and then 3d printed parts were
added. It files fantastic

Foam placement
I place the foam to be cut on a couple of pieces of foam to raise it up. It would be difficult to
start a very low cut. I use small weights and sometimes double-sided sticky tape to hold the
foam in place. Use the jog buttons to align the hot wire with the edge of the foam then zero
all the axis.

When cutting wings or fuselages that are not straight then it’s important to place the foam in
the position specified by the g-code generation software. Quite often this will be in the centre
of the machine. If you don’t do this then the part can be smaller or bigger than you expected.
I have a cross-hair laser level that I align with the centre marks of the carriage width. This
gives a very accurate posistion.

Sometimes the software will tell how far the foam has to be from the hot wire to allow the
sweep angle to be reached. I usually allow some extra foam just in case I’m not quite in the
right position. So if the foam block need to be 500 mm x 200 mm I will generally add 10-20
mm to the width so 500×220

The Hot Wire

53
Now we come to the reason we built this machine in the first place, to control the hot wire
accurately.
After several years of foam cutting trying different wires and speeds, I’ve now settled on
using very thin wire I was using Nichrome wire with a diameter of 0.4 mm equivalent to 22-
24 AWG. But after recently receiving the Hobbild 5 axis CNC controller I’m using even
thinner wire of 0.21mm or 32 AWG wire. This works very well

I did to use my iCharger to power the wire which has a foam cutting setting. But I spent
some time working on the Hot Wire control in the older software and it worked well.

With latest software the current to the wire and feed rate can be adjusted while the job is
running. You want to aim for a small kerf (the bit thats melted) wihtout the wire dragging.
See further down on how to get a good keft value.

Don’t expect to get perfect cuts straight away. I still make many test cuts before I commit a
good piece of foam. I’m always on the lookout for scrap foam for testing and keep any
useful foam packaging for that purpose

How to get a good Kerf value


What is the Kerf? Kerf is defined as the width of material that is removed by a cutting
process. So in our case, it’s the amount of foam melted by the hot wire.
To get accurate parts we need to know how much foam is melted away by the hot wire. So
before we can ascertain that we need to run some tests on scrap foam and find settings that
will give a good cut so we only melt the minimal amount of foam without the wire dragging.
This will take a few tests with different settings. I usually leave the feed rate at 120
mm/minute and adjust the slider to around 20% and then use the override buttons to
increase or decrease the current to the wire while the job is running.
Once we have setting for our foam we can run some kerf tests. On the website, there is a
piece of g-code called kerf-test in the downloads section that will make 5 cuts in a piece of
foam.
I suggest you use a piece of foam 100 mm in length and 80 mm in height. The width can be
any length. I just used the size of the foam I purchased which was 50 mm.

54
Before you start, measure the foam as in the diagram above at “A”.
Place the foam on the foam cutter and jog the axes to very near where the foam block
bottom corner starts. Zero all the axes
Now load the g-code and switch on the hot wire, give it 20-30 seconds to reach its
temperature and run the g-code
When the g-code has finished cut the foam as in the diagram above so you have 6 pieces.
Put them together and measure the size “B”. Subtract this from the original size and divide
by 5 and that should give you a good value for the kerf setting.
If you are using free software that doesn’t have a kerf setting then you can add this value to
the length of the root and tip. Although this won’t be as accurate as software that has options
for setting the kerf it will get you close.
For wings where the root and tip have big differences in size, you will need to add a bigger
kerf value for the tip. DevWing Foam 2 has a Smart Kerf option that can calculate this based
on the wing dimensions.

Other ways to power the hot wire


Some Lipo battery chargers have a foam cut option that can be used. I did use my iCharger
206B set between 2-4 amps depending on the type of foam. Now I use the D8 connection
from the board, which works well.
Some builders use bench power supplies where they can adjust voltage and current to get
good results. Usually, they have machines with a long hot wire and it can be a struggle for
the 12 Volts from the RAMPS board to heat the wire. Up to about 1meter or 39 inches with
0.4 mm Nichrome wire is about the limit with 12 volts

55
The length and type of wire will also affect the current required so please do some tests.

The default feed rate of 120 mm per min configured in DevWing Foam 2 and DevFus Foam
works well and I just vary the power and kerf values to get a good cut. If you see the hot
wire dragging on the foam increase the power a little but not too much. The hot wire should
look straight when cutting.

56
Software to generate g-code
Now you have your machine up and running you’re probably wondering how to generate the
g-code.

Before you build your machine try to use the free programs and the demo’s of the paid
programs to generate the g-code for your intended designs.

Check the website here and a video I made (warning about 2 hours long) showing the
options for the g-code generation with some test cuts and recommendations based on your
needs.

This will help you cost out your build. Nothing more frustrating to build a great machine that
can’t make what you want.

Once your machine is built and working you’ll spend most of your time in software. I’ve had a
few builders spend lots of money on hardware and then try to use the free programs to
generate their designs. Which may or may not work. So please check the software before
building your machine. There aren’t that many programs available for CNC foam cutting with
it being a bit of a niche hobby.

The free programs are not as comprehensive as the paid versions but I do suggest starting
with these first for simple projects. It will also give you some good practice on simple
designs.

My recommendation would be to start with Wing G-code or Wing Designer and then as you
need more features upgrade to DevWing Foam. I don’t recommend Jedicut any-more
because it is not very easy to use and it's the one piece of software I get most questions
about. So that tells you something.

G-code generation software comparison


Wing G- Wing Wire Wing Jedicut DevWing
code Designer Foam2

DAT Files Y Y Y Y Y
DXF Import* N N N Y Y

Wing plan from N N N N Y


image
Kerf Settings N Y N Y Y

Wash-Out Y Y Y Y Y

Dihedral N N Y N Y

Spars N N Y Y Y
Ailerons N N Y N Y

Trailing-Edge Y Y N N Y
Thickness

57
Lightening N N N N Y
Holes
Rotate N N N N Y
Planform
G93 N N N N Y
Cutting N N Y Y Y
Simulation**

Free Y Y Y Y N ***
Windows Y Y Y Y Y
Mac Y Y Y N N
Linux Y Y Y N N

*Jedicut won’t work with all DXF formats see my post here explaining the issues. DevWing
Foam will import a DXF file for the wing plan but treats it as an image.
** You can use DevSim CNC Foam to preview the cutting of all the software here except
Jedicut which has its own.
*** DevCad who make DevWing Foam 2 as of Feb 2022 have introduced a trial of the
software. Which should give you a good opportunity to test it capabilities.
G93 is a feed mode that can help when the root and tip aerofoils are much different in size.
DevCad software uses this as the default for all G-codes. It does make the foam cuts more
consistent. Below are the options I’ve used to make all my foam projects.
I use DevWing Foam 2 to design my wings which is very good but not free. Check my
playlist here. This superseded Profili2 Pro http://www.profili2.com/ which I made many wings
with.

DevWing Foam 2 is a very comprehensive program and has many more options than
Profili2.

DevFus Foam will generate the g-code to produce the fuselage sections. Both are available
in Demo versions that are fully working apart from not being able to save the g-code.
www.devcad.com See my Hawker Hurricane build on the website

Once you become more proficient and start to want to add spars, washout, dihedral and
other options then DevWing Foam and DevFus Foam are in my opinion the best tools for the
job. You can also export to DXF and print. There is even an option to generate g-code for a
3 axis CNC router for wing ribs and former's.

If you’ve managed to build a Hot-Wire CNC machine I hope this eBook and plan if you
purchased it has helped. Please let me know how your build went and anything else that
may be useful to add to this eBook. If you need any further information or help please feel
free to contact me, always glad to help fellow enthusiasts.

Fusion 360 for foam cutting – Parallel cuts only

58
Fusion 360 is a 3d modelling software application that you can design and generate g-code
for CNC machines. It’s free to use for the hobbyist with some restrictions which I’ve never
found a problem with.
For some time I've been wondering if I could use Fusion 360 to generate g-code for a 4 axis
hot wire foam cutting. Unfortunately, AutoDesk doesn't include foam cutting in the
Manufacturing section. I've had a request in the AutoDesk forum for several years but never
received any response from them.

Fuselage g-code was generated with Fusion 360

Parallel Cuts Only

So is there any way to use Fusion for foam cutters? After some pondering, I thought if I just
copy the X and Y axis on a 3 axis router type cut to the A and Z. I could use the cutting
option in the manufacture section to generate g-code. The original Z-axis would just be
ignored.

If you are fairly handy with a text editor search and replace functions you could do this to the
g-code generated from Fusion. I did try this and it does work but is prone to fat finger
mistakes.

The cuts produced are just parallel cuts, so the A and Z just follow the X and Y path, but this
will still be useful for some foam cutting jobs. So to reduce the fat finger mistakes we need a
post processor which I will explain in the next section

59
Post Processor

In the Fusion 360 Manufacture section, you can create tool paths from the geometry you
have designed. Although g-code is pretty much universal across different CNC machines,
not all g-codes are implemented. A lot of m-codes are very much dependent on the type of
machine.
So the job of the post-processor is to make sure the codes are correct for your machine.
That's probably oversimplified but hopefully, you can see why we need them.
Fortunately, AutoDesk who make Fusion 360 has made these available to customize. Many
more can be downloaded from the HSM library, and you can even import your own.
For foam cutting, I've modified the Grbl Laser post-processor to copy the X and Y axis to A
and Z. It will also move the wire to the 0,0 position for the X and U axis. This makes sure
the wire comes out of the foam and doesn't just stop and the end of the cut.
The post-processor can be downloaded from here. The video explains how to load the
post-processor.
It isn’t clever

What do I mean by that? Because we are using 3 axis geometry to create tools
paths and converting it to 4 axes in the post-processor we have to imagine how the
hot wire will travel. Unlike a 3 axis machine which can retract its Z-axis up and out of
the material, we can't do that with a hot wire. So we need to plan our geometry
knowing where the hot wire is and how it will travel. Extra sketch lines may be
required that are not part of the model to bring the wire in and out of the foam.

60
You can see an extra 10mm line at the front of the fuselage to start the wire and end its
travel on the video. Running lots of simulations with Fusion 360 and DevSim CNC foam is a
must before you commit any foam.

Simulation is a must
Before you try any g-code on your foam cutter you must simulate Fusion 360 and after that
the free DevSim CNC Foam application. You need to ensure the wire follows the path you
expect. You may need to add extra helper sketch lines to do that.
The Fusion 360 simulation will show the paths are taken by the tool(hot wire) but still thinks
it's 3 axis. Once we post the g-code then the post-processor will convert it to 4 axis. That's
why it's important to check it with DevSim CNC Foam after the conversion.

Using the 4 axis post-processor


I've made a video series that shows how to use this. So please watch them a couple of
times before you begin. Part 1 shows how to install and use the post-processor. Part 2
shows how I make a Piper L4 Grasshopper fuselage in two parts, very similar to the FliteTest
Bushwacker. Part 3 shows the foam cutter making the parts.

Use with caution


Please use this post-processor will extreme caution. I have tested it on my machine and it
works well with my simple fuselage design. You could damage your machine if you don't run
the simulations. As I have said it's very basic and not clever but if used with these limitations
in mind it could be very useful. If you are looking for something much better than this then try
Dev Foam. I haven't used Dev Foam but have used the RC aeroplane specific versions
DevWing Foam and DevFus Foam. I have tutorials on these as well on the website.

Videos
I have several videos on YouTube all related to CNC foam cutting and other related
technologies please check them out. https://www.youtube.com/user/khowlette

61
Hot Wire CNC FAQ
I get quite a few questions from users all over the world, most asking very similar
questions so I thought I'd answer the most common here.
I also have a video answering most questions, here's a link https://youtu.be/yzCKXei0pLU

How do I design a wing?


I usually just search the internet for a drawing or image of the plane. Try searching for a 3
view drawing like this http://users.tpg.com.au/gmustang/docs/3-View.html

The next step depends on the software you use. DevWing Foam 2 can use the image and
you can scale and trace the outline. Have a look at my video here which shows the
process. https://www.youtube.com/watch?v=pjx6_OrfhVQ&t=1541s

If you don't have DevWing Foam 2, you can use other software to import the image and get
the dimensions. This video here I made several years ago shows how to use a CAD
program to scale and get the dimensions https://youtu.be/YuCkEB2kIkM?t=77

Once you have the dimension you need to decide which airfoil you are going to use.
Using the same as the real aircraft doesn't always work well with scaled models. I
only use a couple and for all my scale models I use the Clark-y which works well.
You can then use some g-code generation software like DevWing Foam 2 or one of
the free ones to create the g-code.

What’s the biggest size wing I can cut?


The two carriages are independent so can be spaced quite far apart so for straight
wings this isn’t a limit. The issue you will have is that the hot wire will be much

62
longer and will take more current to heat up and will be prone to more vibration
which can make for a poor finish.
Tapered wings are a bit more challenging as one of the carriages will have to travel
more. Profili2 Pro and DevWing Foam have an option to rotate the wing so the
leading or trailing edge is parallel to the hot wire to reduce the amount of travel. But
afterwards, you will need to cut the root and tip to the correct angle. I usually create
a full-size plan on brown paper and use this to get the angles correct.

What type of foam do I use?


I mainly use white or black polystyrene foam. XPS foam is denser and sands well but the
dust can be an irritant. Use a mask and have good ventilation. I haven’t used EPP because
it’s not easy to source at a reasonable cost in the UK.

What type of hot wire do I use?


I’ve tried several different types including MIG welding wire and guitar strings but the best
results I get are with very thin Nichrome wire about 0.21 - 0.4 mm. It needs less power and
the amount melted is very small which helps in calculating the kerf value. This is used in the
software to allow for the amount of foam to melt away. With the wire being very thin and
you haven’t got the kerf value right it doesn’t make too much of an impact on your design

How do I cover foam wings or fuselages


I’ve had this question several times and if you are new to foam building then you
may be wondering how to do this.
There are several methods but I only use two which I’ve found to be very good and
easy to apply and very strong.
Before you cover a wing make sure you have some sort of spar installed to add extra
strength. I usually use carbon tubes or on some bigger models, I use aluminium tubes.

Depending on your design software you may be able to design the spar hole or slot as part
of the cutting process. You can also use a Dremel with a tile attachment against a straight
edge to create a slot. I use this on smaller wings.

For wings, I always use brown paper and PVA glue diluted 50/50 with water. It’s just like
hanging wallpaper but on a wing. I have a very popular video on YouTube. So rather than
describe it here this video shows the whole process https://youtu.be/3rdbUe-WEk0

This makes an incredibly strong wing but one word of warning. If you cover a wing
with this process make sure you cover both sides at the same time. If you let one dry
and apply the other later the wing will be warped.
The other method I have used on fuselages is fibre-glass cloth and Poly-C. This is like
epoxy but much easier to use. It gives a very smooth finish. I covered my Hawker Hurricane
fuselage with this method and used brown paper and PVA glue for the wings. It’s the picture
at the beginning of this eBook. I have some video showing the process here
https://youtu.be/hJ7SrAIasx4

63
There are other methods such as skinning with balsa or similar woods and using
vacuum bagging but I’ve never used these as my methods described above have
always worked well for me.

Appendix
Using Marlin 3d Printer
Firmware
It needed several changes before it was usable on 4 axis foam cutting.
I’ve received a great deal of help from a GitHub member called DerAndere. I would
have really struggled without his help and would probably have given up. Many
thanks.
To make configuration changes you need to be quite familiar with compiling firmware
for 3d printers. Some settings can be changed through the LCD.
If compiling firmware seems a bit daunting to you then I would encourage you to use
the Windows-based software with the pre-compiled firmware.
It isn’t difficult to compile the firmware and there are many good tutorials online. But
if things go wrong it can be very frustrating and time-consuming.

Pros and Cons using Marlin Firmware for CNC foam cutting
Pros

 No PC required.

 It may be possible to run on 32-bit control boards.

Cons

 G93 feed mode not supported. Good for more complex designs.

 Aligning wire to foam before a cut takes a lot longer.

 Must use axes XYUV

Hardware requirements
So far I have tested this on the Arduino Mega 2560 with a RAMPS board. As yet I
haven’t tried the MKS Gen L board. But it should work as the MKS Gen L is just the
same but combined into one board.

You will also need an LCD display 12864 with an integrated card reader as well as
the parts for Grbl build. Here’s LCD I used https://bit.ly/3puo0hc

64
Software required to compile and upload the
firmware
The firmware uses Marlin 2.0.9.3 with several configuration changes to suit the foam
cutter.
To compile the firmware you will need Visual Studio Code with Platform IO and
Marlin extensions. Here is a good video showing how to install these.
https://www.youtube.com/watch?v=eq_ygvHF29I&t=304s

I won’t cover installing software because there are already several good sources for
this.
The software will run on Windows, Mac and Linux. I used Windows 10.

Compiling the firmware


Download the source code from https://github.com/rcKeith/Marlin and save it to a
suitable location on your computer.

Extract the files from the zip file and then from the File menu in Visual Studio Code
select Open Folder and select Marlin in the extracted files and your screen should
look like the image below.
Make sure Visual Studio Code looks like the screenshot below with the PlatformIO
and Marlin extension

65
Building the firmware
First, we’ll build the firmware just to make sure we have no errors and upload it in a
later step.

Click on the Marlin icon on the sidebar and then the hammer icon

Click the Build button next to the mega2560

66
If you get any errors try building again sometimes it needs to download additional
libraries which can cause an error. If you still get errors then look at the first in the
terminal window most that follow are related to that error. Quite often if you have
altered the code it may be just a simple typo or missing semi-colon.

Once you have a build with no errors then plug in your control board and click
Upload. This will detect the correct USB port and upload the hex file and then read it
back to verify it was a good upload.

Drivers and Connections


The drivers need to go in sockets X, Y, E0 and E1 don’t use Z. Make sure to align the
enable pin on the driver with enable on the RAMPS or MKS board. The driver will be
destroyed if you don’t.

67
The pin outs shown above for the RAMPS board are also used for the MKS Gen L
boards. The pin numbers are the same in both. On the MKS board use the same
driver location as above leaving the Z socket empty

The rest of the foam cutter build is the same as the Windows version so please use
the eBook, videos and posts on the website.

When you have the machine built then the configuration and checks are a little
different using the LCD.

Configuration

68
The firmware has been configured to use the same setting used in the Grbl Mega 5X
as much as possible. During my testing, they worked very well on my machine. If you
use the same design then the firmware should not need any changes.

Checking Axis direction


From the menu select Motion and Select each axis. Select the 1mm option and
move the dial in the positive direction from 0.00 to +1.00 mm. X and U should move
forward and Y and V should go up.

69
If you find an axis goes the wrong way the simplest option is to reverse the stepper
motor cable on the RAMPS or MKS board. This will change the direction. If this isn’t
possible then you will need to change the code as shown below.

To change the direction in the firmware you will need to edit Configuration. h around
line 1404 and re-compile and upload. Internally the U axis is referred to as I and the
V axis as J

Toggle true or false to reverse the direction

Homing
The firmware is configured to use 4 end-stops with the pinout show below. Please
note pin D42 is a signal pin, the pin next to it is D43 and not a ground pin. Use a
spare ground pin where the other end stops pins are located

This is the only configuration I have tested and works without any issues on my
machine. If you have issues then you will need to change the code as below if a
homing direction is reversed

70
Checking Calibration
Once your axes are moving correctly the next thing to do is check the calibration. We
need to make sure that when a g-code is received for an axis to move a specific
distance it does. To check this place a rule and make a pointer. I just used a paper
clip attached to a nut on the carriage as below.

The bigger the distance you can check the more accurate the results will be. Set the
pointer on say 300 mm and then in the Move menu select 10 mm and rotate the
71
knob to 100 mm. There is a 100 mm option but if you turn it too quickly you may
move beyond your machine limits.

Check how far the pointer has moved. If it has moved to the 200 mm mark on the
steel rule then that’s correct. If not we need to adjust the steps/mm.
The steps/mm can be adjusted from the LCD menu under Configuration ->Advanced
Settings

If for example it only moved 98 mm then we need to calculate a new value for the
steps per millimetre. Use the the website form here https://rckeith.co.uk/calibrating-
the-hot-wire-cnc-foam-cutter/ to calculate the new value.

So in our example where it only moved 98 mm the new value would be 1088. Select
the axis in the menu on the LCD screen and adjust the value with the rotary knob.
Then run the calibration check again and rerun the check again if necessary. If it’s
now correct we need to store the settings on the board. From
the Configuration Menu select Store Settings.

The steps per millimetre should be the same for all axes. It may be worth checking
them all just to be sure.

Testing the Hot Wire


72
I use a nichrome wire of 0.4 mm in diameter. This works very well for me on both the
RAMPS board at 12 Volts and the MKS at 24 volts. If you are going to place the
carriages more than 1000 mm apart then the 12 volts RAMPS will not provide
enough power. Use an MKS Gen L board with a 24 Volt power supply.

You will need to experiment with the ideal settings. Type of foam, wire and carriage
distance all have an impact on the percentage used in the menu for Hot Wire Pwr:

Test with some scarp foam just by holding against the wire. It should melt easily but
not leave a large kerf(the amount melted away). It’s a bit trial and error but worth
running some tests.

Dry Run
Use the g-code from the website here https://rckeith.co.uk/download/clark-y-test-file-
for-marlin-firmware-xyuv-axes/ run the machine without any foam and with the hot
wire the turned off.

Load the file onto an SD card and insert it into the LCD slot. From the main menu
select Cut from Media and confirm. You may find it runs too fast and misses steps or
is too slow. You can adjust the acceleration and velocity in the Advanced menu.

First Cut
73
If your dry run is good then now it’s time to test with some foam. Set your hot wire on
from the menu and run the file again. Make sure the wire isn’t dragging on the foam
which usually indicates too fast a feed rate or the wire isn’t hot enough. If all is well
yours should look like the image below.

74

You might also like