Skip to content
A C# GUI for Grbl
Branch: master
Clone or download
Latest commit d53dae8 Feb 21, 2012
Type Name Latest commit message Commit time
Failed to load latest commit information.
src vers 0.1.7 Feb 22, 2012
CPOL.htm Initial commit Feb 16, 2012
CREDITS.TXT vers 0.1.7 Feb 22, 2012
NOTES.txt Restructured serial comm code Feb 18, 2012
README.txt vers 0.1.7 Feb 22, 2012
screenshot.png Initial commit Feb 16, 2012
settings.png fixed runtime abort problem, other major changes Feb 20, 2012


// This is currently under development and is only recommended for
// air cutting in a controlled environment!

What this attempts to be:

A Windows GUI frontend written in C# to control flow of gcode to an
Arduino based Grbl Gcode processor (

I have just concentrated on basic functionality for hobby use. My CNC exposure
has been limited to my home built mill, so I am not familiar with most
of the G codes for anything much more than basic motion and spindle control. 

It should be obvious that I am not a professional coder.  If you are, please help
correct and enhance all of my "mis-features".

This was created using:

Visual C# 2010 Express (as of version

targetting .NET 2.0 framework

See CREDITS.txt for additional information about the components used

This version assumes Grbl edge (Grbl 0.7d) which uses '?' to report status and 
status is returned in this format :

// Grbl edge status update looks like this:  (Feb 2012)

The Status Update Interval in the settings form will enable reporting and the interval

CNCInfusion has only been tested with this Grbl version (and only with a 'scope), although I suspect it should
work on any version if status updates remain disabled.

// TESTERS WANTED!  I currently don't have a machine to test this on
// I'm using an Arduino (328) with a scope only for testing at the
// moment

// - initial version
// - feed hold / soft reset 
// - restructuring of serial comm code
//            - known problem with feedhold/cyclestart
// - fixed feedhold/cyclestart problem caused by ok response confusion
//          - known problem ocassionally with re-running after abort 
// - modified delegates for use in threads (created at startup)
//         - starting to create preprocessor that only accepts Grbl gcode
//         - fixed status update interval problem
//         - fixed re-run after abort problem (added lock in commreceive)
//         - added timers for RX and TX indicators
//         - added basic preprocessor for grbl code
//           that is actually loaded and displayed in the backplotter
// - Grbl preprocessor modifications (needs more thorough testing)
//         - changes to settings form, more options
//         - initial code to support joystick
// - Error checking to detect grbl when opening serial port
//         - Added machine/world toggle on display
//         - regex now used to parse Grbl status report
// - Switched to Visual C# Express 2010 due to some
//           problems with SharpDevelop 3.2

// Grbl reporting of status is undergoing development:
// listbox shows line being buffered in Grbl, not actual line executing (Grbl code for line status needed)
// XON/XOFF is being worked as well in Grbl for flow control need to update this when code stabilizes
// MDI
// JOG
// Zero axes (world/machine?)
// Joystick/Joypad integration - having issues on X64 Win7 development box at moment
// Load/Save settings
// Color preferences
// Abort when feedhold is active, sometime causes loss of sync
// with Grbl.  Hard reset of grbl from Settings page restores
// stability. 


Hardware (DTR) Reset in Settings
Software Reset (0x18) on main form
Feed Hold / Cycle start
Zero Axes - Untested


Status reporting - GRbl is undergoing heavy development in this area. What is
currently there is mostly a placeholder as a proof of concept but is functional

Feed Override - Grbl work in progress
JOG - Not yet coded, GUI components in place
MDI - Not yet coded, GUI components in place 
Status of modal gcodes - Maybe some indicators?
You can’t perform that action at this time.