Introduction: How to Configure CNC With Raspberry Pi

About: Do you like technology? Follow my channel on Youtube and my Blog. In them I put videos every week of microcontrollers, arduinos, networks, among other subjects.

Today we’ll learn how to configure CNC with Raspberry Pi. We will prepare a Raspberry Pi 3 with the RPI CNC V4 image using HAT version 2.58. We’ll mount this HAT and configure the GRBL. This gives continuity to the subject covered last week entitled, “Plotter and Laser with Raspberry Pi CNC HAT,” where we set up a laser plotter with an XY table.

Today, we are going to talk about the HAT (Hardware attached at the top), which is a rectangular plate that has four mounting holes in the corners that align with the Raspberry Pi mounting holes. It has a 40W GPIO connector and supports the special auto configuration system, which allows for automatic configuration of the GPIO and driver configuration. The feature is very efficient for the automation of CNCs.

It is important to remember that when I talk about CNC (Computer Numeric Control), in addition to the laser plotter, I'm also talking about a router, a milling machine, and a CNC lathe. These are all the same because the origin is the same. The automation of these machines requires CNC control, so you can do many things by understanding this system.

Considering the image above, my personal suggestion is that you use Raspberry instead of the PC with Arduino Uno. I also suggest you use Protoneer and the assembly of the Laser Plotter performed in the first video on this subject.

Step 1: Resources Used

1 Raspberry Pi 3 (but could be B+, 2, or 3 with 20x2 connection)

1 Protoneer RPi CNC Hat version 2.58

1 16Gb micro SD card (recommended 8GB or more)

1 Source 12V x 10A

3 step motor drivers DRV8825

1 Monitor with HDMI or with an adapter

USB Keyboard and Mouse

Wires, soldering iron, soldering

Step 2: Directing the CNi Hat on Raspberry Pi

The assembly of the RPi CNC Hat on the Raspberry is quite simple.

• Metallic spacers and their respective screws are provided next to the plate

• Start by attaching them to Raspberry

• Don’t over tighten, which can prevent damage to the board

• After setting up Raspberry, it should look like this:

• Note that depending on the Raspberry version, you may need to use 3 or 4 of these spacers

• Now connect the CNC HAT RPi by aligning the connectors. Spacer holes should be aligned too

• Finally, screw the CNC HAT RPi to the spacers, but be careful not to over tighten the screws

Step 3: Example of Mach3 Board

I have here part of a schematic of plates that work with the Mach3 in the parallel port. It is important to remember, however, I suggest using Raspberry, as I consider Mach3 to be somewhat "old" or even "outdated" in relation to more recent capabilities. Both Raspberry and GRBL direct are better than Mach3, because with them you can have software that has control of the machine's situation.

Step 4: Comparison

I want to show 3 situations here:

1 - Mach3 = Example of a router that I have:

I have a PC> parallel port> controller card> drivers> stepper motors.

In this case, why was this architecture chosen? If we go back in time, 10 or 15 years ago, there was great difficulty when building a micro controlled board. This was expensive both to develop and produce, and was even difficult to sell because of the final cost. It was then that Mach3 began controlling everything.

2 - GRBL = with the emergence of RGBL with Arduino UNO, we have the following scheme:

I have a PC> Arduino UNO with GRBL> drivers> stepper motors.

Unlike the first situation, in which Mach3 does everything and the controller card does nothing, here, the PC sends to the GRBL the Gcode. But here we have a different difficulty: GRBL information is too much for Arduino UNO. Thus, this situation can work well, but only for the simple projects.

3 - Raspberry = Here, we have a totally different scheme:

Raspberry / GRBL> drivers (HAT)> stepper motors.

In this case, the software runs on Raspberry. I can get a monitor, a keyboard, and a mouse and mount a totally self-contained machine. And this situation is the best that I have found to this day. Remember, of course, that this too will evolve. Fortunately.

Step 5: Saving the Image

In this step, we will talk about the recording of the OS image, that is, the operating system configured to run the CNC software, in Raspberry.

• For Raspberry Pi to work, it must have an operating system installed on a micro SD card that it can access.

• In this case, we will use a ready-made Standard Raspberry Pi Jesse image already preconfigured. It comes with several applications for interacting with HAT.

• Download the latest version from the link:

• In addition to downloading, the site has other important information about the operating system, settings, and available applications.

• After downloading and unpacking the image, you need to transfer it to the micro SD card.

• For this, we can use an image recorder. We chose the Etcher that can be found in the link:

Step 6: Executing Image Recording

• Insert the SD card into the card reader

• Open the Etcher program

• Select the file of the image you want to record

• Select the card and click continue

• Click "Flash!" to save

• After recording, the program will check the result of the transfer

• Wait for it to complete

Step 7: Initial Settings of the CNC Hat RPi

• To start the RPi with the SD image, install the SD

• Connect the monitor to the HDMI output, and a keyboard and mouse to the USB ports

• Connect the power supply to the RPi

• After starting the system, a workspace like this should appear

Note: If you have never used the RPi before, we recommend a previous reading. There are many articles available that provide an introduction.

• Using RPi 3, we need to configure the serial port, due to hardware changes that occurred in this version of Raspberry and software with Jessie Raspbian.

• To facilitate the process, there is a desktop script that will serve this purpose, the RPi3 Serial Config.

• In the case of using an RPi 3, we must execute it. It will fine-tune the serial settings to work with the CNC Hat and will restart the system for the changes to take effect.

• At this point, we can now connect to the GRBL and configure it. For this, we can use the Universal G-Code Sender or bCNC.

• For more details about the meaning of each of the GRBL configurations, see:

• One of the parameters that we will need to change in the future will be the $ 32, responsible for the behavior change of the GRBL to the laser mode.

• In this mode, the GRBL will move continuously between commands G1, G2, and G3 while the laser power is updated instantly with each movement.

• More details are provided at the link below:

• Using the Universal G-Code Sender, we can connect to the serial / dev / ttyAMA0 using an 115200bps baudrate. Just click Open.

• The GRBL response will appear on the terminal screen just below:

**** Connected to /dev/ttyAMA0 @ 115200 baud ****

Grbl 1.1f [‘$’ for help]

By typing $$ and pressing ENTER on the command bar, the command will be sent and the GRBL will respond with your current settings. These are the ones we use.

• To change any of the settings listed, simply send the $ command followed by the parameter index, followed by an equal sign and the new value.

• For example: assuming that it is necessary to change the maximum speed of the X axis (X Max rate) to 1000 millimeters per minute (mm / min), we would send the following command:

$ 110 = 1000

• Where 110 is the index of the parameter (X Max rate) and 1000 the new value (in mm / min)

• We can configure GRBL also by bCNC. In this case, click on "FILE" after opening the program. Note that the connection settings are correct:

 Port: / dev / ttyAMA0

 Baud: 115200

 Controller: Grbl

• By clicking on "Open," the connection must be established.

• By clicking "TOOLS," and then "Controller,” bCNC will show all GRBL settings.

• We can change them by clicking on the values.

• After we make the changes, click on the Controller button just above the options for the bCNC to start uploading the information.

• The status bar can be used to accompany the upload process.

Step 8: Files

Download the files: