Posted on

My Z axis keeps dropping! A simple guide on using $1= 255

A couple of users have reported that their Z axis drops during situations such as when the machine stops moving, or when they turn on the router before a cut, which can be really annoying.  While the machine is supposed to have enough resistance from the v wheels and the leadscrew’s resistance to back drive to support a router, some machines may have such low friction in their Z axis that the weight of the router actually exceeds the resistance. You can either rotate the eccentric nuts to allow for more resistance on the Z axis, and/or the rest of this post will talk about another option.

This is where $1= 255 comes in. $1= 255 is a command that you can send to your Mill One that will hold all of your motors to prevent any of the axis from moving when the machine is stationary. This means that if you are experiencing your Z axis moving down, you can use this command to use the motor to hold the axis. Below is a detailed guide on using $1= 255. If you want to learn what $1= 255, and other setting commands mean, check out this page or go to the end of the page.

Step 1) 

Connect your Mill One to your computer and open up Universal Gcode Sender. You can use other gcode senders for this, and the process is the same, but the images below are from Universal Gcode Sender.

If you already have your Mill One connected previously, it is recommended that you open and close the connection.

Step 2)

Give the Mill One a minute to load. You should see the message “Grbl 1.1e [‘$’ for help]” and a string of settings come up in the console.

Step 3)

Into the command box, type in $1= 255.

Press enter. You should see the next entry in the console to say

“>>> $1= 255

Step 4)

Use the keyboard controls or the onboard jogging controls on Universal Gcode Sender to move one of the axis. You will notice that the motors are now powered on and you cannot move the axis by hand. This will prevent the Z axis from falling when the machine is not in motion.

To turn off motors, follow the same steps, but send the command $1= 25. This will allow the motors to turn off. It is recommended that when you are not using the machine, to unplug the machine from mains power or ensure that the motors are turned off with this command.


How does this work? Here is an excerpt from the Grbl 1.1v configuration page:

$1 – Step idle delay, milliseconds

Every time your steppers complete a motion and come to a stop, Grbl will delay disabling the steppers by this value. OR, you can always keep your axes enabled (powered so as to hold position) by setting this value to the maximum 255 milliseconds. Again, just to repeat, you can keep all axes always enabled by setting $1=255.

The stepper idle lock time is the time length Grbl will keep the steppers locked before disabling. Depending on the system, you can set this to zero and disable it. On others, you may need 25-50 milliseconds to make sure your axes come to a complete stop before disabling. This is to help account for machine motors that do not like to be left on for long periods of time without doing something. Also, keep in mind that some stepper drivers don’t remember which micro step they stopped on, so when you re-enable, you may witness some ‘lost’ steps due to this. In this case, just keep your steppers enabled via $1=255.