Details of a homebuilt CNC table for routing wood, metal

There are many pictures here. Rather than make you wait for all of them to load, you can ask for the ones you want to see. After viewing the picture, use the "BACK" button in your browser to return to this description.

Click here to see a bigger picture of the whole setup on a single table top (200K file).

I use this machine with a Macintosh. (The Macintosh computer is NOT included.) I recommend an old Mac Plus or SE. They're cheap ($50 to $100) and small and easily fit in the shop. It's nice if the computer has a hard disk, but the software will fit on a floppy drive (except for Adobe Illustrator). I do my design work on a bigger, faster Mac, then move data files on floppy disks to the Mac SE in the shop.

The basic machine can also be used from Windows if you have software. There are two ways to do this. If you have software that generates step and direction commands to the parallel port, this will drive my motor driver board (see below). My serial to parallel converter (see below) can also be used from a serial port on a PC. It runs at 19200 baud and uses a simple language to specify coordinates. You can tell the converter to go to a coordinate, and it will drive the motors in a straight line to get there. For the most part, it uses the language described at the end of this page.

The Macintosh has no parallel port, so I've built a serial to parallel converter. This Z80 computer also monitors the limit switches and steps the motors. It connects to the Mac modem port, plugs into the wall for AC, and connects to the motor driver board with a ribbon cable.
Click here to see the serial to parallel converter box.

The motor driver board provides voltage and current for the motors. It has step and direction inputs. If you use Windows, you can connect your parallel port to this part to drive the table. But you will need Windows or DOS software to design your parts and generate the step and direction data on the parallel port.
Click here to see the motor driver board.

The tool has a wooden work surface with holes drilled in it for clamps and hold-downs. The wooden surface moves in two axes underneath the router. The router is mounted in a fixture that moves up and down on a lead screw. The router support is made of 1" square solid steel bars.
Click here to see the layers of the table with lead screw, linear bearings, shaft support, and motor mount.
Click here to see the work platform and router mount.
Click here to see a closeup of the rounter Z axis.
Click here to see the end of the router mount. It can be raised and lowered or lifted off.

There is a wooden enclosure will not be shipped, but you can have it if you come to Santa Barbara. The cutting table fits inside and a glass door can be lowered to contain chips and noise.
Click here to see the wooden enclosure.

Samples of work produced
The table works great for engraving in wood or sign making. Simply type your message in Adobe Illustrator (in any font), convert the font to outlines, and use my software to translate the Illustrator file to a "cut" file.
Click here to see a fancy letter "M" cut in oak.

You can also cut shapes out of thin stock. My interest is clocks.
Click here to see a set of wooden clock gears cut with the table.

I was also planning on making a brass skeleton clock. These clocks have fancy, complex front and back plates. I bought a book on making a skeleton clock which provided full size patterns. I scanned the pattern and traced it in Adobe Illustrator.
Click here to see a wooden test pattern for the plate of a skeleton clock. Note that the cut lines form a stencil, so the plate will not come free during machining.

A brass clock would require brass gears. While the brass gear teeth would not be cut on this tool, the brass blanks for the gears would be.
Click here to see a blank for a brass clock gear cut with the table.

Another application for the tool would be to cut (engrave) clock faces in wood or brass, complete with numbers and chapter ring.

I've made some unusual mercury toys with it. These consist of a layer of white or black Plexiglas into which a complex pattern is cut with the tool. A blob of mercury is inserted into the maze, and a clear Plexiglas cover is glued on. A wooden frame is then made to contain the sandwich. It's fun to turn the thing around and watch the mercury "worm" run through the maze.
Click here to see one of these mercury toys.

Because the language for the table is so simple, you can generate files for cutting other ways. For example, I wrote a Basic program that generated coordinates for Lissajous patterns, and saved them on disk. I cut six different harmonic relationships as Lissajous patterns in squares of cherry wood, then filled the cut channels with black epoxy. Finally, I assembled the six panels into a cube. I call it the Cube of Harmonies.
Click here to see the Cube of Harmonies.

You can make dramatic signs by cutting a round bottom channel in a sheet of Plexiglas, then mounting it in a box with a light so the light shines into the edge of the Plexiglas. The cut channel lights up brightly.
Click here to see a topless chick (hubba hubba!) in lit-up Plexiglas.

One of my original applications for the table was to cut channels for inlay in wood. In this example you can see the top of a jewelry box made of Goncalo Alves with a geometric pattern of ebony inlay. Unfortunately, in this case, the ebony has faded over time (!!) and the contrast is not very great. Nevertheless, the motorized table cuts an accurate, complex pattern into which you can fit strips of metal or wood (or fill them with resin as in the Cube of Harmonies).
Click here to see the jewelry box top.

