Introduction: Build a Foamcore CNC Machine

Build a low-cost CNC machine in your kitchen, for under $120, using tools obtainable at your local art and hardware stores.

This project seeks to lower the ground floor of CNC machine construction. It utilizes foamcore - an easy to work with and cheap material - for its structural components. The most important advantage of this approach is how quickly new ideas can be implemented. Modifications can be built nearly as fast as they can be thought of because the material is so readily cut and glued. It's also very easy to repair - I shipped my first machine out to Maker Faire in San Mateo (from Boston) a few years ago and it (naturally) arrived completely crushed. Half an hour later, with the help of a hot glue gun and a few scrap pieces of foamcore, it was working as well as ever.

On the flip side, the constraints of foamcore as a material have led to mechanisms which are different than on most CNC machines. The drive system uses shafts which are directly driven by stepper motors and are stabilized using tensioned wire rope. Because the foamcore cannot be cut with high accuracy, the accuracy of the bearing system is independent of the accuracy of the foamcore.

A much more complete writeup of the project from a technical perspective can be found here:

Watch it in action!
This video shows an earlier version of the Foamcore CNC, to which some modifications have been made.

Foamcore CNC from Ilan Moyer on Vimeo.

How this Instructable is Organized
The Foamcore CNC is comprised of five categories of elements:
  1. The structure - including the top plate, back plate, bottom plate, and legs. This is built of foamcore and comprises the stationary parts of the machine.
  2. The table, which includes a set of struts and a counter-spring mechanism to help offset its weight, along with a drive mechanism. The table moves up and down.
  3. The XY shuttle and it's associated shafts, bearings, and drive mechanisms. This is the exciting part of the machine which is able to (fairly) precisely move a toolhead under computer control.
  4. The toolhead - i.e. the business end of the machine. I will show a few examples of both a pen and a ketchup dispenser, but in the spirit of how quickly ideas can be tried with foamcore, I'll leave the toolhead you design up to your imagination. In the simplest case you could just glue a pen to the shuttle.
  5. The controller. Unfortunately this would be a very long instructable indeed if I went into building a controller as well. For now I'll provide pointers to other projects, but one day in the not-too-distant future I will document a simplified version of the controller which was used in the video above.
[STEPS 1 - 2]: Materials and Tools.

[STEPS 3 - 8]: Laying out and cutting the structure.
[STEPS 9 - 11]: Laminating plastic to certain key areas of the structure.
[STEP 12]: Gluing the structure together.

[STEPS 13-14]: Laying out, cutting, and assembling the table.

[STEPS 15-21]: Fabrication of miscellaneous components, mounting the motors, and stabilizing the axes.

[STEP 22]: Building a rudamentary shuttle.

[STEP 23]: A brief discussion of the toolheads.

[STEP 24]: Relevant projects and work.

Most of the effort of creating this instructable went into the additional documentation which goes along with the step-by-step online format. These are PDF drawings attached to the relevant steps, and include information such as a visual BOM, layout drawings for each part, and lamination and assembly drawings. The complete set of drawings is attached to this intro step.

Why this Instructable?
I built the initial version of this machine several years ago as my first assignment for the MIT class "How to Make Something That Makes (Almost) Anything." Ever since, I've been meaning to publish this design so that others could experience the enjoyment which I felt as I cut and glued this contraption into existence. With the current empowering trend towards digital design and digital fabrication, the distance between our hands and what we create seems to be growing steadily. I've been immersed in a digital workflow for the past six years (both in school and professionally) and can say without a doubt that this project has brought me the most joy of anything which I've created in that time. This realization both puzzles and slightly troubles me, since it certainly isn't the prettiest or most durable thing which I've made.

The Epilog Challenge
I almost always need a deadline to push me to finish a project. In this instance, my motivation has been the third Epilog Challenge.

One thing which the experience of building the Foamcore CNC has taught me is the importance of the tools at hand. The fact that I had reliable access to a hot glue gun and an Olfa knife made it much easier to tackle this project. Similarly, having my own laser cutter at my home would help many of my projects come into existence which don't have the urgency necessary to overcome the activation energy of tracking down somebody else's laser and setting aside solid blocks of time (i.e. my personal projects).

