How to Set Your GRBL Feed Rate

Harbor Freight Mini Mill with DIY Arduino CNC Controller

Introduction – GRBL Feed Rate

Congratulations on getting your CNC machine running. By now you should have adjusted a few of the GRBL settings. If not then before setting your GRBL feed rate, I recommend you set the steps per mm at the very least. Click the following link for a guide that will walk you through the process for the x,y and z axis Steps per mm ($100, $101, $102). GRBL settings 101

Now that your machine moves to the location you want, it’s time to see if we can get the machine there faster. The following guide outlines the process of setting your GRBL feed rate.

Why Does Feed Rate Matter?

Many times, your machine will have to rapid to a location before or between cuts. Depending on what you are cutting and how big that part is, this can add up to a significant amount of time. Especially if your max GRBL feed rate settings are not optimized. In my case, I was able to more than double the safe speed of my machine. This meant that the machine moved to the cutting positions faster and didn’t waste time slowly moving to the next cut. I saw a significant drop in cycle time, the amount of time it takes to cut a given part.

Again these settings deal with the machine limits. The actual cutting feed rates in your gcode program are set in your CAM software. These settings represent the upper limit of what the machine will do even if the gcode program tells the machine to move faster.

GRBL Feed Rate Settings

We are interested in maximizing the following the GRBL feed rate parameters. These are accessed through the command interface portion of Universal GCode Sender (UGCS).

$110=635.000 – X – Max Rate (mm/min)
$111=635.000 – Y – Max Rate (mm/min)
$112=635.000 – Z – Max Rate (mm/min)

 

Not to worry, we don’t need any fancy math to define these settings. We will use a series of tests and iterate to find the optimal GRBL feed rate settings.

For a complete list of GRBL Settings, download the GRBL Settings Pocket Guide

Maximum Speed – GRBL Definition

Max Rate – Sets the maximum speed for a given axis. The machine will not move faster than the values set here. This is the feed rate the machine will use when you type a G00 command.

Understand You Baseline

The first thing we want to do is capture the baseline settings. This way, we can go back to these if we make a mistake while updating one of the new settings.

1. Power on your machine

2. Open Universal Gcode Sender (UGCS) and view your current settings by typing $$ in the Command box under the Command tab.

You should get a list that looks something like the following.

**** Connected to COM3 @ 115200 baud ****

