CNC Mill Operations

From Hack Manhattan Wiki

The controller has been replaced by an ESP32 running FluidNC. The ESP32 broadcasts a WIFI access point called "FluidNC", when you connect to this the login screen will show the controls.

Status: Operational, endstops need to be wired

Much(if not all) of the documentation below needs revision. Ideally rewritten entirely with large chunks removed and trimmed. If it is not cleaner by the end of August 2023, please annoy Luna about it until she fixes it.


These instructions have been written from the viewpoint of a Windows 10 user. If you are using another version of Windows, OS X, or one of the multiple flavors of Linux, things may be in different places and your software options may be different, but the principles will be the same.

As much as I have been able to ferret them out, I have included relevant information about the various other OSes. Since a Wiki is a participatory document, I have included places here where users of the various OSes can add the relevant data required.

There are many paths from point A to point Z. This document details a workflow that has been tested and is known to work on our present equipment.

CNC Mill Capabilities


  • Wood
  • Plastics
  • Non-Ferrous Metals


There are three dimensions of concern:

    X axis
    left to right travel
    Y axis
    front to back travel
    Z axis
    up and down travel

and each of these axes has two or three diension of concern:

    maximum - fixtures
X400 mm### mm### mm
Y228 mm### mm### mm
Zdepends on the motor and bit used. Measure after Homing All with the bit installed. Remember to subtract the thickness of your workpiece and the spoil board### mm### mm

Spindle Speed

  • Wood: 35,000 RPM fixed
  • Plastic: 0-15,000 RPM or 35,000 RPM depending on which motor is used
  • Non-Ferrous Metals: 0-15,000 RPM

Spindle speed is a factor of the material being machined and the size and shape of the bit being used. Starting point guides can be found in "Speeds and Feeds" programs and Web pages.

Collet Diameter

  • Wood: 0.25 in
  • Plastics: depends on whch motor is used
  • Non-Ferrous Metals: 1.2 mm - 3.18 mm depending on the bit-collet combination

Prepare Your Computer

To create the Gcode that will control the mill we will be using Inkscape to draw the shape and then the Inkscape extension Gcodetools to convert that shape to Gcode.

Inkscape → Gcodetools → CAMotics → SSH &8594; LinuxCNC

Will other toolchains work? Probably. But we have not tested them so have documented this one which we know does work.


Inkscape is a drawing tool much like Adobe IllustratorTM, only it is free. It produces Scalable Vector Graphics (SVG) files and can export Portable Document Format (PDF) files. It is not as finished as Illustrator but it gets the job done. Could you use Illustrator instead? Probably. But, since this known working toolchain is based on using Gcodetools, which is an Inkscape plugin, you will need to use Inkscape anyway. So, you might as well bite the bullet and create your drawing in Inkscape rather than creating it elsewhere, and then importing it into Inkscape so that you can use the Inkscape Gcodetools extension to create the Gcode file.

I have used SketchUp to design 3D prints, an adative Gcode process, so I don't see why it could not be used to create the Gcode needed for controlling the mill, a subtractive Gcode process.

Autodesk® Fusion 360TM is another viable option. It has the disadvanatage that it is cloud based so you can only use it in places where you have Internet access.

Install Inkscape

  • Download Inscape from <a href="http"></a>
  • Click the installer to begin the Inkscape install.
    Usually the default settings work fine but if you are a power user you might want to tweak things.
  • Launch Inkscape
  • In File > Document Properties
    • Edit the following settings:
      • General > Display units : mm
      • Custom Size > Units: mm
      • Custom Size > Width: 400 mm
      • Custom Size > Height: 280 mm

Install the Gcodetools Extension

  • Download the Gcodetools extension from <a href=""></a>
  • Decompress the archive and copy all of the files to the Inkscape extensions directory.
    Do not nest the extension files in their own subdirectory.
  • Windows
    C:/Program Files/Inkscape/share/extensions
    OS X


