FoamCut is a software package to drive a 4 axis hot wire foam cutter.  It includes a PC GUI and firmware running on an embedded controller that connected via USB.


What is FoamCut?

This project started as a way to provide students in the M.I.T department of Aeronautics with access to a reliable and accurate hot wire foam cutter.  Several commercial software packages were evaluated but were found to have many issues with cut accuracy and usability.  Here are some of the included features:

  1. Embedded controller for driving stepper motors using COTS development board

  2. Step timing precision of 5 microseconds: no timing functionality running on the PC

  3. Limit switch inputs to protect the hardware

  4. USB connection to PC

  5. GUI control application for PC written in Java

  6. Carefully designed algorithms for kerf correction, interpolation, and step generation

  7. Automatic handling of left and right airfoils with different numbers of points

  8. Simple, human readable input text file format

  9. Support for different unit systems


Embedded Controller

A Luminary Micro lm3s811 evaluation kit serves as the embedded controller.  It provides 8 digital outputs that can drive a 4 axis motor driver board with step and direction signals and it provides 8 digital inputs for limit switches to prevent each axis from moving too far.  The firmware is written in C and developed using the CrossWorks for ARM IDE from Rowley.  It is designed for easy portability to other platforms that satisfy these minimum requirements.

  1. 32 bit processor with timers.

  2. 8 KB RAM, 64 KB Flash

  3. 8 digital inputs, 8 digital outputs

  4. 20 MHz operation



The PC software is written in Java and uses an xml based file format.  Communication with the embedded controller is done using a Virtual Com Port driver through a USB port.



  1. Prof. Mark Drela of M.I.T.

  2. Dave Robertson and Richard Perdichizzi of M.I.T.

  3. Brandon Suarez of Aurora Flight Sciences

FoamCut at Sourceforge