CNC Reminders

From HackPittsburgh Wiki
Jump to: navigation, search

Other Reminders

This page is out of date. The small CNC has been torn down and rebuilt and a new wiki page, Small CNC Reminders, has been added for it. There is still some useful information in this page. It will eventually be migrated into the new page, and this page will then be removed.


This reminder page is NOT a substitute for being trained on the CNC by a qualified HackPgh member.

This reminder page is NOT a substitute for using your brain and taking appropriate precautions.

ALWAYS closely monitor the CNC while it is operating.

ALWAYS wear SAFETY GLASSES when operating the CNC.

ALWAYS wear HEARING PROTECTION when operating the CNC.


This set of reminders is organized roughly as a step-by-step in the sequence necessary to actually use the router.

Here are some useful terms to look up. I will add to this list as further terms come to mind, or as people ask questions.

  • Spindle (aka router or, in the case of this CNC, Dremel)
  • Mill End
    • or Cutting Mill
    • or Cutting Tool
    • or Dremel Bit
    • or Router bit
  • Bed
  • Spoil Board


The router takes instructions in GCode.

STL (Stereo Lithography) is also a popular format which can be converted to GCode.

You can make 2D design in Inkscape and use a tool (for example MakerCam) to convert that 2D design to GCode, using the tool to add the third dimension (depth) to the design.

You can make more complex shapes in Sketchup and convert that design into STL, and then into GCode.

If you check the sketchup marketplace you will find a free STL exporter plugin.

I also found a reference to SketchUCam, a free SketchUp-to-gcode plugin for SketchUp.

PyCAM is a free program for converting STL into Gcode. The instruction sets it produces are not very good. For example it may take a lot longer because it's not smart about the sequencing of steps.

Meshcam is a commercial program for converting STL into GCode.

Meshcam costs $250, but Bob Berger recommends it as worth the money. It's windows, but Bob finds it runs well on a virtual machine on his Mac.

Here's a video review of Freemill and PyCAM by somebody who normally uses Meshcam. It's worth viewing; he briefly explains some related concepts:

OpenSCAM is a simulator, you can run your STL through that to see what it will do.

Some other random, possibly useful links:

Converting a 3D model in STL format to a series of 2D sections

Bob posted the following snippet of OpenSCAD code that he used to convert a 3D model in STL to a series of 2D sections that could be cut on the laser cutter. This may be useful, so I'm including it here, but no guarantees.

translate([0, 0, -140])
rotate([90, 0, 0])

Concatenating Cuts and Zeroing the Bit

Sometimes it's useful to run two different cuts (sets of GCode) on the same piece of wood. There are some gotchas to watch out for.

DO NOT trust Universal GCode Sender's reported X/Y position.

Particularly, if you have a series of separate cut operations to make, you CANNOT simply concatenate them together. There will probably be cumulative X/Y error that will throw off placement of later cuts.

Bob has a two-line snippet of GCode you can add to the end of each gcode file, to zero the bit as the last step:

G00 Z25
G00 X0 Y0

The first line moves the head to 25mm above the Z-origin, to clear the tool service. Obviously, if your particular job or situation means that 25mm won't be high enough, increase it to a sufficient height so the bit will clear any obstructions as the CNC moves it in the X/Y dimensions.

The second line moves the bit to the starting point (0,0).

Then change the bit out to the new bit, and follow the instructions to zero register the bit, given in "Install The Dremel Bit, Then Zero Register The Bit", below.

Speed, Feed and Stepover

The following three concepts will be described in more detail below:

  • Speed is the RPMS (revolutions per minute) that the dremel bit spins.
  • Feed is the speed that the CNC moves the dremel around.
  • Stepover is how far you move the bit over for successive cuts, e.g. stepover determines overlap.

TODO: Need some good example speed, feed and stepover values based on experience so far.


Note: The CNC's spindle is a dremel tool. Specifically a Dremel Rotary Saw, which has been discontinued by Dremel and should not to be confused with the newer, 90 degree Dremel Saw Max.

Speed should be adjusted for the material you're cutting and the size of the bit you're using.

For smaller bits, use higher speeds.

For larger bits, use lower speeds.


The HackPGH CNC feed is measured in millimeters per minute (mm/min).

For example, 60 mm/min means move 1 millimeter per second.

600 mm/min means move 10 millimeters per second.

The viable feed rate for horizontal movement is almost always going to be different that the viable feed rate for vertical movement.


Stepover is the distance between the center of one cut and the center of the next cut. Think of overlap when mowing the lawn.

A general rule of thumb for hard woods and softer is about an 80% overlap.