CAMotics' raison d'être is to let you visualize what your mill will do before you tell it to go and do something that might be destructive to itself, your workpiece, and/or you. Its capabilities are a bit limited as everything is shows you is predicated on the toolpath it reads from your Gcode, so it knows nothing about the size and shape of your workpiece or the location of holddowns that may be in the path of the tool.

Remote Connection to the CNC Mill Controller

To connect to Linux on the BeagleBone Green controlling the CNC mill we will be sing our laptop to establish an SSH connection with PuTTY and using Xming to visualize the X11 windows of the Linux install. We will also use WinSCP to copy the file from the Windows machine to the Linux box. There are other SSH clients and file copy programs that will do the same thing, but unless you already have them installed and are familiar with their use, I would suggest you use this toolchain, which is known to work.

Windows → SSH>PuTTY + Xming → WinSCP → BeagleBone


Install PuTTY
  • Download PuTTY from <a href=""></a>
  • Click the installer to begin the PuTTY install.
    Usually the default settings work fine but if you are a power user, you might want to tweak things.
  • Launch Putty
  • Create and save a connection profile:
    • Host Name (or IP address): cnc.local or cnc.lan
    • Port: 22
    • Connection Type: SSH
    • Category > Connection > SSH > X11
      • X11 forwarding: Enable X11 forwarding (checked)
      • X display location: localhost 0.0
      • Remote X11 authentication protocol: MIT-Magic-Cookie-1
    • Category
    • Save

Install Xming

Install WinSCP



  • SSH (Secure SHell) is included in a Linux install, but being a Linux user you already know that. You will use it in place of both PuTTY and WinSCP to both log into the BeagleBone, and to copy your Gcode files to it.
  • X11 (X Windows) is also included in a Linux install and will display the LinuxCNC GUI in the SSH connection.


I have found Web postings indicating that this works but I have not gotten it to work yet. But then I am not the brightest LED in the array when it comes to these things.

=====Install ConnectBot=====
  • Download and install this program from the Android Play store.
=====Install Xvnc=====
  • Download and install this program from the Android Play store.

The program description indicates that this will both log you into the BeagleBone and will show you the X11 GUI windows.

 =====Install iSSH=====
  • Download and install this program from the iTunes store

Create Your Gcode

We will use Inkscape to draw the shape of the object we want to cut on the mill and will then use the Inkscape Gcodetools extension to generate the required Gcode. I will assume here that you already know how to use Inkscape and will only deal with the part about using the Gcodetools plugin to create the Gcode file. If you need instructions on using Inkscape search for any of the excellent (and some not so excellennt) tutorials on the Internet.

Convert Your Object to a Path

  • Select the object(s) to be acted upon.
  • Path > Object to Path

