Genesis of the map-making idea

Hiking in the San Gabriel Mountains one day, I stopped and looked at the slopes around me. The peaks and canyons looked like a rumpled green towel. I had the vague thought that it might be possible to cut the shapes I was looking at in wood, on a CNC mill.

I had spent much of my life programming, setting up and running CNC mills, making parts for Grumman Aerospace on Long Island. Aircraft parts sometimes are strangely similar to bird bones, so I was used to cutting organic shapes -- as opposed to more geometric, more orthogonal shapes.
Cutting the organic shapes of hillsides, canyons and mountains from wood was not too different from cutting up a block of aluminum to reveal the wing strut within.

At the outset I didn't know how to get topographical data from USGS and NASA. I didn't even know it was available. I had heard from someone or I had read somewhere that elevation data was available through a public interface maintained by MapQuest. If you submitted a latitude longitude pair to Mapquest, they would send you back an elevation.
I made several maps using this method (thank you MapQuest).

The technique was crude and slow, but it was nevertheless sufficient to produce a map. I thought the maps were intriguing, with their peaks and ridges and valleys. It was a fun way to show topography and to honor a place.

The Machine

The machine is a three-axis router made by K2CNC in Orange County, CA. It is a gantry, with 24 inches of X travel, 24 inches of Y travel and 8 inches of Z travel.

K2CNC went out of business shortly after we bought the machine, about 8 years ago.

At delivery, the machine had DC brush servo motors (with encoders) installed on all three axes. We completed the machine ourselves, using a Linux CNC freeware control, running under Ubuntu. Luckily, a three-axis mill is the most common configuration for Linux CNC, so most of the default Linux CNC configuration files were already correct.




The Ubuntu installation and Linux CNC run on a Dell desktop. Access to the outside world is provided by a Vital Systems #7544 interface board that plugs into the PCI bus on the Dell. There is a wide ribbon cable from the back of the Dell to a breakout board where connections are made to the encoder signals from the motors and to the axis drive amplifiers.
There is a remote handwheel that can be used to drive the machine around in Manual mode when setting up.
The spindle motor is a #8902 Porter-Cable router motor.
The machine has performed well. It is as rigid and as fast as it needs to be. It has not lost accuracy. Linux CNC also has performed well. The user forums at LinuxCNC.org were very helpful when setting up the machine initially and later when installing the handwheel. Map programs are very long, tens of thousands of lines of G1 commands. Some controls have trouble with very long programs because the control cannot read in the whole program at once. It has to read a certain number of lines into a buffer, make them available for trajectory planning, then determine when it is time to read in more lines. The control has to do the buffering task on the fly without knowing the length of the program, without knowing the end, without knowing the execution time of upcoming lines -- while at the same time smoothly executing current commands. No small thing.

The machine is in its own insulated shed. When the machine is running, the air is filled with dust and the howling of the spindle motor.