Grbl Controller Main Screen Options

Grbl Controller 3.2 for Windows

Port name

This drop down will be populated by candidate serial ports. Only certain ports are actual serial ports connected to Grbl/Arduino.

The easiest way to tell is to look at the list before you plug in your USB connector (presuming you are using USB serial), close Grbl Controller, plug in the USB connector, open Grbl Controller and look at the list again. The item that is new is the desired COM port.

Open – Close/Reset

Open or close the COM port. Opening the COM port will reset Grbl and set coordinates to 0,0,0. You will see a version message from Grbl appear in the status window a few seconds after pressing this button.

Closing the COM port has the effect of stopping the last operation on the Grbl. It is not a substitute for a proper emergency stop, but it is a good way to quickly stop an action. If you don’t have limit switches wired in, there is no guarantee that the motors will stop in time when you press Close/Reset.

On some Linux systems, Grbl Controller needs to be started with sudo to get permission to open the COM port.

Choose File

Brings up a file chooser dialog to pick your file to send to Grbl. On most systems you can choose a file while the COM port is being opened (to save some time).


Will start sending file as soon as pressed. If Grbl Controller is still connecting with Grbl, the file will be sent immediately after all initialization is complete.


The file being sent will be stopped mid-stream. Currently there is no way to restart a stopped send of file.

If you have enabled aggressive preload in the options, pressing Stop may result in a longer wait for the stopped state due to commands already queued in Grbl.

Progress Bar and Runtime

The progress bar shows a percent of lines sent from the file. The Runtime display shows  a realtime display of the number of hours, minutes and seconds that the file has been in the process of being sent. The Runtime will stop when the file has been completely sent, thus showing how long it took to send the file.

Manual GCode/Command

Enter GCode commands to execute immediately.

It has been observed that Grbl occasionally enters a state where specifying simple X1, Z30, etc. commands do not work. You must first preface with a G0 or G1. Once that is done, it should again be possible to send further commands with just the X, Y or Z command directly.

Hit the Enter key to accept the command.

The position entered will be interpreted in inches or millimeters depending on the mode specified in the options (Grbl v0.8c+).

Machine/Work Coordinates LCDs

The machine coordinates are X,Y,Z coordinates that are referenced from the point of opening the COM port to Grbl. The machine coordinates are primarily useful for homing.

The work coordinates are the X,Y,Z coordinates that may be reset back to 0 if desired and all commands will reference the new work coordinates.

Grbl Controller, starting version 3.1, displays Grbl’s coordinates in the LCD displays. It never computes these values from entered commands. It attempts to provide reasonably up-to-date values of at least once a second during file sends.

When zeroing the coodinates, it is normal for the work coordinates to be off by a tiny fraction from 0, such as 0.001.

If you have enabled “inches” mode in the options, the display will show inches, otherwise, it normally shows millimeters.

Last State

This displays the last known Grbl operational state. This is normally going to show Idle or Run, but may contain other states. Only available with Grbl 0.8c+.

Axis Adjust/Jog and Step Size

Use the buttons to move the motors by the amount relative, specified by the Step Size value.

If you have enabled “inches” mode in the options, the Step Size will be interpreted in inches, otherwise, it will be interpreted in millimeters.

Absolute coordinates after adjust

If enabled, when you enter a command in the Manual GCode entry, the values are interpreted in absolute work coordinates.

For example, if you want to move the X coordinates to 10 and the display is showing 2, then enter X10 for your command.

If disabled, when you enter a command in the Manual GCode entry, the value will be relative to the current coordinates.

For example, if you want to move the X coordinates to 10 and the display is showing 2, then enter X8 for your command.

Which mode you choose is dependent on how you prefer to work with Grbl Controller.

Spindle On

Enables or disables the spindle motor, provided you have that capability wired into your board and to an external motor controller.

Reset Control – Soft Reset Grbl

This sends a special reset command to Grbl which causes it to reboot and reinitialize. It does not affect machine coordinates, but it will reset work coordinates to match machine coordinates. Use Zero Position to restore work coordinates to 0.

Reset Control – Unlock Grbl

There are certain conditions where Grbl gets conflicting commands or otherwise enters an  error state. If this happens, it will “lock” to prevent commands from causing harm to equipment.

Use this button to unlock Grbl, but only after you have ensured that the CNC mill is in proper operational condition.

Zero Position

Simply resets the work coordinates to 0, but is used frequently to restore operation from a new coordinate base, such as after aligning the spindle/bit over what is considered position 0,0,0 on the work piece.

Go Home

After running a file, this is used to move the spindle up and over the work piece back over X=0 and Y=0. The Z coordinate will be three mm higher than the highest point of Z-travel during the file send.

Grbl Settings

