This is a quick overview of the Makesmith Ground Control software which controls your CNC router.

The pictures on this page are not up to date with the newest version (version 0.57 of the software). The pictures will be updated soon.



Menu Items

From left to right and top to bottom, the options in the menu trees are:


File Menu


The dotted line breaks off the menu so that it is available outside the tree as a separate window


Quit – The quit option closes the program.

Open G-Code – Open G-Code opens a new gcode file. The location from which the last file was opened is remembered and used as the starting point to open a new file.

Run G-Code – Run G-Code begins to execute the opened gcode file.

Begin Logging – Begin Logging pipes the output of the main text window to a file so it can be reviewed for debugging purposes.

End Logging – End logging closes the logging file. If the file is not closed properly the data will be lost. It would be good to make this happen automatically if possible.

Reconnect to CNC – The program will automatically reconnect to a connected CNC router during start up, but if no router is hooked up it won't connect. Reconnect to CNC triggers that connection to happen again,


Run Menu


Run G-Code - Run G-Code begins to execute the opened gcode file.

Pause – The pause button pauses the execution of the gcode program. The machine will not stop moving immediately, it will finish executing the current line of gcode before pausing.

Resume – The Resume button causes the connected CNC router to resume running the opened G-Code program after being paused.

Zero Z – Zero Z resets the home position for just the Z axis. This is useful during tool changes when the tool which is added is a different length than the tool which was replaced.

Diagnostics - Diagnostics opens a new window which lets you run three diagnostic programs which can help to detect issues with the hardware of your router.

New in version 0.57:

Switch to Millimeters - Sends a command to the machine to operate in millimeters and changes the position display on the GC software to millimeters.

Switch to Inches - Sends a command to the machine to operate in inches and changes the position display on the GC software to inches.


Test Encoders – The test encoders function measures that each of the encoders is actually producing a valid PWM signal. This can detect if an encoder is plugged in backwards or not connected at all. The drawback to this technique is that if the encoder is in the zero position the PWM width is zero so essentially no signal is produced which results in a false encoder failure.

Test Motors – The test motors option drives each motor in each direction for about a half of a second to verify that they are connected and receiving power.

Test Both – The test both function drives each motor in turn and then verifies that the encoder which is intended to connect to that axis shows movement. This lets you test not only the motors and encoders, but also that they are not cross connected.


View Menu


Zoom Levels – These options let you zoom the view of the gcode on the canvas. This can also be done with the scroll wheel.

Reset Origin – It's easy to scroll too far off to one side and not know which way to scroll to get back to the origin. Reset Origin moves the canvas back to the center.

Version – Version prints the software version number in the main text box, and if there is a router connected it requests that the router also print it's firmware number.

Update Gcode – Update G-Code reloads the gcode file currently opened which is useful if you edit the gcode either by hand or regenerate the code in a CAM program.

View Gcode – View Gcode displays the gcode as it is currently held in the program. This may be different than the gcode file because the lines are parsed automatically when the file is opened.


Port Menu


Listed Ports – All of the connected USB devices are listed under this menu. Clicking on one causes the program to connect to that device and removes it from the list. The next time the program is launched it will automatically try to reconnect to the device it was last connected to. To connect to a device which is not listed, the Specify option can be used to specify a device which is not found automatically.




Arrow buttons- These move the machine in the direction indicated by the button. The distance the machine will move in that direction is set by the value in the box directly beneath the buttons. The value in the box to the right sets the speed the machine will move.

Up and Down buttons- work similarly, except that the Z axis is moved.

Home button- causes the machine to return to the home position (0,0,0). If the tool is already above the material, the machine returns to X,Y zero and then lowers the tool to Z zero. If the tool is currently in the material, the machine lifts it to Z zero and then returns to X,Y zero. This is done to minimize the the chances of the tool accidentally cutting the work piece, however care must still be taken.

Stop button- causes the machine to stop moving mid movement.

Toggle spindle button- turn on an optional relay attached to pin 12.

 Rezero button- sets the current position has home.

Scroll enable button- causes the text box which displays output from the machine to allow scrolling. This is really useful for debugging, but will probably be removed once most of the bugs have been worked out.

Run button- begins running the current gcode program.

The numbers below the buttons indicate the current position in from the zero point. To the right the amount of time estimated to complete the current gcode program is shown and below that the amount of time that the program has already run.

At the bottom is a text box which is used to show the communication which takes place over the serial port between the computer and machine. The text box is also used to display error messages or information from the machine and to debug the software.