Bookforcnc
Bookforcnc
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.
© 2024 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.
November 2024 Version 6.2
Keith Howlette
Table of Contents
Introduction...........................................................................................................5
What’s in this eBook 6.2...................................................................................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......................................................................................................9
Where to start.................................................................................................. 10
Main Parts List................................................................................................ 11
CNC Controller Boards......................................................................................11
Firmware............................................................................................................. 11
Software.............................................................................................................. 12
Grbl Hotwire....................................................................................................12
DevCNC Foam................................................................................................ 12
Electronics Hardware..........................................................................................13
RAMPS and MKS DRV8255/A4988 drivers.................................................13
Connect Stepper Motors.................................................................................. 15
Cooling Fan and Case......................................................................................15
SKR Pico TMC2209 Drivers..........................................................................15
Power Supply.................................................................................................. 16
MKS Board External Drivers..........................................................................16
Mechanical Build................................................................................................ 20
Plans................................................................................................................ 20
Metric to Inches...............................................................................................20
Axis Definition................................................................................................ 21
Horizontal Carriages X and A Axis................................................................21
Vertical Carriages for Y and Z-Axis...............................................................25
Electrical Wiring.................................................................................................35
Connecting Stepper Motors.............................................................................35
Connecting NEMA23 Stepper Motors to the MKS Board..............................36
Installing the Grbl Hot Wire Software................................................................39
Configuration...................................................................................................39
Checking Axis direction.................................................................................. 39
Steps/MM........................................................................................................ 40
Calibration....................................................................................................... 41
Homing/Limit Switches/End-Stop Configuration...........................................42
First Test Run......................................................................................................49
Running the sample G-Code...........................................................................49
Hot Wire Tension............................................................................................49
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
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..................................64
Compiling the firmware..................................................................................65
Drivers and Connections................................................................................. 67
Configuration...................................................................................................68
Testing the Hot Wire.......................................................................................72
Dry Run........................................................................................................... 73
First Cut........................................................................................................... 73
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.
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.
● How to use the Arduino Mega 2560 with a RAMP 1.4 board including the MKS Gen L
V1.0 and V2.1 (Combined Arduino Mega 2560 and RAMPS is one board) – same
firmware for all 8-bit boards
● 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.
● 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.
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. you 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
[email protected] 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.
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.
Build Videos
The build videos are here on YouTube.
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.
Bench test the electronics and check everything works OK first. Please note you can’t
bench test homing this requires the limit switches to be installed on the foam cutter.
Main Parts List
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.
The first release of the foam cutter was based on the Arduino Mega 2560 and the
RAMPS 1.4 board which works great.
Figure 1: Arduino Mega with a RAMP1.4 DRV8825 stepper drivers
You can use the MKS Gen L V1.0 and V2.0 boards which are an Arduino Mega and
RAMPS board in one unit. It has a few extra features that may be worth considering
depending on your build.
● 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.
Firmware
The firmware is pre-compiled for the Arduino Mega 2560 with RAMPS, MKS GEN L V1
and V2 and the BTT SKR Pico(32-bit). The website now has a sperate electronics build
guide for each board. Follow the links below for the microcontroller board you are using to
install the firmware.
• Arduino Mega 2560 with a RAMPS 1.4 https://rckeith.co.uk/electronics-build-guide-
arduino-mega-2560-ramps-1-4/
• MKS Gen L V1 and V2 https://rckeith.co.uk/electronics-build-guide-mks-gen-l-v1-
and-v2/
• BTT SKR Pico(32-bit) https://rckeith.co.uk/electronics-build-guide-btt-skr-pico/
Grbl Hotwire
This is the latest so firmware 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
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
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.
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
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.
Power Supply
A standard 3d printer 12 Volt 240-300 Watt power supply will be more than adequate for
your build with any of the board. As you won’t be using any heated bead or hot end
extruder this has more than enough power for our needs.
For the MKS and SKR Pico boards, you 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
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.
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.
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. you 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"
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 you 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 you 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
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.
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 you can refit Part C for the last time and secure the two cross dowel bolts and
barrel nuts. Repeat for the second support.
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.
These carriages have a few more parts and connect to the drawer slides on the horizontal
carriages you’ve just built. you 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 you
have the vertical tower built on Part G
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.
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 you 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 you 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.
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 you need to make a small recess on Part I for the nuts on the drawer slides to sit
flush on Part I as you did for Part G. Use a 10 mm drill and drill down 4 to 5 mm.
9 Temporarily you 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 you 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.
Part G Attaching
1 Align Part G so it’s flush with the front edge of Part D and centred.
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.
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
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
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 you 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 you 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.
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. you use the
movement to adjust the threaded rod alignment later.
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 you 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.
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 you can move it easily then the
stepper motors won’t be stressed unduly.
Now you 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 you need to align the threaded rod in the same way as you 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.
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. you 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.
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.
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.
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.
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.
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 you 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 you 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 you 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 **
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.
* Please see this before purchasing flexible couplers for 3/8 Threaded rods.
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
You 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 you need to check it moves 50 mm. If not you
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 you need to adjust the steps/mm.
If you have limit switches set $20=0, $21=0 and $22=0 while you check the calibration
The website can now calculate this for you here
So if it moved to 205 mm on the rule and it moved 95 mm you divide 100/95 * 1066 =
1,122 you ignore the decimal part.
On the settings page, you can enter the new value for the X or A step/mm and retest the
calibration.
(X) D3 $130
Check this
$23 Homing in the wrong direction
video
$130- Max
How far each axis can move used with $20
$133 Travel(mm)
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.
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.
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.
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
be any length. I just used the size of the foam I purchased which was 50 mm.
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
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.
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
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
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
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.
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 you
need a post processor which I will explain in the next section
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 you 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 you are using 3 axis geometry to create tools paths and
converting it to 4 axes in the post-processor you 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, you
can't do that with a hot wire. So you 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.
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 you 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
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
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.
Cons
G93 feed mode not supported. Good for more complex designs.
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
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.
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
Building the firmware
First, you’ll build the firmware just to make sure you have no errors and upload it in a later
step.
Click on the Marlin icon on the sidebar and then the hammer icon
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.
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
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.
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
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
Checking Calibration
Once your axes are moving correctly the next thing to do is check the calibration. you 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 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 you 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 you 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 you
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.
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
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.