This brings up a dialog that is dynamically populated with available adjustable settings in the Grbl software. The number of settings varies with Grbl version. Any settings that are changed will be sent to Grbl and it will update its non-volatile memory.

11 thoughts on “Grbl Controller Main Screen Options

  1. Hello,

    when i open my com port i get the Version of the grbl arduino. But there appears no status message. When i open the com port in a terminal it connects more faster and i can send commands like “$$”. Then i become all Settings. This doesnt work with the grbl controller. I´ve used different Versions of grbl controller with no success. Can you help me please ?

    Kind regards

    • Do you see anything in the status window after you click the Open button? I assume you confirmed the correct baud rate.

      Can you post what the logs show in the first 10 lines or so? If you are in Windows, it will be GrblController.log in c:\user\ folder. This is what I see when I successfully connect:

      2013-09-29 22:25:59.212 INFO (DIAG) – Grbl Controller 3.4.6 has started
      2013-09-29 22:26:01.629 INFO (DIAG) – User clicked Port Open/Close
      2013-09-29 22:26:03.318 DEBUG (DIAG) – GOT:
      2013-09-29 22:26:03.429 DEBUG (DIAG) – GOT:Grbl 0.8c ['$' for help]
      2013-09-29 22:26:03.429 DEBUG (DIAG) – Got Grbl Version (Parsed:) 0.8c ($$=1)
      2013-09-29 22:26:03.429 DEBUG (DIAG) – SENDING[0]: ?
      2013-09-29 22:26:03.601 INFO (STATUS) – Grbl 0.8c ['$' for help]
      2013-09-29 22:26:03.652 DEBUG (DIAG) – GOT:
      2013-09-29 22:26:03.652 DEBUG (DIAG) – Decoded: State:Idle MPos: 0.000000,0.000000,0.000000 WPos: 0.000000,0.000000,0.000000
      2013-09-29 22:26:03.763 DEBUG (DIAG) – GOT:ok
      2013-09-29 22:26:03.964 DEBUG (DIAG) – SENDING[0]: $G
      2013-09-29 22:26:03.964 INFO (STATUS) – > $G

  2. Hey, so how do I set my machine coordinates? Obviously all machines are different sizes, so how do I tell the program how long my XY, and Z access’s are? Forgive me, i’m very new to CNC’s.

    • Right now the program doesn’t allow you to set the soft limits, but you should be able to do it manually by following the following instructions and using version 0.9 of grbl:

      I haven’t tried this technique yet so can’t vouch for its correctness. Let me know if you need further help.

  3. From the main screen can you Jog the Axis with keyboard Keys?
    My Machine is not next to my PC. If the jog commands can be bound to keys it’s easy to use a game controller to jog the machine.

    thanks for the Software it works Great!

  4. When I run a file, then click the Go Home button, it goes up by 3mm, then takes a straight line path back to 0,0,0. So, while it is moving in x and y back to the origin, it is also moving in z. In order to clear the workpiece on the way back to 0,0,0, it should go up 3mm, back to x=0,y=0, THEN go back down to z=0.

    Except for this, I have had good experience with Grbl Controller. Thank you for your efforts.

    • One more thing about Go Home. When I jog the machine, then click Go Home, it moves up in z, but then does nothing else.

      • Thanks for pointing that out. I think the bug is that I am doing a G1 x0 y0 z0 when I want to do a G1 x0 y0, then followed by a G0 z0. I will add a item to the github issues list.

  5. Question 1
    I have the gcode file set up for inches but only millimeters show up on the grbl display . And what is odd is that the visual of the toolpath shows up in the correct inches.
    Can I make the display read in inches as well.??

    Question 2
    Also when i connect to the com port the display starts “lights up” with big black numbers. BUT as soon as I start to jog the machine to set my zero points etc, it “grays out” so i lose my reference… I just have to eyeball it. Once I start the program the lcd comes alive again… but that doesn’t help me when i initiall set up.
    Is there a way I can read the LCD dsplay while jogging before running program?

    Question 3:
    After zeroing x,y and z axis, I set my “starting height” above z by “stepping it up” by 10, 5 1, 0.1 etc. without the benefit of having a display as it is grayed out and doesn’t respond as mentioned above.
    For 1 inch I would step it up by 25.4 steps since I am assuming the steps are equal to millimeters. Is this correct?

    • 1. Probably a bug, it should show inches (and used to at one time)
      2. If you are willing to forgo some performance during manual control, it is possible to prevent the grey out behavior -> go to Tools > Options > Display and choose the top button (Always request)
      3. The display should be showing in inches if you have inches mode. If this is behaving inconsistently, check the version of Grbl as I believe anything older than 0.8 may not work. If you are still having problems, let me know.The Machine and Work coordinates should have the units showing, i.e. (mm) or (in)

Leave a Reply to zapmaker Cancel reply

Your email address will not be published. Required fields are marked *


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>