Skip to content

Grbl connections

Huub Buis edited this page Sep 30, 2021 · 15 revisions

Grbl controllers can be connected using USB, Bluetooth or WiFi.

Grbl USB connection

The easiest way to connect the GRB controller to a computer (tablet) is using an USB connection. This is always a good starting point. Use the shortest cable possible and keep the USB cable away from the stepper cables. If the USB connection works fine, you could try to connect to Bluetooth or WiFi.

Grbl Wi-Fi connection

WiFi is super fast and works very reliable in my 8m x 2m shop. For the WiFi connection I use an ESP8266 module (less then 3$ on eBay).
There is also an Arduino (Uno and Mega) with an onboard ESP8266 module. This works really well and this is my preferred solution. It is supplied by robotdyn and also available on eBay (search for UNO WiFi R3 ESP8266).

ESP8266 Wi-Fi firmware

The ESP8266 module firmware needs to be flashed. This can be done by using the Arduino IDE and a cheap USB to Serial adapter. I have made a small Arduino firmware program ESP8266Station for an ESP8266 Wi-Fi module. This firmware supports MDNS and LLNMR so the Wi-Fi module can be accessed by the HostName set in the program. Read the Wiki for flashing the firmware using the Arduino IDE.

Configuring Wi-Fi

The ESP8266Station firmware works in "Transparent Mode", It simply passes the data. Configuration is done by adjusting a few settings in the program before flashing. After flashing the firmware the module can be accessed by the HostName you set in the program. Read the Wiki for more information.

Grbl Bluetooth connection

The serial port on the Arduino can be used to connect a Bluetooth module. I tried the cheap, less than 3$ on eBay, HC05, HC04 and the SPP-C modules. All work well but the HC-05 module is my favorite because its fast communication and easy configuration. To connect the Bluetooth module to the Arduino you need a level converter.
The Bluetooth communication can be tested using a program like BT-serial.

Configuring Bluetooth

The Bluetooth modules needs to be configured (Baud rate). This can be done using the Arduino and a Level converter, but it is easier to use a USB to serial adapter and a terminal program like CoolTerm.

Level converter and breakout boards

The HC0X and ESP8266 modules accept max 3.3 volts inputs. A straight connection to the Arduino will destroy them. To connect these modules you need a level converter on the RX input of the modules. Because a mistake is done easy, I also use a level converter on the TX output of the modules. For easy connection I made breakout boards with level converters and an IDC6 (flat cable connector).
If can not make your own boards, buy a level converter they are cheap and easy to use. Buy the BOB-12009 from SparkFun or look on eBay.

Arduino Uno Shield

For the Arduino I made a Shield for connecting the stepper drivers and added an IDC6 connector for connecting a wireless (Bluetooth or Wi-Fi) module.

Boards and Schematics

All boards and Schematics are included as Eagle files.