Grbl 0.9j [‘$’ for help]
>>> $$
$0=10 (step pulse, usec)
$1=25 (step idle delay, msec)
$2=0 (step port invert mask:00000000)
$3=3 (dir port invert mask:00000011)
$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.010 (junction deviation, mm)
$12=0.002 (arc tolerance, mm)
$13=1 (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=25.000 (homing feed, mm/min)
$25=500.000 (homing seek, mm/min)
$26=250 (homing debounce, msec)
$27=1.000 (homing pull-off, mm)
$100=314.960 (x, step/mm)
$101=314.960 (y, step/mm)
$102=78.740 (z, step/mm)
$110=800.000 (x max rate, mm/min)
$111=800.000 (y max rate, mm/min)
$112=350.000 (z max rate, mm/min)
$120=10.000 (x accel, mm/sec^2)
$121=10.000 (y accel, mm/sec^2)
$122=10.000 (z accel, mm/sec^2)
$130=200.000 (x max travel, mm)
$131=200.000 (y max travel, mm)
$132=200.000 (z max travel, mm)
ok

3. Highlight lines $0 through $132 and copy the information (use “Ctrl  C”). Next, open “Notepad” or your preferred text editor and paste the settings into a new file. Save the file as “GRLB_Settings_Baseline.txt”.

We are interested in settings $110, $111 & $112. Note, those show above are my final settings. The initial GRBL feed rate values were significantly lower.

X Axis Max Speed

1. Review the value in $110

2. Add about 100 to the value and send the new setting by typing $110=”new value” (Note, just enter a number without the “”.) For example, my first iteration was $110=200.000

3. Next jog the machine to the far left of the allowable travel. This gives us as much room as possible to test our new speed setting. Use the keyboard or jog buttons under the ”Machine Control” tab.

4. Next select the Command tab.

5. Type the following gcode command “G00 X4” This will tell the machine to move 4 inches in the positive X direction at the maximum feed rate.

CAUTION – Be sure your machine has at least 4 inches of travel in the X axis. If not, then adjust the command in step 5 and reduce the travel by using a number that is slightly smaller than the allowable travel of your machine in the the X direction.

6. Press enter then watch and listen to your machine as it moves.

7. Does the machine run smoothly? If so, you can go back to step 2 and repeat the process. This will help you sneak up on the upper speed limits of your hardware setup. Does the machine struggle and sound like it’s tearing itself apart? That means you have found the upper limit of the speed. Move onto step 8. Also, if the machine moves as fast as your are comfortable with then move on to step 8.

8. Take the last setting you entered into the machine and multiply by .9, this is your final speed setting value for the X axis. Enter this final value in the $110 setting variable by typing $110=”final value” in the Command box under the command tab.

9. Do one last check using this new value. Jog the machine as far in the negative X direction as possible. Then under the Command Tab type “G00 X4” The machine should move smoothly without any grinding. If that is the case, move on to set the Y axis feed rate.

Y Axis Max Speed

1. Adjust the max speed in the Y direction by starting with the value you found for the X axis. Enter that by typing $111=”value”

2. Jog the machine to the forward most position of the allowable travel using the keyboard or jog buttons under the ”Machine Control” tab. This gives us as much room as possible to test our new speed setting.

3. In the Command box under the Command tab Type the following gcode “G00 Y3” This will tell the machine to move 3 inches in the Y direction. (Note, I used 3 inches because of the travel limits on my machine. If you have a larger machine, you may want to use more of the available travel. If you have a smaller machine, be sure to use a smaller value.)

4. Press enter then watch and listen to your machine as it moves.

5. Does the machine run smoothly? If so, you can go back to step 1 and add 100 to the value then repeat the process. This will help you sneak up on the GRBL feed rate upper limit of your hardware setup. Does the machine struggle and sound like it’s tearing itself apart? That means you have found the GRBL feed rate upper limit. Move onto step 6.

6. Take the last setting you entered into the machine and multiply by .9, this is your final speed setting value for the Y axis. Enter this final value in the $111 setting variable by typing $111=”final value” in the Command box under the command tab. In my case, I found 800.000 to be the GRBL feed rate upper limit for my machine.

7. Do one last check using this new value. Jog the machine as far in the negative Y direction as possible. Then under the Command Tab type “G00 Y3” The machine should move smoothly without any grinding. If that is the case, move to the Z axis.

Z Axis Max Speed

1. Review the value in $112

2. Add about 50 to the value and send the new setting by typing $112=”new value” (Note, just enter a number without the “”.) For example, my first iteration was $112=200.000

3. Jog the machine to the lowest Z axis position using the keyboard or jog buttons under the ”Machine Control” tab.  This gives us as much room as possible to test our new speed setting.

4. Using the Command box under the Command tab Type the following gcode command “G00 Z4” This will tell the machine to move 4 inches in the positive Z direction (up). (Note, here we want to move the Z axis up against gravity. This way we know that the max speed will work in both the Z positive (up) and Z negative (down) directions.)

5. Press enter then watch and listen to your machine as it moves.

6. Does the machine run smoothly? If so, you can go back to step 2 and repeat the process. This will help you sneak up on the upper speed limits of your hardware setup. Does the machine struggle and sound like it’s tearing itself apart? That means you have found the upper limit of the speed. Move onto step 7.

7. Take the last setting you entered into the machine and multiply by .9, this is your final speed setting value for the Z axis. Enter this final value in the $112 setting variable by typing $112=”final value” in the Command box under the command tab.

Conclusion

A few simple tweaks can really make life easier in the long run. By maximizing your GRBL feed rate settings, you will save time with every part you make. Saving a few seconds in your machining operations might not seem like much initially, but over time they really add up. I haven’t seen any problems with my gShield with my higher GRBL feed rate settings . I encourage you to try tweaking some of your settings. What do you have to lose? If it doesn’t work just go back to the last setting that did work.

The process outlined above is a guide to find the maximum GRLB feed rate settings that your physical hardware will allow. If you are just starting out, you may want to consider using 25% of these maximum values to start. As you grow more comfortable with your machine, you can increase the GRBL feed rate settings until you are back up to the maximum values found above.

If you have any questions, feel free to contact me at Tim@DIYMachining.com

Thanks for reading. Until next time… Tim

Leave a Comment

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