GRBL CNC controller


The controller has an Atmega 328p microcontroller, with GRBL 1.1 pre-loaded, to interpret g-code

It can be connected with USB to Windows or OSX computers, and to the computer it looks like an Arduino nano. Arduino drivers work, as well as the “easel local” driver as developed by Inventables (that allows you to use it with the easy to use cloud software “easel“).

The button on the top is an emergency button: pressing it down will stop the power to the motors and it will remain in this pressed down position. Turning it slightly will allow to pop it up again – but it will not remember its last position where it got pressed down so you will have to home the machine again if the emergency button was pressed during an operation.

The three white buttons on the front are from left to right:

  • pause
  • resume
  • stop



The connector layout on the backside:


The four connectors on the top row, are from left to right:

  • X axis motor
  • Y1 motor
  • Y2 motor
  • Z axis motor

The connectors on the bottow row are from left to right:

  • The limit switch connector (x limit switch 2-wire cable, y limit switch 2-wire cable, z limit switch 2-wire cable, probe 2-wire cable)
  • The auxiliary devices connector (mist 2-wire cable, flood 2-wire cable, spindle PWM signal / spindle 0-10V signal / ground)

For instance, if you want to control a 220V spindle with the controller, then have a solid state relay connected to the spindle PWM signal and the ground:

Also make sure that you have set in easel (or other software that you use) that you use “automatic” spindle control, or at least that the software is supposed to send a spindle on/off command. With PWM – this can also be done by entering a high enough value – for instance 12000 will basically result in the solid state relay behaving as on/off:

3.Motor cables

We ship the motor cables in two color conventions:

  • Red & Green (these are a pair) and Blue & Yellow (these are a pair) ; or
  • Red & White (these are a pair) and Black & Green (these are a pair)

There is no particular order to screw the cables into a connector, but you need to respect the pairs. For instance, blue and yellow always need to be next to each other.

If you want to change the direction of a motor, it’s simple: just change the order of one pair. So if you change the red and green to green and red, then the direction of the motor will be inversed.

4.Software and GRBL settings

The controller works with a number of softwares; for instance:

Universal Gcode Sender:


Lightburn (for lasering):

Your computer may require a driver to use the controller:

  • If you work with the online easel software, then it will also prompt you to install a driver. It may thereafter also prompt you to do “Machine setup” as well, which is fine if you use the controller with an x carve style CNC – if not, then it may alter some settings that are crucial for your machine and then you may need to change them thereafter again: you can do this under “Machine” => “Advanced” => “Machine inspector”
  • You may also benefit from downloading the Arduino software, especially if your computer would otherwise not readily communicate with the controller (this is the case with windows in most cases)

Here you find information on the GRBL settings; should you wish or need to change them:


To open Easel, you just need a webbrowser. Go to:

You’ll see this screen (if you are already logged in, this screen may be automatically skipped):

Click the “sign in” button – then you’ll have a screen where you can create an account with your email address and choose a password, or you can log in if you already created an account. After logging in, you’ll get to this screen:

If this is the first time that you use Easel with your controller, then the button “Carve” in the top left corner will be blue. Click on it, and it will prompt you to install a driver. You can install it.

Then, next times that you will open Easel, it will show green when your controller is connected on a USB port (If this is not the case, and particularly with Windows computers, it may be that the button is still blue and when you click on it that you are asked to manually enter a COM port – that will be a lower number, like 0, 1, 2, 3, 4 or so):

4.1.1.Machine setup

Clicking on the green “carve” button for the first time will prompt you to do “machine setup”:

Or if you have already used the program before, it is possible to reach the “machine setup” step in the “Machine” menu, where you can click “set up your machine”:

The things to select for your machine will then depend on your mahine type:

x carve style CNCs with GRBL controllerx carve style CNCs with economy controllerworkbee style CNCs

If your CNC is an x carve style with the “x controller” style GRBL controller, then enter these elements in the drop downs:

And click “confirm settings”. Then it will take a moment to communicate with the controller.

If your CNC is x carve style with the economy controller, then enter these elements in the drop downs:

And click “confirm settings”. Then it will take a moment to communicate with the controller.

If your CNC is a workbee style, then enter these elements in the drop downs:

And click “confirm settings”. Then it will take a moment to communicate with the controller.

Then you need to tell the controller what direction it needs to go to correspond with the movement command that it will receive when using the program: You see arrows next to X, Y and Z. Click these arrows and check if the machine is making the movements as indicated by the arrows.

If on one or more of the axis it’s making inverse movements, then no worries! That is exactly what this machine setup process is for! Just click “no” next to an axis in that case, and you’ll meet this screen:

Click the first option that it is indeed not moving the right direction. A next screen pops up:

Click the first option to change the grbl settings of that axis.

As soon as all axis are moving like the arrows indicate, then just click them all “Yes”

And click “continue” to move to the next screen:

