G-Code Interpreters

From ShapeOko
Jump to: navigation, search

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.

Type Name/Link Description
Interpreter GRBL Grbl is a free, open source (GPL for v0.9,[1] MIT/BSD for v08 and earlier[2]) high performance CNC milling controller written in optimized C that will run on a straight Arduino.

Smoothieboard port: https://github.com/gnea/grbl-LPC [3]

Interpreter Smoothieware Smoothieware is a G-Code interpreter which is suited for general-purpose machines as well as 3D printing. It is notable among 3D printing firmware for supporting G2 and G3 arcs, so is an excellent choice for a multi-purpose machine.
Interpreter Machinekit.io[4] Has ShapeOko support. Some reports of success.[5][6]
Interpreter https://github.com/Nikolay-Kha/PyCNC [7] Python CNC machine controller for Raspberry Pi and other ARM Linux boards [8]
Interpreter https://github.com/synthetos/g2/wiki/g2core-in-use

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

https://github.com/ithinuel/async-gcode --- A simple gcode parser written in rust

https://github.com/pantadeusz/raspigcd --- nascent firmware for Raspberry Pi[10] (limited G-Code support: G0, G1, M3, M5, M17, M18)

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

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.[12]

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

See also Netduino CNC.



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