G-Code Interpreters

G-Code is the language used to describe how a machine will move to accomplish a given task, using numerical control (NC) --- it is the most widely used NC programming language. GRBL is the most frequently used implementation for the ShapeOko.

Graphical discussion of the details of converting G-code into motor commands.

Reddit: Newbie question: How is G-Code executed by the machine?

Note: some programs such as LinuxCNC directly control the machine, so are listed on the Communication / Control page.

https://github.com/NRSoft/GSharp --- pre-processor which enables support for additional G-codes.

https://www.github.com/kobaltz/rotor --- Ruby gem called Rotor that interprets GCode and will control stepper motors

https://github.com/MarginallyClever/GcodeCNCDemo/tree/master/GcodeCNCDemo2Axis --- source code for a simple g-code interpreter. The interpreter reads the g-code commands line by line from the serial port, interprets them, and then executes them. To execute e.g. a move 10mm command in the X-axis, the interpreter steps the X axis motor the appropriate number of steps.

There are a number of firmware options for 3D printers, some of which are also suited for use in controlling a more general-purpose CNC machine: 3D Printing: G-Code Intpreters.

List from: http://www.sawmillcreek.org/showthread.php?237402-Probotix-CNC-Nebula-Question&p=2489851#post2489851


 * Mach3/Mach4 --- http://www.cambam.co.uk/forum/index.php?topic=1279.0 --- use of numeric keypad as pendant
 * UCCNC
 * LinuxCNC
 * EdingCNC
 * Planet CNC

See also Netduino CNC.
 * https://osstekz.github.io/cncBuddy/ --- cncBuddyCAM: Netduino+2 controller includes: CncBuddyUI: Windows G-Code parser/interpreting master control program.
 * https://github.com/MarginallyClever/GcodeCNCDemo
 * https://github.com/KingRandomGuy/Robit-GCode-Interpreter-Python

http://gofabmo.org/

https://www.synthetos.com/what-is-tinyg-and-why/

https://groups.yahoo.com/neo/groups/CNCPro/info --- old DOS program recently opensourced

https://www.jedicut.com/en/ --- hot wire cutting controller capable of 4-axis movement