Finally, and perhaps most exciting to me, I would like to be able to produce small volume runs of my CNC machine designs (not of the foamcore variety) upon which I could base a small cottage industry. One example is the variety of toolheads which I developed for the Fab-in-a-Box project, which are all made using laser-cut acrylic:

Step 1: Gather Your Tools

A visual glossary of tools necessary to build the Foamcore CNC is attached to this step as a PDF.

Step 2: Gather Your Materials

A visual bill of materials necessary to build the Foamcore CNC is attached to this step as a PDF. Also a sample McMaster-Carr order is attached to provide better details for the parts.

Step 3: Lay Out the Top Plate

You will need:
- 1/2" Foamcore
- Sharpie or Pencil
- C-Thru Ruler

The top plate is the key structural component of the Foamcore CNC's XY stage. By the end of this step, you will have the top plate marked and ready to cut.

Please refer to the attached PDF cut pattern while doing this step.

This step will guide you through marking the 1/2" foamcore according to the cut pattern.

Technique 1: Marking a Square.

1)  Mark along the lower edge of the foamcore at 14-1/2".
2) Similarly mark along the left edge of the foamcore at 14-1/2".
3) Align the ruler perpendicular to the left edge of the board at the vertical mark which you just created. Now mark 14-12" out into the center of the board. Just create a tick, don't draw a line yet. We are preparing to draw our first vertical line.
4) Now run the ruler from the tick created in sub-step 1 with the tick which you just created. Draw a vertical line connecting the two ticks.
5) Just to be sure, mark along the new vertical line at 14-1/2."
6) Now connect the tick in sub-step 2 with the most recent tick with a horizontal line.

You have just drawn a 14-12" square! The reason it's so many steps is to ensure that it ends up actually square and not skewed.

Technique 2: Drawing Construction Lines.

All of the dimensions in the cut pattern are what are called "ordinate" dimensions meaning that they are all relative to a common zero point. Use these dimensions to first mark ticks along the perimeter of the square. For each dimension you should mark ticks on opposite sides. This will make the lines you draw perpendicular to the edges of the square.

When you are finished, your layout should look like the second and last pictures in this step.

You will use these technique throughout this instructable.

Step 4: Cut Out the Top Plate and Table

You will need:
-Olfa Knife
-Cutting Board

The goal of this step is to cut along the lay out which you created in Step 3. The outer shape will become the top plate, and the leftover square from the middle will become the work table of the machine.

CAUTION: Be EXTREMELY careful with the Olfa knife. Cutting 1/2" foamcore requires quite a bit of blade to be exposed, so ALWAYS keep your hands out of the way.

Make sure to put the cutting board entirely underneath the layout.

We will first cut out the interior square (which will become the table), then separate the layout from the larger board of material, and finally remove the corners of the top plate.

Technique 1: Cutting an interior contour.
1) Extend the blade of the Olfa knife so that about an inch and a half is exposed.
2) Touch the tip of the blade to a corner of the contour, and apply enough pressure to break thru the upper paper layer of the foamcore.
3) Cut with a shallow depth along the layout line.
4) Now place the knife at the starting point again and plunge it down until you feel the cutting mat.
5) Make sure to keep the hand which is holding the foamcore away from the blade. I keep it above the blade.
6) Cut along the line with the blade fully plunged. I hold the blade at a pretty shallow angle which I find gives me a cleaner cut.
7) Stop cutting when the blade intersects the end of the cut line.
8) Reverse the blade and plunge it on the end point of your last cut. This will fully cut the layout line through the material. What you want to avoid is trying to cut with the blade perpendicular to the work.
9) Repeat this for the other three edges of the interior square.
10) Flip over the board and cut anywhere that the blade didn't break through.
11) Delicately press out the center piece and put it aside.

Now cut along the perimeter of the layout to remove it from the remaining foamcore sheet.

Finally, cut out the corners of the top plate. It might be difficult to keep your hands away from the blade, so be very careful and err on the side of taking multiple cuts with less force for better control.

Step 5: Lay Out the Back and Bottom Plates

You will need:
- 1/2" Foamcore
- Sharpie or Pencil
- C-Thru Ruler

Use the same layout technique as Step 3 to lay out both the back and bottom plates according to the attached PDF.

Because we are relying on the factory-square edges of the foamcore sheet to draw perpendicular lines, it would be helpful to conserve the factory-cut corners by layout out the back and bottom plates next to each other as shown.