Add Orientation Points

  • Extensions > Gcodetools > Orientation Points
  • Edit Z depth to the depth at which the path will be cut.
    Depths should be expressed as negative numbers in mm.
    • e.g. A 3mm deep hole would be written as -3.00000
      The entire path will be cut to the same depth. To cut paths of multiple depths you will need to create multiple Tool Paths and from them multiple Gcode files using a different Z depth in the Orientation Points of each file. This can probably be accomplished using layers but I haven't had a need to figure the procedure out yet.
  • Apply
  • A pair of orientation points will appear at the bottom of the Inkscape page in the format:
  • (0.0; 0.0; 0.0) (100.0; 0.0; -3.0)

    These points we be used to create the relative positional references (mill offsets) for the mill. I Like to use the lower left corner of my workpiece as the touch off point ( so I move the control points to this location on my inkscape drawing.

Define a Tool

  • Extensions > Gcodetools> Tool Library
  • Select a tool type and Apply.
  • A colored box will appear beneath the Tool Library dialog box.
  • Close the Tool Library dialog box.
    • Click the close button at the bottom of the dialog
      if you are feeling particularly energetic, move your cursor all the way to the top of the dialog box and click the X at the right end of the title ribbon.
  • Select the colored box and drag it somewhere convenient where it does not obstruct your drawing. I usually put mine beneath the Inkscape page boarder adjacent to the Orientation Points. However, I have not found it to matter where you put it as long as it is on the layer where your path is.
  • Use the Inkscape Text tool to edit the diameter line of the Tool box and enter the diameter of the tool you will be using in mm.

Create a Tool Path

  • Extensions > Gcodetools > Area
    Will cut everything out of the defined path, e.g. will cut oout a circle as opposed to cutting out just the border of the circle.
  • On the Area tab adjust Area Tool Overlap as necessary.
    Valid values are 0 - 0.9 and represent the % of the tool which will be over already removed material.
  • On the Fill Area tab set Filling Method to either Zig zag [that is the way they spell it in Russia so I didn't change it so you won't get confused when looking at the dialog box options] or Spiral as seems best.
  • Select the path you want to turn into a toolpath.
    You can leave the Area dialog box open while making this selection.
  • With either the Area or the Area Fill tab selected, press the Apply button.
  • A notification box will appear saying something about the program working.
  • The notification box will close and the toolpath will be drawn in blue inside the path you had previously selected.
  • Troubleshooting
    Things to check if it doesn't work:
    • Are your control points on the same layer as your object path?
    • Is your tool definition box on the same layer as your object path?
    • Did you remember to edit the tool diameter in the tool definition box?

Create the Gcode

  • Extensions > Gcodetools > Area
  • On the Preferences tab:
    • You will have to edit the Directory item as the default value is to place the generated file in the /home directory of a Linux machine.
      I have found that Gcodetools has trouble with my nested directory file structure and have found that placing the file on my desktop works best (/Users/[username]/Desktop).
    • Edit File to give the saved file a name you will recognize.
    • If the Add numeric suffix to filename is checked, each time you create a Gcode it will have a serial number appended to the filename. This can result in having a directory full of versions of the same file but it might save your bacon if you trash the file but one of the older versions works.
    • Set units to mm.
  • Select the blue toolpath you created in the last step.
  • Open the Path to Gcode tab and click the Apply button
  • A notification dialog should appear saying something about the machine working on the conversion.
  • When the dialog closes, check the location on your computer where you told Gcodetools to save the Gcode file and it should be there.
  • Troubleshooting
    Things to check if it isnt working:
    • Are your control points on the same layer as your tool path?
    • Is your tool definition box on the same layer as your tool path?
    • Did you remember to edit the tool diameter in the tool definition box?

Verify Your Gcode

  • Launch CAMotics.
  • File > New Project
  • In the aptly named Dialog dialog box
    • Set Units to Metric (mm).
    • Set Tool Table to Empty.
  • File > Add File
  • In the Create new project or add NC files dialog
    • Select G-Code File
    • Press the OK button.
  • In the New GCode file dialog, browse to the location of your Gcode file, Select the file and click the Open button.
  • Right-click in the Tool Table area and select New Tool from the context menu.
    • In the Tool Editor dialog box
      • Edit Number.
        Every tool has to have a unique number between 1 and 999. Since your Tool Table is empty, it does not matter what number you assign to your tool.
      • Edit Units to mm.
      • Edit Shape to the shape of the mill you will be using.
      • Length can be left unchanged.
      • Edit Diameter to the diameter of your bit in mm.
      • Click the Save button
      • CAMotics will use whatever tool is at the top of the list in the Tool Table, but since you started with an empty list, and have only added one tool, that should not be an issue. If you did not set Tool Table to empty in the Dialog dialog box, and have multiple tools in the Tool Table list, delete all the extra ones until your tool is at the top of the list. I have not found a way to rearrange the list, so find it easiest to start with an empty list and add my one tool to it.

  • Press the black, right-pointing triangle to start the simulation.
  • Use the double right-pointing and double left-pointing arrows to respectively increase and decrease the speed of the animation.

You can also use an online Gcode verifier such as the one at <a href=""></a> .

Prepare the Mill

To some this section might seem out of place, but my feeling is that when dealing with power tools, everything that can be done before the machine is plugged in should be done.


Fixtures are anything used to hold the workpiece in place on the mill's cutting bed.

Types of Fixtures

Step Block Pairs
  • secure
  • multiple sizes and adjustable heights for all thicknesses of spoil boards and work pieces
  • can be fiddely to install until you get used to them
  • sit above the top of the workpiece and can be in the way of tool movement.
  • can leave an impression in wood of clamped too tightly
Incra Clamps
  • secure
  • easy to use
  • tall studs so they can hold thick workpieces.
  • high profile restricts areas of the mill cutting bed where they can be used so they aren't in the path of tool movement
  • if clamped too tightly they can dent the workpiece
Double Stick Carpet Tape
  • fairly secure
  • easy to use
  • can hold any thickness of material while hardly adding any thickness to it
  • below the level of the workpiece so can't get in the way of tool movement
  • when pealed off wooden workpiece it may pull up the grain of the wood
Hot Glue
  • secure
  • can be used to hold any thickness workpiece without adding much height to it
  • below the workpiece so can't get in the way of tool movement
  • will start to congeal as soon as it contacts the substrate and lumps may form that prevent the workpiece from sitting parallel to the mill cutting bed
  • it may not go on in an even thickness bead depending on pressure applied to the gun trigger at any given time and may not spread to an even thickness when the workpiece is pressed in place, so the workpiece may not be parallel to the mill cutting bed and your cut may not be made to a uniform depth
  • when removed it may damage the surface of the workpiece
Fixture Placement
  • Four things need to be taken into consideration when mounting the fixtures:
    • Vertical clearance
      The entire mill cutting bed is going to move forward and backward on the Y axis. Any attachments mounted on the back 2/3 of the cutting bed need to be short enough to pass unimpeded under the lowest X axis bar at the back of the mill.
    • Edge clearances
      The Y axis Home switch is mounted in the front left corner of the mill frame so the Incra clamps need to be kept clear of this area. Additionally, the clamps can not hang over the front or back edges where they might prevent full Y travel. So the Incra clamps must be placed on the front 1/3 of the sides of the cutting bed.
    • Tool path clearances
      Attachment hardware needs to be kept clear of the tool path and the bottom of the motor and mill motor collar.
    • Secure Holddown
      The attachment needs to be placed somewhere where it will have adequare grip on both the mill cutting bed and the spoilboard and/or workpiece

Spoil Board

A spoil board is a piece of sacrificial lumber that is placed between your workpiece and the mill's cutting bed. It is there to protect the cutting bed and the mill bit in case you inadvertently tell the mill to cut deeper than the thickness of your workpiece.

  • Attach a spoil board at least as large as your workpiece to the center of the mill cutting bed using
    • Step Block pairs
      A very secure attachment method but they can be a little fiddley until you get used to using them.
    • The red INCRA clamps
      The easiest and a very secure attachment method.
    • Studs and T-nuts


  • Attach the workpiece to the spoil board using
    • Step Block pairs
      A very secure attachment method but they can be a little fiddley until you get used to using them.
    • The red INCRA clamps
      The easiest and a very secure attachment method.
    • Carpet Tape
    • Hot Glue
      This appears to be a dicey proposition as the glue will start to harden when it contacts the substrate and it may form bumps, which it will be impossible to flatten resulting in the workpiece not being parallel to the mill cutting bed.
    • Studs and T-nuts


Different motors need to be used depending on whether you are milling wood, plastic or metal. Each of these motors has a spindle speed appropriate for its intended use.

Milling Wood

  • Check to be certain the controller power sitch, the emergency stop switch and the motor stop switch are all in the OFF position.
  • The green Bosch router is used for milling wood.
  • It takes 1/4 in. bits and its spindle runs at a fixed speed of 35,000 RPM.
  • Insert the motor into the shiney, silver, aluminum mill motor collar.
    • Using a 3/16 in. hex key (Allen wrench), loosen the cap screw on the right side of the front of the mill motor collar.
    • Be careful that you don't cut yourself on the multiple blades on the router bit.
    • The cutting surfaces of the router bits are brittle and easily chipped on contact with metal. Use care when directing the bit through the mill motor collar.
    • Press the motor into the mill motor collar until about 1/2 in. of the silver metal motor nose extends below the mill motor collar.
    • Tighten the cap screw on the right side of the front of the mill motor collar using a 3/16 in. hex key.
  • Insert the desired bit into the collet.
    • 1/4 in. router bits are located on the wooden shelf in the back right corner of the machine shop in a wooden box labeled Peter 506.
    • Loosen the collet nut with the silver Bosch #17 open end wrench.
    • The bits fit snugly - use care that your fingers don't slip on the bit and get sliced open. Hold the bits by their non-cutting surfaces.
    • Tighten the collet nut with the same Bosch #17 open-end wrench.
  • Remove any tools you may have placed on the mill.

Milling Plastics

  • Either of the motors may be used
    • see 6.4.1. Milling Wood and 6.4.3. Milling Metals for details

Milling Metals

  • A custom built, black, GrandTurbo motor is used for milling metals.
  • Collets are available to accept bits with shaft diameters of 1.2mm - 3.18 mm. They are located in the CNC Parts & Tools box, #931.
  • Install the custom built, black, GrandTurbo motor in the bushing.
  • Place the motor and bushing in the mill motor collar.
  • Tighten the cap nut on the right side of the collar using a 3/16 in. hex key (Allen wrench)
  • Loosen the collet nut using the Bosch #17 open end wrench.
  • Slide the shaft of the bit into the collet being careful that you don't cut your fingers on the flutes.
  • Tighten the collet nut using the #17 open end wrench
    • Remove any tools you may have placed on the mill.


The bits used in the mill are referred to as tools.

Bits for Milling Wood

  • 1/4 in. shank wood bits are in the wooden box labeled Peter 5036 that should be on the wooden shelf in the right rear corner of the machine shop.

Bits for Milling Plastic

  • Bits for milling plastics are dependant on which of the motors is being used. See sections 6.5.1. and 6.5.3. for specifics.

Bits for milling non-ferrous metal

  • A limited number of bits for milling metals are to be found in the CNC Tools & Parts box, #931.
  • If a specific bit size is required you may need to provide your own bit (and consider leaving it at the space for others to use).


There is nothing you need to do with the controller at this point, and it is indeed a simple device, at least outwardly.

The controller is the beige "black box" on the workbench over the CNC mill.</p?

There are only three physical controls on the controller:

    Power Switch

    • A medium-sized rocker switch at the top left edge of the controller, which controls all power to the mill (but not to the BeagleBone inside the controller which is continuously powered).</l1>

    Emergency Stop

    • The large, red, round, mushroom plunger switch in the middle of the left edge of the controller is used as an emergency stop.
    • Once pressed it must be rotated clockwise before it will pop back out and restore power.
    • This switch just cuts power to the motors so the spindle and bit will continue to spin until they lose their momentum.

    Motor Stop

    • The large black paddle switch in the lower left corner of the controller is the motor stop switch.
    • This is the best emergency stop switch on the mill becauses it engages motor brakes as well as cutting power to the motors so everything stops instantly.
    • Your hand should be on this switch at all times when the mill is in operation.

    Controlling the Mill

    N.B. The machine shop is a dusty place and you will be making more dust while running the CNC mill. You have to be at the mill at all times when it is running so your computer will be in that dusty environment too. Both you and your computer will be breathing that wood dust unless you take protective measures. If you have an old, mothballed laptop that might be the thing to use to control the CNC mill. Consider enclosing your laptop in a large plastic bag to limit dust incursion, but be aware that that could cause your laptop to overheat. As for protecting yourself, see section 8.1.

      There are three ways to control the CNC Mill: with a pendant, from a mobile device, or from a computer.

      The pendant is the preferred method. Since it is directly attached to the BeagleBone there will be no lag between when you issue a command and when that command is carried out. This will be important in the event of something untoward happening which requires an immediate tool stopage. The pendant is a sealed device that is designed to be used with CNC mills and llathes so it will not be harmed by wood dust.

      The second most preferred method is with a mobile device since these are also sealed devices and should not be terribly affected by dust although you will have to work to get it out of any cracks in the case. The device will have to log into the BeagleBone over a wireless connection so this may inject some lag.

      Because computers often have fans that are going to suck in machine shop air and blow it into the lungs of your machine, this is the least preferred method of connection. It is the one that we know works right now.

      Pendant Control

      A pendant is like a wired, special purpose tablet. It has a display screen to tell you what the mill is doing, some buttons that allow you to tell the mill what to do, and a jog wheel to help you navigate on-screen menus and manually move the router around the cutting bed.

      Mobile Device Control


      The Web postings say this works but I haven't gotten it to work for me yet.

        • Xvnc is an X Windows server that needs to be launched and be running in the background when ConnectBot is launched. You won't even know it is there -- or isnt.</lii>
        • ConnectBot is an SSH client for Android. It needs to be configured to connect to the BeagleBone, may require some port forwarding, and probably needs to be told to get the output of Xvnc.


        iSSH is an SSH client for iOS deices that is supposed to automatically handle X Windows.

        Windows Mobile=


        This is an abandonware X Server for Windows that was indicated as possibly working under Windows Mobile. It is the only X Servre I have found for Windows Mobile.

        The SSH Client

        This is an SSH client for Windows Phone 8

        Computer Control



        WinSCP allows your Windows computer to log into a Linux computer and provides a GUI interfaced file manager that supports drag-and-drop file transfers.

        • Make sure that the power switch on the controller is in the ON position.
        • Launch WinSCP
        • In the Login dialog
          • Select the cnc.local or cnc.lan profile
          • Enter the
            • Username: machinekit
              Password: machinekit
          • Press the Login button.
          • A split screen directory will appear with your laptop displayed on the left and the BeagleBone on the right.
          • Browse your computer's directory tree to the location where you have your Gcode file stored.
          • Browse the BeagleBone to the /home/machinekit/machinekit/nc_files directory.
            By placing your file in this directory Linux will "remember" location and these instructions will work for subsequent users who might not be as adept at navigating a Linux machine, like me.
          • Click and drag your Gcode file from the left window and drop it in the right window to copy file to the BeagleBone.
          • Exit WinSCP.

          N.B. Do not leave the hackerspace with the expectation that your files will still be on the BeagleBone when you return. They may have disappeared for any number of reasons such as, but not limited to:
          • An accidental erasure
          • Space needed for the files of others
          • System maintenance
          • An act of [insert name of your preferred diety here]
        • Launch Xming
          Nothing will appear to have happened but Xming should be running in the background, and you will not know if it is active -- or not -- until you launch LinuxCNC a few steps later on and see -- or don't see -- a GUI.
        • Launch PuTTY
        • Select and Load the cnc.local profile.
        • In the Category list open SSH > X11
          • Verify the following settings:
            Enable X11 forwarding is checked
            X display location: localhost 0.0
            MIT-Magic-Cookie-1 is selected</l>
        • Click the Open button.
        • At the Linux, Login as: prompt supply the username: machinekit.
        • At the password: prompt, supply the password: machinekit.


      • Launch SSH
        • machinekit@cnc.local -p 23
        • Password: machinekit
      • Launch SSH and connect to cnc.local over the network.
        • Username: machinekit
          Password: machinekit
      • Copy your Gcode file into the remote directory
      • Launch LinuxCNC.
      • The LinuxCNC splash screen will appear followed by the LinuxCNC AXIS GUI in an X11 window.



      Running the Mill

      Personal Protective Gear

      Hearing Protection

      The mill is loud. It uses a router for a motor and they are notoriously loud. And you are going to be using the shopvac during the entire operation and it is even louder. Be kind to your ears and use hearing protection. If you have not brought your own, there is generally a bottle of disposable in-ear canal earplugs in the smal, white personal safety items cart located somewhere in the machine shop. Since these are a single use item, it is safest to bring your own pair to the space with you.

      Eyesight Protection

      The mill has a spinning blade that is going to throw wood/plastic/metal chips all around it. Additionally it is not unheard of for a bit to snap and to fly to parts unknown. And you are going to be staring at the moving parts of the mill the entire time it is in operation to make sure it is not tearing itself or anything else, up and needs to be emergency stopped immediately. So wear eye protection. If you have not brought your own, there is a supply of safety glasses and/or goggles in the small, white personal safety items cart located somewhere in the machine shop.

      Respiratory Protection

      There will be wood dust in the air of the machine shop and even the rest of the space. This fine dust can and will get into your lungs where it can do all sorts of nasty things unless you protect yourself. There is a communal respirator in the small, white personal safety items cart located somewhere in the machine shop, but I would not be inclined to want to breathe through a respirator everyone else has been breathing through. Sometimes there are disposable dust filters there, but you don't know if the one you grab is a new one or one that someone has used and returned to the bin. As with hearing protection, it would be best for you to bring your own particulate filter or respirator.

    You have been warned.

    Debris Removal

    It is important that debris be kept clear of the bit. This will provide a place for new material to go as it is cut from the workpiece, and keep it from bogging down the spindle. It will also help to reduce the amount of wood dust that fills the air of the entire hackerspace.

    One of your hands should always be on the Motor Stop switch and the other one should always be holding the hose of the shopvac near the area of the workpiece the mill is cutting...carefully. Be mindful of sudden motor movements.

    Start the Job

    Everything has been building up to this moment. It is finally time to start the mill and make a big piece of wood/plastic/metal into a small piece of wood/plastic/metal. Let the chips fly!


    Now we are up to the point the first C in CNC (Computer Numerical Control). This is the point when we have to start using software to control the mill. That software is LinuxCNC.

    LinuxCNC is software that takes the commands embedded in your Gcode file and translates them into electrical signals that will actuate the various motors of your specific machine. That maachine can be a mill or a lathe and can operate on two axes, 2.5 exes, three axes, as our mill has, or up to nine axes, as big commercial machines have. So there is a lot this software can and will do. It is running on a lowly BeagleBone under Machinekit, a subset of Debian.

    LinuxCNC is already installed on the BeagleBone running the mill and has alaready been configured to understand the components of the mill and how to control them. Its almost as simple as giving LinuxCNC your Gcode file and telling it to make your object. But it isn't quite that simple.

    I started out by downloading the three pieces of LinuxCNC documentation. You can get them from <a href=""></a>. They are

    LinuxCNC Getting Started
    I figured this would be the place to go to get the quick and dirty instructions, but it turns out to be instructions on getting the software and installing it on the controller. It does have a Glossary which I found helpful.
    LinuxCNC User Manual
    A user manual sounds like the thing that would tell you what buttons to click in what order to get the job done, but I found it to be a guide to the various menu options in the numerous UIs. It also has a copy of the Glossary.
    LinuxCNC Documentation
    In this tome, which is almost 50 times as long as this long Wiki page, I found a in section III Using LinuxCNC, Chapterr 4 User Interfaces, section 4.1 AXIS GUI which is as close as I came to a PHD (Push Here Dummy) manual. This document also contains the useful Glossary.

    This stuff was written by engineers, for engineers who already know how to use a nine axis mill with cooling. I had a chemistry professor like them ages ago when I was in college. He could explain anything to another PhD, but he couldn't explain anything to me. Hence my minor in Psychology.

    So what follows are the bare bones of what you need to know about LinuxCNC to convince it to make your object.

    Prepare LinuxCNC
  • At the Linux $ prompt, type linuxcnc to launch the mill control program.
  • A Machinekit Configuration Selector screen will appear
    • Select Xylotex.
    • OK
  • A Machinekit splash screen will appear
  • PuTTY will automatically capture the X11 LinuxCNC AXIS GUI window and redirect it to your laptop screen.
  • Load your Gcode file.
    • File > Open.
    • Browse the directory tree to /home/machinekit.machinekit/nc_files
    • Select your Gcode file and Open
    • Your Gcode will be displayed at the bottom of the AXIS screen and a small depiction of the tool path will be displayed in the black window.
    Prepare the Mill
    • press the orange power button on the toolbar
    Home all axes
    • Machine > Homing
    • Press Home All
    Offset the Mill
    • Machine > Homing
    • Use the buttons in the Manual Control tab to move the motor, and hence the tool tip, in all three axes.
    • Press Tool Touch Off
      • Jog tool to the cornerr of the workpiece where you located your Inkscape Control Points.
        • Using the buttons, select an axis.
        • Rotate the jog wheel clockwise or counterclockwise as appropriate to move to tool.
          The computer has a key ahead buffer so rotate the wheel slowly so you don't fill the buffer and cause to tool to move farther than you intended possibly doing damage to the mill or your, your workpiece, or yoourself.
        • Press Touch Off and in the Touch Off dialog box make sure 0.0 appears and press OK to log the tool position as the origin of that axis of the tool path for this cut.
        • Iterate for the remaining axes.
        • . . .

      Start Milling

    • Press the gray, right-pointing arrow to begin milling.
      • To have the mill process the file one line at a time sequentially press the gray, right-pointing arrow.
    • Watch the mill to be sure that it isn't doing anything untoward and be prepared to stop it if anything happens - i.e. keep one hand on the motor stop switch.
    • Keep the shop vac going to draw waste chips away from the tool.

    If it all goes south and you are hopelessly lost and want a do over

    • Stop the mill.
    • Close the AXIS GUI window.
    • At the Linux $ prompt type sudo reboot ENTER


Hopefully what you intended the mill to do and what you actually told the mill to do were in agreement and you got the item you envisioned. But the job isn't finished yet. Now it is time to put the CNC mill to bed.

  • Press the Motor Stop switch down to lock the mill motors.
  • Press the Emergency Stop switch to disconnect power from the motors.
  • Close PuTTY to end your SSH connection to the BeableBone.
  • Delete your Gcode files from the BeagleBone.
    • Start WinCSP and log back into the BeagleBone as previously.
    • In the right side directory pane browse to the /home/machinekit/machinekit/nc_files directory.
    • Delete your files.
    • Close WinSCP.
  • Press the Power Switch to the off position.
  • Carefully remove the bit from the spindle and return it to its storage box.
    • Remember that the bit shanks fit snugly in the box holes so don’t let your fingers slip down the tool face when pressing them into the box.
      Hold the bit by the non-cutting edges.
      If the end of the bit is not a cutting surface use one hand to align the bit with the hole while you press the shaft into the hole by pressing in the center of the cutting end of the bit.
  • Remove your workpiece and the spoil board from the mill cutting bed.
  • Place the Bosch open-end wrench ###>.
  • Return the hex wrench to Pliers/Hex Keys/Crimpers/Wrenches Box #464.
  • Check around the mill, workbench and floor for any small parts that anyone might have been dropped.
  • Vacuum the mill, surrounding shelf, workbench top, surrounding floor and the exterior of your laptop to clean up any chips and sawdust.