High Current GRBL CNC Controller
Safety Statement
The author of this document is not liable or responsible for any accidents, injuries, equipment damage, loss of money or loss of time resulting from improper use of electrical or mechanical or software products.
Assembling electrical CNC machine components like power supplied, motors, drivers or other electrical components involves dealing with High voltage AC (alternating current) or DC (direct current) which can be extremely dangerous and needs high attention to detail, experience, knowledge of software, electricity and electro-mechanics or mechanics.
BEFORE MAKING ANY CONNECTIONS OR DISCONNECTIONS, POWER MUST BE REMOVED FROM THE DEVICE AND THE CONTROLLER. FAILURE TO DO SO WILL VOID ANY AND ALL WARRANTIES.
1.0 Introduction
This High Current GRBL CNC Controller kit is a modified version of the original GRBL controller. It allows you to use the GRBL system with the High Torque motors to their full potential.
2.0 Bundled Parts List
The table below shows the types and quantity of components in the controller bundle.
Part | Quantity |
Arduino Nano + Terminal Shield | 1 |
TB6600 Stepper Motor Driver | 4 |
4 Core Shielded Xtension Cable | 4 |
2 Core Shielded Xtension Cable | 3 |
DC Cable 16 AWG | 5 (m) |
DC ground wire | 1 (m) |
Estop Switch + E-Stop Cable | 1 |
Limit Switch Kits with Spade Connectors | 3 |
Terminal Block | 1 |
MEAN WELL Power Supply 24V 350W | 1 |
3.0 Specifications
The specification for the controller and drivers are shown below:
Arduino UNO Compatible Micro Processor
- 14 digital I/O pins
- 6 analogue inputs
- 16 MHz crystal oscillator
- 5V Logic
- Flash Memory: 32 KB (0.5KB used by bootloader)
- SRAM: 2KB
- EEPROM: 1KB
- Input voltage range: 6-20V
TB6600 Stepper Drivers
- Overheat, over current and short circuit protection
- Input anti-reverse protection
- Supports 8 levels of current control
- Supports 6 levels of micro step adjustment
- High-speed optocoupler isolation
- Large heat sink for effective cooling
4.0 Wiring Guide
Below is the wiring guide for this controller. Please make sure to take care when wiring your components as there is risk of damaging the components when wired in incorrectly.
4.1 Arduino Nano
Insert your Arduino Nano into the terminal shield in the manner depicted below. Take care to insert it in the correct orientation.
Click Image to Expand
4.2 TB6600 Stepper Motor Driver Wiring
4.2.1 TB6600 Stepper Motor Driver to Power Supply Wiring
The wiring of the stepper motor drivers is shown below. The polarity of the input power to the driver must be correct as you risk damaging the drivers and the power supply. Please note that ENA+(+5V) and ENA-(ENA). Must be left blank.
The Red wire connects the (V+) terminal of the power supply to (VCC) on the TB6600 stepper motor driver and the black wire connects the (V-) terminal of the power supply to (GND) on the stepper motor driver
Click Image to Expand
4.2.2 TB6600 Looping PUL- and DIR-
The PUL- and DIR- must be looped otherwise the motors will spin in a single direction when running gcode or jogging the machine
This is easily done with the supplied pre-cut lengths of single core wire. Please use the lengths of cable to loop from GND to PUL- and DIR-.
Click Image to Expand
4.3 TB6600 Stepper Motor Driver to Arduino Connection
The Step and Direction Pins for the drivers need to be wired in correctly otherwise there will be undesirable results from the motor. Please also have a look at the pinout table below the Schematic
Click Image to Expand
4.4 Pinout Table
Arduino Pin | TB6600 Pin | Axis and Function |
GND | GND | Common Ground |
D2 | PUL+ | X-axis Step/Pulse |
D3 | PUL+ | Y-axis Step/Pulse |
D4 | PUL+ | Z-axis Step/Pulse |
D5 | DIR+ | X-axis Direction |
D6 | DIR+ | Y-axis Direction |
D7 | DIR+ | Z-axis Direction |
5.0 Stepper Motor Wiring
5.1 For Lead Screw Transmission Machines:
Your motors must follow a wiring pattern to match the coils. Please note that the below wiring pattern suits our motors. If you are using your own motors, make sure that you adjust the wiring to suit your motors. Our sequence is: Red – Green – Blue – Yellow in coils A+, A-, B+ and B- respectively.
Click Image to Expand
5.2 Belt and Pulley Transmission Machines:
Please repeat this step for each axis of the motor. If you are using this controller bundle with a dual Y axis machine that uses motors that move along the Y gantry like the Ox CNC machine, The A axis wiring sequence must be reversed as shown below:
Click Image to Expand
6.0 Limit Switch Kit Wiring
6.1 Limit switch wiring guide
Limit switches are used to home your machine and stop your machine from bumping in the end of the gantry systems. The limit switches can be wired in the normally open or normally closed configuration.
Click Image to Expand
6.2 Limit Switch Pinout Table
Axis | Arduino Nano Pin | Limit Switch Pin |
X | 9 | NO |
Y | 10 | NO |
Z | 12 | NO |
7.0 Emergency Stop Switch and Mains Power Supply Wiring
7.1 Wiring
This section of the manual required a licenced electrician or similarly qualified individual due to risk of component damage and electrocution. The Live wire must be put through the emergency stop to stop power when the emergency stop is activated. In this case the Live wire is Brown. Please take care to use the proper wiring specific to your country. The color code shown below is the EU colour code.
Click Image to Expand
8.0 Software Installation
8.1 Arduino IDE
Before using the CNC, you will need to install the firmware into the controller. To do this, please follow the steps below in order.
9.1.1. Download the Arduino IDE linked Here. Please take note of the download location. In most cases the default download folder is “Downloads”
9.1.2. Install the IDE by double clicking the file and following the installation process.
9.1.3. You may be required to install CH340 drivers if you are unable to detect the port in the Arduino IDE. Please install the drivers by following this great tutorial here.
8.2 GRBL Firmware
After the arduino IDE installation process has been completed, we can install the GRBL firmware. To do this, please follow the steps below in order:
9.2.1. Download the GRBL firmware from the Github archive Here.
9.2.2 To install the GRBL firmware, please extract the downloaded grbl file named grbl-master. Please locate the file named grbl and copy this file to the Arduino libraries folder. This Arduino IDE folder can be found in Documents\Arduino\libraries.
9.2.3. Before uploading the grbl firmware, we will need to set the firmware up in the software. The correct Microcontroller type and Port must be selected. To choose the microcontroller, please select Tools in the menu select Arduino Nano.
9.2.4. To choose the bootloader type, please select Tools in the menu and select Atmega328P (Old Bootloader).
9.2.5. To choose the port, please select Tools in the menu and select the port that the arduino is connected too. In this example, the port is COM8. Yours may be different.
Click Image to Expand
9.2.6. After installing, please open the Arduino IDE program and locate the installed library. Please go to File/Examples/grbl/grblUpload
Click Image to Expand
9.2.7. The grbl program will then be shown:
Click Image to Expand
9.2.8. Please click the upload button, circled in Red to upload the firmware to the controller. The firmware will then start uploading to the controller. This can take up to a minute. Upon finishing the upload, a message will display that it has uploaded successfully.
Click Image to Expand
8.3 Recommended List of Gcode sender
You can use a range of Gcode senders to run your machine and execute the Gcode. Our recommendations are:
- Universal Gcode Sender
- SourceRabbit
- GRBL Panel
- Candle
- CNCjs
8.4 GRBL Settings For Lead Screw Machines – Lead CNC, WorkBee, C-Beam Machines
Please edit $130, $131 and $132 to suit your lead screw machine.
Setting | Parameter | Parameter Function |
$0 | 10 | step pulse, usec |
$1 | 255 | step idle delay, msec |
$2 | 0 | step port invert mask:00000000 |
$3 | 0 | dir port invert mask:00000000 |
$4 | 0 | step enable invert, bool |
$5 | 0 | limit pins invert, bool |
$6 | 0 | probe pin invert, bool |
$10 | 3 | status report mask:00000011 |
$11 | 0.02 | junction deviation, mm |
$12 | 0 | arc tolerance, mm |
$13 | 0 | report inches, bool |
$20 | 0 | soft limits, bool |
$21 | 0 | hard limits, bool |
$22 | 0 | homing cycle, bool |
$23 | 0 | homing dir invert mask:00000000 |
$24 | 180 | homing feed, mm/min |
$25 | 1800 | homing seek, mm/min |
$26 | 250 | homing debounce, msec |
$27 | 5 | homing pull-off, mm |
$100 | 2000 | x, step/mm |
$101 | 2000 | y, step/mm |
$102 | 2000 | z, step/mm |
$110 | 2000 | x max rate, mm/min |
$111 | 2000 | y max rate, mm/min |
$112 | 2000 | z max rate, mm/min |
$120 | 150 | x accel, mm/sec |
$121 | 150 | y accel, mm/sec |
$122 | 150 | z accel, mm/sec |
$130 | Machine Specific | x max travel, mm |
$131 | Machine Specific | y max travel, mm |
$132 | Machine Specific | z max travel, mm |
8.5 GRBL Settings For Belt Driven Machines – Ox CNC
Setting | Parameter | Parameter Function |
$0 | 10 | step pulse, usec |
$1 | 255 | step idle delay, msec |
$2 | 0 | step port invert mask:00000000 |
$3 | 0 | dir port invert mask:00000000 |
$4 | 0 | step enable invert, bool |
$5 | 0 | limit pins invert, bool |
$6 | 0 | probe pin invert, bool |
$10 | 3 | status report mask:00000011 |
$11 | 0.02 | junction deviation, mm |
$12 | 0 | arc tolerance, mm |
$13 | 0 | report inches, bool |
$20 | 0 | soft limits, bool |
$21 | 0 | hard limits, bool |
$22 | 0 | homing cycle, bool |
$23 | 0 | homing dir invert mask:00000000 |
$24 | 180 | homing feed, mm/min |
$25 | 1800 | homing seek, mm/min |
$26 | 250 | homing debounce, msec |
$27 | 5 | homing pull-off, mm |
$100 | 26.67 | x, step/mm |
$101 | 26.67 | y, step/mm |
$102 | 200 | z, step/mm |
$110 | 5500 | x max rate, mm/min |
$111 | 5500 | y max rate, mm/min |
$112 | 2000 | z max rate, mm/min |
$120 | 150 | x accel, mm/sec |
$121 | 150 | y accel, mm/sec |
$122 | 150 | z accel, mm/sec |
$130 | 820 | x max travel, mm |
$131 | 775 | y max travel, mm |
$132 | 70 | z max travel, mm |