Step 6: Cut Out the Back and Bottom Plates

There are a few trick to cutting out the back panel.

The complex-looking slot in the center of the panel can be broken into three separate rectangles. First cut out the largest vertical slots, then the smaller horizontal slot, and finally cut out the connecting material.

The two tiny notches on the top of the panel are to allow steel cables to pass. Because the part is so large and relatively square, it is safe rest it on its bottom edge and cut the slots from the top. Once you've cut the vertical sides of each notch, cut through the paper surface on each side and then pluck the notch out.

Step 7: Lay Out the Legs

This is vanilla. Make sure to lay this out on the 3/16" foamcore!

NOTE: You'll be laying out six legs, not four (as shown in the picture). The attached PDF has been corrected.

Step 8: Cut Out the Legs

A few suggestions:

Before you cut out the overall layout from the remaining foamcore, cut all of the long edges of the legs. Then separate the legs from the remaining foamcore along their shorter ends.

You might not be able to cut out the small notches in the same way as the back plate (i.e. standing them up on the table) because the legs are very slender and you don't want to be holding them with your hand beneath the blade. I would recommend cutting them laying flat on the mat. Use the same plucking technique as with the back plate to remove the notches.

REMINDER: You will be cutting out a total of six legs. I made a photographic error:-)

Step 9: Laminate and Cut Delrin Strips

You Will Need:

In this step you will be preparing the delrin strips which will provide strength and durability in key areas of the Foamcore CNC.

A cut pattern is attached as a PDF.


The first step is to laminate a length of the delrin stripping with double-stick adhesive tape. This is a "roll-to-roll" procedure, quite literally.

I conduct this procedure on a table to help keep the rolls aligned as the double-stick tape is applied to the delrin. Press the tape onto the delrin as you go. Pressing down lightly on the tape helps keep it against the table and prevents the tape from drifting upwards. If that does happen, you can tilt the delrin strip to try and track it back against the table.

You want to end up with around 200 inches of laminated strip, and there's no good way of measuring that length when it's all coiled up. What I did is to measure the diameter of the laminated coil that forms and then multiply that by pi to figure out how many coils I need to create to end up with at least 200 inches.


The beautiful thing about the delrin is that you just need to score it with the Olfa and it will easily snap very precisely along your score line. Gently score the strip past the lamination to separate it from the remainder of the unlaminated delrin.


The layouts are categorized as either full-width or split width. This part deals with the full-width strips.

Before you can begin to cut the strip to length and width, you need a square reference edge. I accomplished this by using the ruler as a square. Hold the ruler along the length of the strip and mark along the short edge of the ruler to create a line perpendicular to the delrin strip. Mark on the back of the double-stick tape for better visibility (rather than on the front of the delrin). Then score along the line and snap to get a square edge.

Now mark along the strip according to the layout, using the short edge of the ruler to draw perpendicular lines. Then score and break.


A portion of the layouts require split widths. For many of them, you won't break the full width into halves until you apply the strips later.

To mark halfway along the strip, use the fact that the ruler is see-thru to first mark and then score the strip halfway along its width.

Now mark and divide the strip into the lengths prescribed by the cut pattern.

You can split the edge strips now, but keep the longer strips full-width until you use them.

Step 10: Laminate Strips to the Top Plate

This step will deal with laminating the delrin strips onto the top plate.

To avoid confusion, separate the strips into three piles: top plate large strips, top plate small strips, and top plate edge strips.

Refer to the placement guide PDFs. The "outside surface" will receive the large strips, and the "inside surface" will receive the small strips.

BEFORE YOU START, MARK BOTH THE INSIDE AND OUTSIDE SURFACES OF THE TOP PLATE WITH THE WORDS "BACK" ALONG THE SAME EDGE. The placement patterns on the inside and outside surfaces must share a common "BACK OF MACHINE" edge.


To laminate a full strip, remove the backing and place it down according to the placement guide. Use your fingers to align the corner of the strip with its respective corner of the top plate and then press down. Keep a finger pressed against both the edge of the top plate and the edge of the strip to keep them aligned as you progressively press down along the strip. Once the strip has been fully applied, rub fairly hard along the strip to set the adhesive of the double-stick tape (it is pressure-activated.)