For example, if you are cutting with a 12.7mm (1/2") mill, your step over should be about 80% of 12.7mm, or 10m (12.7 times 80% = 10.16).

Bear in mind that your initial plunge cut will be encountering material for the full width of the head. Adjust the feed and speed appropriately.

Dremel Bits

There are a number of bits available for use, many of them donated by Bob. More such donations are always appreciated. It might a good idea to invest in an appropriate bit, especially if you're going to be doing a lot of cutting, so you'll have a nice, sharp bit to work with.

Use the shortest bit that will do the job. Shorter bits flex less, so they are preferable when your design allows.

TODO: Add details on bit types, bit sources, recommended bits.


You actually use the CNC by using a program named Universal GCode Sender (UGS), which runs on the desktop computer adjacent to the CNC, to send your GCode file to a program named GRBL, which runs on the computer built into the actual CNC.

Run Unversal GCode Sender

UGS is a free, open-source program, written in Java.

Note: The program on the workstation is a JAR file. This note is mainly of interest to programmers.

You run UGS the same as any other program, by double-clicking on it.

UGS Serial Port Bug

UGS has a bug, it sometimes can't open the serial port. When that happens, it will pop up an error message.

Try restarting the program first.

If that fails, reboot the machine.

Note: We should try out this tip from

Note for MAC users: For version 1.0.8 and earlier you may need to create a "/var/lock" directory on OSX to fix a bug in the serial library. To do this open the Terminal application and run the following two commands:

sudo mkdir /var/lock 

sudo chmod 777 /var/lock''

Click "OPEN" in UGS.

Look in UGS's log window for the response from the GRBL, the program that actually runs on the CNC hardware.

In UGS, ALWAYS ALWAYS ALWAYS Check/Set the Step Size

Check the Step Size dropdown for inches/millimeters in UGS EVERY TIME.

ESPECIALLY check Step Size after restarting UGS; UGS sometimes changes the setting when restarting.

Install The Dremel Bit, Then Zero Register The Bit

Install your selected dremel bit and zero-register the bit to the top surface of the material you're working on.

To "zero register" means to move the bit so it's just barely touching the material you're going to cut, and then set that as the zero depth point in UGS. Do it like this:

Use the keyboard controls in UGS on the workstation to move the bit to the starting point.

Generally the starting point is in one corner of the work space (i.e. X = 0, Y = 0). The most important thing is the height of the bit - the different bits stick out different lengths from the dremel. So you have to reset what the CNC will think is "0 Height" aka "0 Z axis".

So use the keyboard controls, and when you have the bit resting against the top of the surface you're going to cut, click "RESET ZERO" in UGS. Once you click "RESET ZERO", UGS will keep track of where the bit is when you did that, and use that location as the starting point.

IMPORTANT: As a last step, raise the bit off the surface by a quarter inch or so, to make sure that it is high enough that there is no risk of the bit catching on something when the machine starts up.

In UGS, Load Your Design

In UGS select the tab "FILE MODE"

Plug a thumb drive with your design into the Mac Mini and select your file.

Note: The CNC workstation machine's keyboard has a USB port in the back/top edge, so you don't have to root around the back of the machine to find a USB port.

Turn on the Dremel's Power Button

ALWAYS wear safety goggles while using the CNC.

ALWAYS wear and hearing protection while using the CNC.

Put on your hearing protection and safety goggles.

There is a power button on the dremel tool itself. Turn it on.

Set The Dremel's Speed Dial

For smaller bits, use higher speeds.

For larger bits, use lower speeds.

For working on plastic materials, be careful about selecting too high a speed, friction can cause the plastic to melt. Do some research on the internet for appropriate speeds, then do some testing on your materials. Please post what you learn to the hackpgh-discuss and I'll add it to this document.

In UGS, click "SEND"

The SEND button will actually send the GCode to the CNC, and it will start moving. Pay close attention and be ready to stop the CNC if anything goes wrong.


ALWAYS monitor the CNC while it is in operation.

IMPORTANT REMINDER: Wear safety goggles and hearing protection while using the CNC.

A Note about noise: the CNC is fairly noisy, do not use it after midnight. If starting a job you have never run before, be careful to start it early, to allow plenty of time for it to complete before midnight.

Turn off the Dremel When Done

Turn off the physical power button on the dremel when the job is complete.

Clean Up

As per standard shop rules, clean up the sawdust when the CNC finishes cutting.

You don't HAVE to neurotically vacuum up the sawdust as the CNC is working, but it's probably not a bad idea to clean it up periodically as it goes.