I’ve  now have my machine working and producing good pieces.  Its taken me a while and I had to draw information from several sources.  There’s quite a lot for 3 axis routers but when you get to 4 axis there isn’t as much.  So I decided to document my setup for my own reference and help other as I’ve had some great help from the internet.  A few sample cuts below

XPS foam wing cut with hot wire cnc

cnc test cut foam wing

As you can see from the build page  here I used the TB6560 controller and NEMA 23 steppers form China.  You see a lot negative comments about these but I must say I’ve had no issues so far.  The only thing you have to spend a bit more time on is the instructions which usually aren’t the best.  I’ve also built my machine from a lot of recycled parts to help keep the cost down and also I hate waste.  I work in IT but started out as a motor mechanic so I have both practical and computer skills.  I’ve designed it so when not in use I can dismantle it and put to one side.  I only have a small workshop, the whole setup can be pushed into a small corner when I need the space to build.

Axis configuration

I’ve had a few emails asking about which configuration I have my axis in.  So I’ve taken a picture which explains it much better than words.


Mach3 configuration

I’d recommend watching the tutorial videos from the Mach3 website http://www.machsupport.com/videos/ the first 4 are good to get you going.  Mach3 can be a bit overwhelming when you first start it up.  It has lots of options which for hot wire foam cutting aren’t always needed.  The terminology can be a bit of a challenge if this is your first time e.g. DRO , MDI  If you watch the interface video its all explained.

Mach3 will only work on a 32bit version of Windows and you need a PC with a printer port.  If your PC doesn’t have one then an add-on card can usually be used without any problems.  I use Windows XP on an old Dell GX620 ussf I got from eBay with 2GB of RAM.  Don’t use a laptop ArtSoft doesn’t recommend it due to the power saving features used on laptops, which can cause missed steps.  My PC was a fresh install and nothing else on it.  Its not connected to the internet so I have no need for anti-virus and updates.  I’ve even switched lots of unnecessary services off.   I get the g-code on by USB memory sticks.

Homing and Limit Switches

Once I had the basic of machine working I set about fitting some home/limit switches and a E-Stop (Emergency Stop)


Its wired up as this document from PDF document Limits diagram

The small 5 port ribbon connector on the controller is used to connect all the switches in series.  As I used RJ45 LAN cables with 8 wires I was  able to use the 2 of the 4 spare to get the inputs back to the controller board without any extra wires.

When the switches are wired up go to the Mach3 diagnostic screen and test that each switch lights up all LEDs as screenshot shown below

cnc Mach3 4 axis config

Mach3 is clever enough to know which axis the input relates to.   This confused me a bit a first but it works.  If you press REF ALL HOME each axis should home.   It goes  to the switch and then as it trips it reverse and comes off.  I had a problem with this to start with.  The X axis would trip the home/X – – switch and just stop.  I posted this on the Mach3 forum and within a few minutes I got some help.  Posted the config file and a guy called “Hood” had the answer after I explained what was happening to the X axis.  It was being caused by some interference from somewhere (switches were all new).  In the general config page there is a setting called “debounce” .  I put in 200 as “Hood” suggested and it work perfectly.

The switches are  for safety and returning to the same home position.  I also screw the towers securely down onto a long board to stop any spring tension on the wire from moving them.  I have a width of 44” and X travel of 16” and a Y of 11 “.

I use Mach3 to drive the machine and Profili2 to design the wing panels and generate the g-code.

Follow the manual that came with the TB6560.  If you don’t have it here’s a copy TB6560 manual

Here are my settings which are as the manual apart from the input signals

Config->Ports and Pins [Motors Output] tab

cnc TB6560 axis selection

Config->Ports and Pins [Input Signals] tab

cnc TB6560 input signals

Config->Ports and Pins [Input Signals] tab  showing E-stop on port 10

cnc TB6560 input E-Stop

Config->Ports and Pins [Output Signals] tab

cnc TB6560 axis selection


My machines is configured in inches so this set ups the soft limits (if you had no switches) and direction to home

cnc TB6560 homing and limits


You can also set up soft keys as well so you can jog the axis whit the key of you choice

With everything set up as above you should be able to jog each axis.  Press the TAB key and a windows pops up which you can use to move the axis


This was the part were I thought I would need to do some tricky maths to get the axis to move the correct distance when a command was sent.  Let me explain with and example.


G0 X1 A1 Y0 Z0

This line of code say move the X and Y axis to 1 inch from the zero setting. (G20 means work in inches).  So when Mach3 sends this to the machine it should move 1 inch.  But that also depends on the thread used on your lead screws and the number of steps the motor makes.  There is some details in the Mach3 documentation how to  do this, but Mach3 has an easier way.

First you’ll need something accurate to measure with, I used a digital vernier calliper.   Then you’ll need to measure how far the axis has moved.  I clamped a stop on the base of the X axis and make sure I can use the calliper to measure to the moving tower of the X axis.  Zero your calliper and then go to the settings page

cnc TB6560 calibration Mach3


Select Steps per Unit and then the X axis ( you can use any axis).  When the dialogue box appears and says “How far would you like to move”  enter a distance e.g. 1.0 then the axis will move.  When it stops and says “How far did the axis move? (Measure Value)”  then measure with the vernier calliper and enter the value.   Mach3 will work out the steps per unit and save you having to do all the maths.  May be worth doing this a couple of times.  For hot wire foam cutting this is good enough, but if this were a router or mill the accuracy may not be acceptable.

Hot Wire Settings and Feed (updated)

I use a iCharger 206B to power my wire and I use 0.8 MIG welding wire.  I’ve found that a feed rate of 96 works OK in the g-code.  The power to the wire depends on the foam used.  For pink XPS I use 4.1 amps, white foam a little less.  For tapered wings you need to adjust the kerf value ( this is how much foam is melted by the wire) at both root and tip. Profili2 has this option, but its a bit trail and error.

[March 2014]  I’ve now found much better results with very thin wire.  I’m using some that’s about 0.5mm and 2.6 amps on my iCharger  with a feed rate of 115 in Profili2 and DevFus Foam.  This now makes very good pieces.

cnc hot wire power supply -iCharger 206b

2 Responses

  1. Hi Keith,
    I have managed to cut my first sample cut, turns out the problem I had earlier is only some setting problem that I didn’t enable all axis, the controller I have is 5 axis.
    I did a try cut with around 2.5inch thick white foam, using awg24 (0.5) nichrome and using 2A with 14v. The result is not so good, but I am still happy that it does works 🙂 Thank you so much for the plan and wonderful explanation that you gave thru the build log, it really helps.
    I am sure the power setting I am using is too large for such thin foam, and local white foam here is less dense. Do you think I should just try bigger foam piece or another thin piece with lower wattage.

    • Hi Irwan
      Try adjusting the feed. It may be you wire is not moving quick enough. It does take some time to get right. Glad you have it working, well done.


Leave a Reply