To laminate the split strips, follow the same procedure, except:
- Break the strip down the middle along the line that you scored in step 9.
-You will be leaving a 1/16" minimum gap between the two strips. You can estimate this gap by eye, but try to keep in consistent.
-MAKE SURE THAT THE FACTORY-CUT EDGES ARE FACING TOWARDS EACH OTHER INTO THE GAP. This will make it much easier to maintain a consistent gap.


You will notice that the strips are offset from the edges. This is to allow the top plate to be glued to the back plate and the legs. Using the placement pattern as a guide, mark these offsets on the inside surface of the back plate. DOUBLE-CHECK THAT BOTH PATTERNS SHARE A COMMON "BACK OF MACHINE" EDGE.


Break the top plate edge strips if you haven't already and apply them to the inside edges of the corners of the top plate.

Step 11: Laminate Strips to the Back Plate

Using the same techniques as Step 10, and the attached placement guide, laminate the delrin strips onto the back plate.

Step 12: Glue the Structure

Refer to the attached structural assembly guide.

We'll start by gluing narrow legs to the back plate. The legs must be positioned as shown in the attached PDF, which will require two lines to be drawn on the back plate at 1-1/2" from each side.

For each leg, run a bead of glue along the inside of the freshly drawn line, and glue a narrow leg so that it is on the inside of the line. With the glue still hot, slide the leg so that it sits flush with the top and bottom of the back plate and is up against the line (on the inside - i.e. towards the center of the back plate.) MAKE SURE THAT THE SMALL NOTCHES ON THE LEG ARE ON THE SAME SIDE AS THE NOTCHES ON THE BACK PLATE.

Glue the remaining narrow legs to the wide legs to create two Ls. Take care that the notches are on the same side.

Mount each leg to the bottom plate by first running a bead of glue along where they will sit on the bottom plate and then pressing the leg down against the plate.

Mount the back plate to the bottom plate using a similar technique.

Temporarily tape the top plate to the back plate and front legs using the green polyester tape. Then flip the machine over and run a bead of glue along the inside joints, taking care to not get any glue into the notches. You can also run a bead along the outside joint with the back plate. Once the glue sets remove the polyester tape.

Step 13: Lay Out and Cut the Table Struts

Using the techniques from prior steps, lay out and cut the table struts according to the attached pattern.

The only tricky part is the circular hole. Try cutting along the hole at least partially, then use the knife to cut an X in the hole and pry up the top paper layer. Then try cutting again. Once you've made it all the way thru in a few spots you'll be able to flip over the part and interpolate the rest of the hole from the back.

Once the struts are cut, press in a nylon bushing so that the struts are mirror images of each other (i.e. press from the left on one strut and from the right on the other.) Then glue around the joint between the bushing and strut.

Step 14: Assemble the Table

Draw two parallel lines along the machine's table (this was the removed center of the top plate), each 1-3/4" from two opposite edges.

Run an aluminum rod thru the bushings of the struts. This will keep them aligned during gluing.

Place the machine's table along an edge of your work surface so that the lines you just drew are perpendicular to the edge. Run glue beads on the inside of both lines and press the struts down onto the glue. Before the glue sets make sure that the struts are up against the lines on their inside (i.e. towards the center of the part.) The straight edges of the struts should just fit along the length of the machine table.

Step 15: Cut the Wooden Dowels

You need to cut the following quantities and lengths of wooden dowels:


A few tips:

-For the smaller diameter dowels, it helps to only pull the saw rather than push it. The larger diameter cuts faster if you push and pull.
-Don't worry about the width of the saw. Just try to center the cut on each line - the exact length isn't so important.
-You might want to strategically locate a trashcan beneath the operation.
-If you have a clamp and a real saw (rather than a pocket knife saw) the work will go faster.

Step 16: Counterspring and Table Components

This step is a bit of a hodgepodge of various tasks related to the table and its counterspring mechanism.


First, cut out the components drawn in the attached cut pattern. Note that some of them are delrin and some are foamcore, and also that some of the delrin is not laminated with double-stick adhesive.


Next, attach the laminated 1/2" x 1" delrin strips to the sides of the struts as shown in the pictures. The strips should sit the slightest bit past the start of the notch on both sides of each strut.The purpose of these strips is to act as a bearing surface for wooden dowels which will fit inside these notches.