Choose manual spindle control from the dropdown list and click “save spindle preferences” to go to the next screen:

Depending if you have homing switches, you may click “Yes” or “No”. The same is true for the next step of “Z probe”.

Even if you have homing switches or a z probe, it is possible that you first need to check and set the “steps per mm” or the “soft limits” as described in the next steps before being able to do this homing and probing sequence correctly. Then just do the next step(s) first, and re-do this machine setup later.

4.1.2.Check or modify steps per mm

Before carving, it is a good idea to check that the distances on your screen’s commands will actually correspond with the same distances that the machine will make. If not, then no worries: then can be easily modified.

Let’s check them first: Click on the button with the four arrows in the top left (next to the green “carve…” button) and it will open a jog menu:

If you don’t have that button with the four corners, then it’s also possible to jog the machine by just clicking on the green “carve…” button itself:

In that jog menu, change the interval from 1mm to 10mm:

And click on the arrows of the axis and measure the distances that they actually travel.

Did they travel 10mm? Then you’re fine! Nothing to do anymore 🙂

Did they travel more or less then 10mm? Then you need to follow these steps:

Go to the menu “Machine”:

And in the menu that appears, click “advanced”:

Then, click “machine inspector”

This opens a window – where cryptic values are printed – scroll down in the list, and check the value that is there for $100, $101 and $102. These are respectively the values for the X, the Y and the Z axis.

Enter the value of the axis that wasn’t moving the requested 10mm distance (so value next to $100 for X, value next to $101 for Y and value next to $102 for Z):

Steps per mm calculator

And then, go back to this screen:

And in the text field you enter the new calculated value: for instance:

And press enter. An “ok” should be printed in the console output.

Do this for the axis that is required. So $100 is for X, $101 is for Y and $102 is for Z.

Then, I suggest that you re-do this step to check the distances now (please note: the first time that you do a jogging movement with new $100, $101 or $102 values, the controller may actually use a really weird distance movement, so ignore the first movement and then jog again)

If you still have to do the homing step from the “machine setup” because the steps per mm were not set correctly when doing the machine setup previously, then you can now re-do homing in machine setup.


Universal Gcode Sender’s website is

UGS itself can be downloaded from their download page:

Then, there is a choice of two version (Classic and Platform). If you download the “Platform” version, then you’ll have functions like “machine setup” – so it’s recommended to go for that one unless you want a simple interface.

4.2.1.Using UGS

The user guide for the Platform version, including how to connect and how to walk through machine setup is described here:

5.Torque settings

Next to each potentiometer for each axis, you will find an area to place a multimeter probe (TP1, TP2 and TP3) if you connect the positive probe to such an area, and connect the ground to the TP4 area, then you can have a readout in voltage round 1V.

By turning the potentiometer, you can increase or decrease the voltage readout and it will also dictate the amp output per driver: you need to multiply by 2.13 to know how much it will output in amp.

The potentiometer’s arrow is actually visible if you look very very well: it uses two dots – and the 2.6 to 2.8 amps output to reach max motor torque can be reached by turning that arrow in the 1h50 position (thus turning it an eight of a circle towards the side of the DIP switches)

So setting it around 1.3V should give the max motor torque.

6.DIP settings

The dip switch will dictate the number of microsteps.

The controller supports up to 1/16 microstepping. Not using microstepping will give the highest torque (100% motor torque), but will not give a lot of accuracy. So therefore, to improve accuracy, at the cost of reducing your motor torque, one can use microstepping:

off-on-off-on will give 1/2 microstepping (against 70% torque)

on-off-off-on will give 1/4 microstepping (against 38% torque)

on-off-on-on will give 1/8 microstepping (against 20% torque)

If you use GT2 belts:

  • then the 1/2 microstepping will offer an accuracy of 0.1mm (you can set that in $12 in grbl)
  • the 1/4 microstepping will offer an accuracy of 0.05mm
  • the 1/8 microstepping will offer an accuracy of 0.025mm

It will also dictate the $100 and $101 required parameter in grbl

  • for the 1/2 microstepping you need to set these at 10 steps/mm
  • for the 1/4 microstepping you need to set these at 20 steps/mm
  • for the 1/8 microstepping you need to set these at 40 steps/mm

7.More information

Our GRBL CNC controller is inspired by the “x controller” from Inventables – you will find more information on their assembly page.

Our controller behaves the same way and is electrically equivalent.

8.Open source

Our controller has been produced from drawings from Inventables and Bart Dring, that are available under the Creative Commons Share Alike 3.0:

Except for the mainboard, where the schematics of the original were slightly modified in order to use a plug-in Atmega 328p (a nano board) instead of a soldered Atmega 328p and to add optical signal filtering to the limit switch signals and the probe signal. According the the Creative Commons Share Alike 3.0 license, these adaptations are shared again here:


Suggest Edit

Leave a Reply

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


Translate »