The Macintosh software
I've written a rather complete program to run the table from a Macintosh. This program has evolved over several years and represents an enormous amount of work for a single project. It allows you to translate Adobe Illustrator (version 3) files into files of type "XY". This is my own machine language that's similar to (but different from) G code.

Adobe Illustrator allows you to make measured shapes very easily. It also excels in conversion of arbitrary shapes (like a skeleton clock plate) into tool paths because you just draw or trace what you want. However, it doesn't understand cutter offset so you must draw the tool path itself. Sometimes I draw the shape I want, then draw a circle that's the diameter of the cutter I'll use. I place a bunch of these circles around the shape to indicate the tool path, then connect the center points of the circles with a line. This line is the tool path, and I convert this line to the XY file. You must delete everything but the line you want to cut. I design my shape in Illustrator, then remove all the supporting "design" lines and save a copy as an intermediate file. I translate the intermediate file but save the full original in case I want to make changes. It's not exactly a CAD program, but it serves my needs and it runs on a Macintosh.

You can't specify which direction the tool will move, though it almost always moves in the direction that you drew the line in. In other words, you can't specify conventional cutting or climb cutting except by how you draw the shape. This has not been a problem.

The first things drawn are the first things cut. If you want to specify the cutting order in a complex shape, you can make a shape cut first by moving it "to the back" in Illustrator.

Screenshot of the Macintosh Program

The right hand window shows the shape about to be cut and monitors the movement of the cutter during operation. The left screen gives you control of parameters.

  • You can view the coordinates of the tool in inches to one thousandth or in motor steps.
  • You can view the cut shape as the sequence of points that will be connected by the cutter path (Show Dots) or as a continuous line (Show Lines).
  • You can increase or decrease the screen size of the shape you will cut so it will fit in your field of view (Screen scale).
  • You can specify how many discrete points will be derived from each Bezier curve (Steps/Bezier). This lets you set the accuracy of curves. Each point will be connected by a straight line.
  • The "Point count" tells you how many total points are in the file. There is a limit of about 2700.
  • You can specify a "Tool size" so you can visualize approximately what the width of the tool path is while cutting.
  • You can set a "Depth" for the Z axis. If "Depth" is zero, the DOWN command will plunge the router to the lower limit switch. If "Depth" is not zero, the DOWN command will plunge the router that many thousandths of an inch.
  • The "Cut scale" let's you symmetrically enlarge a shape by a factor.
  • "Xmod" and "Ymod" let you skew a pattern non-symmetrically.
  • "Motor Delay" lets you define the feed rate. A larger delay is slower travel.
  • In "MANUAL" mode you can jog the table with the arrow keys at the current feed rate. The numeric keypad moves in X/Y directions, the up and down arrows move the Z axis. The coordinates at the top of the screen show you where you are.
Below the "Manual" button is a text box where you can enter direct commands to the table. These are the commands:
  • M1.03,2 = Move to absolute coordinate (1.030,2.000)
  • R1,2 = move the Relative distance (1,2) from wherever the cutter is.
  • Z100 = move the Z axis into the work 100 steps (.100 inches).
  • U = move the cutter Up to the top limit switch.
  • D = move the cutter Down by the amount specified by "Depth" or to the lower limit switch.

The FILE menu lets you translate an Illustrator version 3 file into an XY file for cutting, or load a file previously translated into the buffer so it can be cut. When the program is automatically cutting from a file, you can halt motion with the space bar and then raise or lower the cutter, or change the feed rate, and then resume cutting. You can abort cutting at any time with the ESC key.

You can also write files manually for cutting in my "XY" language. Here's a sample of the language:

    *-- Filename: 3rd - 3/32.txt
    *-- Length: 1658 steps
    *-- Depth: -21 steps

The first three lines are comments.
"CO" tells the software to interpret coordinates as motor steps rather than inches (either can be used).
"MO,0" moves the table to coordinate (0,0).
"P" tells the machine to pause until the operator hits the ENTER key.
"D" moves the cutter down into the work.
"U" moves the cutter up out of the work.

Lathe driving software
I have modified the program that drives the router table to become a lathe driver. I connected two compatible stepper motors to a Sherline lathe. To use the lathe, I remove the Z axis of the router table and set the lathe on the work platform. I unplug two table motors and plug in the two lathe motors. The same interface and Macintosh is now a CNC lathe. Profiles to be cut are drawn in Adobe Illustrator and translated to my XY format. The lathe program moves the cutter back and forth over a specified distance with increasing depth for a specified number of steps.

I will include the lathe program with the router table. You will need to motorize your own small lathe.

Click here to see a small flute turned on the lathe.
Click here to see a clock finial turned on the lathe.

Bryan Mumford
Santa Barbara, California
November 29, 1998