Using polyester tape, attach the 3/16" x 2" delrin strips as shown in the picture. They should be taped to the edges of the struts with the tape only below the notch. These flexures will retain the wooden dowels that we will insert later.


Glue the 1/2" x 1-1/4" foamcore strips and the 3/16" x 1-1/4" delrin strip to the back plate as shown. Two foamcore strips should straddle the horizontal slot at the top center of the back plate on the inside. On the outside, a single foamcore strip should straddle that slot on one side and the thin delrin strap on the other. These strips will retain a 2" wooden dowel in the slit, which in turn is holding the counterspring.


Finally, we will prepare the counterspring assembly. Using the wire cutters, cut about 6" of wire rope. Loop it once around the nylon bushing and tie a knot. Then apply a bead of glue around the wire to hold it to the bushing. Tie the other end thru the hole in the constant force spring so that there is about an inch of rope between the spring and the bushing. Wrap some polyester tape around the wire. Then sandwich the end of the constant force spring with two delrin strips as shown. This will keep the spring from twisting as it extends - wait a few steps for everything to make more sense.

Step 17: Prepare the Motor Mounts

Cut out the components in the attached cut pattern. When you cut the six smaller pieces, make sure to mark the word "UP" on the same side of each because the notch is not perfectly symmetric but it is hard to tell visually which side it's biased towards.

Laminate the back of the larger plates with two strips of double-stick tape centered on the 1-1/8" hole. Then cut out the tape from the hole.

Apply tape to the uninterrupted long edge of the smaller plates as shown in the picture. You can save tape by laminating two at once and then separating them later.

Tape the notched pieces to the larger plates as shown.
Apply the small delrin pieces to the longer inside edges of the notches as shown.

You can also apply a bead of glue to the inside joints.

Step 18: Mount the Motors

CAREFULLY, apply a small bead of superglue to the shaft of the stepper motor. You must keep this glue far away from where the shaft enters the motor. Immediately press the metal spacer onto the shaft with a twisting motion and slide it until just before the shaft emerges out of the other end of the spacer. I would recommend holding the motor at a slight downward angle to keep glue from running up the shaft into the motor.

Cut a 3" piece of electrical tape and wrap it halfway around the end of the aluminum shaft. You only want about 3/8" of the width of the tape to be along the length of the shaft. This creates something of a cup, which you can then place the spacer into. Tightly wrap the electrical tape around both the spacer and the shaft. Apply another 3" strip of tape over the first one. The wiring tape acts as a flexible coupler between the motor and the aluminum shaft.

Now is a good time to strip the wires on the motors before you mount them to the machine. These wires will attach to whatever controller you decide to use for your machine (unfortunately not covered in this instructable.)

Rest one of the motor mounts on the edge of the top plate as shown, and remove the backing on the adhesive surrounding the hole. Slide the aluminum shaft thru the hole so that the shaft is in contact with the delrin strips on the top plate. The purpose of this operation is to tape the motor to the mount in a position that aligns it at the right height with the top plate. Before pressing the motor into the adhesive, try to align the shaft with the center of the hole in the lateral direction.

Repeat this procedure for all three motors. Even though they'll each be operating on a different axis, the spacing is identical between all three axes.

Step 19: Wire the XY Stage

Tight wires wrapped around the aluminum shafts ensure that the shafts are forced to roll rather than slide. The wires are tightened by hose clamps which have been broken in half.


The first step is to prepare the hose clamps:

1) Using the flathead screwdriver, fully loosen all six hose clamps. You might also want to uncurl them slightly.
2) With the pliers, tighly pinch the hose clamp within 3-4 holes of the worm gear. Then bend and unbend the clamp at the pinch point to fatigue the steel band until it snaps.


Cut six pieces of wire rope to a length of 28.5"

1)Loop one end of the wire thru the several holes in the worm-gear side of the hose clamp. Despite the picture, I would suggest feeding the wire from the bottom of the clamp to the top thru the first loop, then back thru the second and thru the first again. Feeding the cable back in this manner will keep it from loosening.

2)Lay a shaft as shown in the picture from the front of the machine to the back resting on the outside surface of the top plate.

3) Now is a good time to put two nylon bushings on the shaft. Look ahead in the pictures to see this. The key point is that the flanges are facing outwards.

