Communication / Control
Note that communicating w/ a micro controller is fundamentally the same as using a terminal program to communicate w/ another system. This means that some of the same trouble-shooting techniques and features apply, such as a delay between sending and receiving.
While the new Carbide Motion Board for the Shapeoko 3 affords the option of using Carbide3D's Carbide Motion control software, any G-code program will work.
Also see Grbl Gru on the Previewing G-Code page which now also supports TinyG. (Troubleshooting connection information here: http://www.shapeoko.com/forum/viewtopic.php?f=6&t=4710&p=43501#p43501 )
Communication / Control is at the heart of how a CNC operates, as described in this page.
Most run on Windows or Mac OS X or Linux. Discussion of Raspberry Pi g-code senders for Grbl.
Please vote for the tools you use in the poll and https://community.carbide3d.com/t/gcode-sender-poll/11111
Discussion of Carbide Motion Machine Control Software, Universal G-Code Sender, ChiliPeppr, and bCNC http://www.shapeoko.com/forum/viewtopic.php?f=6&t=6329&p=49406#p49406
Note that Linux users may need to add their account to the “dialout” group to access the serial port. Shapeoko 3 connected to Debian Linux - Install & Setup notes
Troubleshooting techniques for Comm / Control programs:
- Have you tried other gcode senders?
- Do you have a different PC you could use just for testing, like a laptop?
- It could be static electricity as I have had that problem myself, but not with the same symptoms..
- If you try to run the comm/control program and the G-Codes without powering your steppers, will the PC crash then too?
Official list: https://github.com/gnea/grbl/wiki/Using-Grbl
|G-code sender||Carbide Motion Machine Control Software||The default control program for the Shapeoko 3, any G-code sender which will communicate w/ Grbl will work. Written using QT frameworks. Available for Windows 7 and later, Mac OS X 10.7 and later. Newer version(s) (v2 or later) support the Shapeoko|
|G-code sender and previewer||bCNC||Python GRBL CNC command sender, autoleveler and g-code editor. Requires Tkinter and PySerial.|
|G-code sender and previewer||grblControl||GRBL controller application with G-Code visualizer written in Qt. Includes French translation. Noted as working well on large files.
renamed to Candle
|G-code sender||GcodeSender||G-code sender by Otto Hermansson|
|G-code sender||Grbl-Panel||A control panel for Grbl, allows use of the keyboard or pointer and quickly choosing from a set of values to jog. Has explicit support for offsets/work-coordinate systems and other features from professional systems. Wiki Frequently updated. Current version: https://github.com/gerritv/Grbl-Panel/files/139771/GrblPanel-Release-188.8.131.52.zip|
|G-code sender||GCodeTeleporter||Windows tool for sending GCode to CNC machines.
Features include a GCode Viewer/Simulator, GCode Truncater, Gcode Scaler (under dev) and Web Cam support.
|G-code sender||grblfeeder||Nascent Mac OS X app for streaming gcode files to the GRBL Arduino CNC controller.|
|G-code sender||Universal CNC Controller||Simple *nix CLI for streaming G-code to and jogging a grbl-controlled machine. Written in Shell as a wrapper to the stream.py python script. Runs on Linux, OSX, and BSD with py-serial installed. Ideal for low-powered hardware such as the Raspberry Pi.|
|G-code sender||GCtrl||Processing Script to stream Gcode. c.f. Gcode_Feeder_GUI.pde, Gremote, rsteppercontroller|
|G-code sender and previewer||Universal-G-Code-Sender||Java version of GcodeSender by Will Winder. Cross-platform (Win32, Win64, Linux, MacOS). Additional features include: Truncate decimal point precision to a configurable amount, Remove whitespace, Remove comments, Override speed rates, Arc to line conversion.|
|G-code sender and previewer||grblgui||Java program w/ support for Android|
|G-code sender and previewer||Grbl Controller||Cross-platform graphical Grbl Controller for Mac, Windows and Linux (including the Raspberry Pi) originally written by Kosme, currently maintained by zapmaker. Allows you to jog X, Y, Z, and see the current position. Newer versions include a previewer, v3.4 will trim too-long lines. Has been criticized for how it handles communications.|
|G-code sender||grblfeeder||Python serial terminal designed for sending gcode files to a microcontroller running grbl.|
|G-code sender (Windows)||3dpBurner Sender||Designed for GRBL based devices (laser and milling), uses Advanced Character-Counting streaming protocol for better performance.|
|G-code sender (Windows)||CNCInfusion||Currently under development in C#.|
|G-code sender||GCode Step and Alignment Tool (GSAT, previously GCS)||Cross-platform GCODE debug/step and alignment tool for Grbl 0.8c or later. with features similar to software debugger. For example usage of breakpoints, change program counter (position), stop and inspection/modification of machine variables, step, run. Especially useful for allowing tool changes during operation. c.f., https://github.com/duembeg/gsat
Forum thread: http://www.shapeoko.com/forum/viewtopic.php?f=6&t=1304
Includes WebCam interface.
|G-code sender||GRBLweb||Web-based GCODE sender and controller for GRBL. Multiple serial devices can be connected to control multiple machines --- able to run on a Raspberry Pi (pre-built Raspberry Pi image based on Raspbian running GRBLweb available here).|
|G-code sender||grblUI||Simple graphical user interface programmed in Java, using rxtx for serial communication.|
|G-code sender||grblgui||Graphical user interface programmed in Java, using rxtx for serial communication and OpenGL 2.0 for rendering. Displays the job duration and remaining time to complete in minutes, current speed, and buffer status graphically on the toolpath, allows toggling feed hold and entering G-Code commands.|
|G-code sender||EFL CNC||Software to control 3 axis stepper motors for GCode CNC projects.
Load Gcode file and stream it, can also flash your Arduino UNO. Integrated settings and options dialog box.
|G-code sender and remote web interface||Octoprint for CNC / Grbl by PxT||Communication program which allows submission of jobs, previewing, monitoring and control through a web interface. Unique in being suitable for Grbl as well as 3D printer firmwares. New version will round to 3 decimal places to preclude the too long line problem. Instructions for installing on a Raspberry Pi. Original version.|
|browser-gcode-sender/All-in-one Web program||Easel: app.easel.com||Browser-based CAD + CAM + Machine Control app made by Inventables. Design, generate toolpaths, and/or import SVG, preview in 3D and send the job to your machine from one web app. Note that in its setup it may incorrectly calculate the Z-axis step value. $102 should be changed back to the original value of 20.|
|G-code sender (3D Printers)||CNCGcodeController||Allows usage of Marlin, &c. for CNC.|
|G-code sender||cncjs||A web-based interface for CNC milling controller running Grbl, Smoothieware, or TinyG. Runs on node.js (installed on a Raspberry Pi or other system). https://github.com/cncjs/cncjs|
https://github.com/nsiatras/sourcerabbit-gcode-sender --- cross platform G-Code sender written in Java, can be used on computers with a small amount of RAM and less powerful CPUs. 
https://gitlab.com/Pilatomic/grbl-overseer --- touch friendly. Multiplatform (tested on Windows, Linux and Android)
Note that most things listed under Raspberry Pi below will work on other platforms.
https://github.com/McNugget6750/SimpleG --- Windows CLI sending tool
https://github.com/welch/shapeoko --- Python
c.f., the Processing script GCtrl (listed above).
https://github.com/TPMoyer/Grbl4P --- GUI interface to GRBL V1.1 CNC control using Processing 3.
https://www.mediafire.com/file/ok7nc1t8em983b3/Diba+controller+2.5.01.rar (Windows) --- GUI application for GRBL 0.9J with 2D G-Code visualizer
|chrome-gcode-sender||chrome-gcode-sender||gcode sender for the Chrome web browser and ChromeOS computers. github source.|
Instructions for installing Universal G-Code Sender on a Chromebook: https://www.reddit.com/r/hobbycnc/comments/jmbzet/chromebook_can_run_ugsplatform_for_arduino_driven/
Instructions for installing Easel so as to control the machine: https://discuss.inventables.com/t/using-chromebook-to-run-easel/66249/9
|G-code Interpreter and machine controller||LinuxCNC (formerly EMC2)||Now known as Linux CNC- a free Linux based application for controlling and monitoring CNC machines. It runs from a Live-CD distribution of Linux called LinuxCNC. It is used for machines/drivers working through a parallel port connection, so no USB controller is supported.|
Note also the Chrome sender above under Grbl
https://gitlab.com/Pilatomic/grbl-overseer --- multiplatform, also runs on desktops
|G-code sender (Android)||GRBLDroid||Allows your Android device to control your CNC.|
|G-code sender (Android)||TinyG CNC Console||Allows your Android device to control your CNC controller via network, USB host mode (3.1 and up) and USB accessory mode (2.3.4 and up). .|
Several of the comm/control programs run on the Raspberry Pi.
GrblServer is notable for being specific to it and using Node.js: https://github.com/cho45/GrblServer
Similarly, there is New minimal control software: RasPyCNCController, available at: https://github.com/fsantini/rasPyCNCController which has image files available from: http://www.francescosantini.com/threed.html --- now supports touch screens and the Contour Design ShuttleXpress. Has support for Grbl's check mode.
https://github.com/winder/Universal-G-Code-Sender/issues/47  --- instructions for installation: http://www.shapeoko.com/forum/viewtopic.php?f=4&t=7942&p=63292#p63292
|browser-gcode-sender||ChiliPeppr||3D Viewer. Gcode Sender. Jog controls. Has a Serial Port JSON Server you put on device with serial port like Win/Mac/Linux/Raspberry Pi/BeagleBone/etc, but run jobs from your local laptop/desktop browser. Exists as a "Hardware Fiddle" with ability to fork all code.  Google forum There are now SPJS downloadables for Pi1 and Pi2.
limited to 5MB file size due to browser buffer limitations
|G-code sender||Steuersoftware JCNC V1.03||G-codesender for Grbl and TinyG, with preview of the toolpath.|
|G-code sender and previewer||Goko||GCode sender, 4 Axis 3D Viewer, Jog controls, GCode modification, Wrapper, Autoleveler, metric and imperial units.|
Windows Machine Simulation
- tgFX --- A GUI controller for the TinyG motion controller (discontinued, see Chilipeppr or GrblGru instead)
- https://github.com/stonetronics/stoneGcodeSender --- A very basic gcode editing and sending tool, written in python3, using tkinter for a gui
- https://3rd-dimension.github.io/ 
- https://github.com/GridSpace/grid-host --- part of Kiri:Moto
- https://github.com/welch/shapeoko --- Python utilities to communicate with the Shapeoko desktop CNC machine and its GRBL controller: gcat (send a gcode file to the grbl controller), gdraw (use keypresses to interactively move the shapeoko), gsh (send gcode commands to the grbl controller)
- http://cheton.github.io/cnc.js/ --- a web-based CNC milling controller for the Arduino running GRBL. https://www.npmjs.com/package/cncjs Raspberry Pi instructions: http://community.carbide3d.com/t/shapeoko-3-xxl-raspberry-pi-3-cncjs-tablet/2458 Use with Linux: http://community.carbide3d.com/t/options-for-linux/5863/13
- http://www.caliper2pc.de/download/en_download.html --- interface to connect digital calipers to a PC via USB affords a digital readout.
Note that since Grbl runs on an Arduino it's possible to use programs intended for use with that platform such as NetBeans Platform 8.1.
Obsolete / Moribund / Abandoned?
- G-code sender PythonCNCGUI --- HMI/GUI done in Python using Opengl for graphics is used to interface to modified Grbl CNC code on an Arduino over USB. Operating System Notes: Currently runs well in Linux with Ubuntu and Python2.5. Also in process it now runs in Windows XP 32-bit with Python2.7.
- G-code sender GUIGcodeWriter_1.0.py --- Arduino G Code Sender Program. Python, python serial, and tcl/k (tkinter).
- GrblHoming --- Gcode sender, monitor and homing tool for GRBL for Windows and Linux systems. See also: https://github.com/zapmaker/GrblHoming and https://github.com/zapmaker/GrblHoming/tree/Letartare