4)Feed the wire as shown in the pictures:
  a) From the inside of the machine to the outside thru the notch in the right front leg.
  b) Under the aluminum shaft thru the groove in the split delrin strips.
  c) Wrap the wire once around the shaft as shown.
  d) Pass the wire back to the inside of the machine thru the notch in the left front leg.

5) Feed the wire thru the first loop in a free hose clamp end, but don't double it back yet.

6) Both edges of the top plate, where the rope wraps from the inside to the outside, will be reinforced with the 1" wooden dowels. Put these dowels in place and then stretch the cable tight to determine how much cable to feed thru the free hose clamp end. You should have just enough cable to touch both ends of the hose clamp when it's relaxed.

7) Double back the cable thru the free end of the hose clamp at this point and trim with a wire cutter.

8) Feed the free end of the hose clamp thru the worm gear as if you are tightening it. Use a flathead screw driver to tighten the clamp. You want to apply enough tension to make the wire tight, but not so much as to fully straighten out the hose clamp.


This axis needs to be mounted under the top plate with the motor on the right side of the machine. Use polyester tape to support the free end of the shaft for now. BEFORE YOU TAPE THIS END, BE SURE TO PUT ON TWO NYLON BUSHINGS WITH THEIR FLANGES FACING OUTWARDS.

Step 20: Mounting the Z Stage

Insert an aluminum shaft with a mounted stepper motor into one of the struts as shown. Then slide the bushing connected to the constant force spring onto the shaft. Finally slide the shaft thru the bushing in the second strut.

Tip the table back so that the struts are penetrating thru the back plate, and put 3" wooden dowel pins into the notches in the struts.

Lift the constant force spring upwards until it is sitting in the horizontal slot at the top center of the back plate, and lock in in place with the 2" wooden dowel.

Using polyester tape, fix the aluminum shaft to the back plate near the motor. This will keep it stationary while you put on the cables and tension them.

Install the cables and tension them. Tape back the hose clamp on the motor side to keep it out of the way of the motor mount.

Step 21: Level the Z Stage

If the Z table is not flat, you can cut a strip of 3/16" foamcore and an additional 10" square of 1/2" foamcore to create a new leveled table. Put the thin strip down and, with the new table resting on it, slide the strip towards the front of the machine until the new table looks level. Then glue the strip in place and glue the new table onto both the strip and the old table.

Step 22: Shuttle

The shuttle is what holds the upper and lower shafts of the XY stage together. We will make a very simple shuttle which you can modify later.

Cut out a 3-1/2" square of foamcore, and mark two perpendicular lines down its center, one on each side. Near the end of each line, score the top layer of paper with the Olfa knife to remove a swatch about 1/2" x 5/8" long centered on the line. Peel back the paper to expose the underlying foam. This is to give some flexibility for the bushings to sink into.

Apply a dab of glue to the top of the bushings on the lower aluminum shaft, and press the square down onto the bushings so that they are resting in the squishy recesses. AVOID GETTING ANY GLUE ON THE ALUMINUM SHAFTS.

Slide the upper bushings onto the top of the shuttle and apply glue around their sides to adhere them to the shuttle. While the glue cures lightly squeeze the two aluminum shafts together.

Remove the polyester tape holding the free end of the lower rail, and try moving the shuttle around!

Step 23: Toolhead

What you attach to the machine is up to you! I've successfully attached pens before and written with the machine, as well as a ketchup extruder (shown on an older version of the machine.)

Step 24: Electronics

Unfortunately building a controller is outside the scope of this Instructable. However the stepper motors used by this machine are very low current, and are unipolar, meaning that there are a wide range of DIY and commercial controllers available.

Other projects which could control this machine include:

- Makerbot Electronics
  You would need the motherboard and three driver boards, which totals about $205

  This is an open-source gcode interpreter.

- MakeYourBot Controller based on EMC2

- Anything based on the ULN2003. A google search will bring up tons of information.

There's even an official Arduino example which demonstrates how to control stepper motors. One day hopefully soon I will make a low-cost controller to suit the low-cost nature of this machine.

One example of a controller which I've built, and which is controlling the machine in the video, is here:

3rd Epilog Challenge

Second Prize in the
3rd Epilog Challenge

MakerBot Challenge

Participated in the
MakerBot Challenge