Motor Hold?

Many people would disagree. What a lot of drivers prefer is that the motor power is strictly controlled by the sticks, and when the sticks are 0, the motors coast at 0. Its like taking your foot off the gas pedal - you don’t want the car to brake, you just want to stop accelerating and slow down.
Having the motors brake when the sticks are at 0 is very jolting, and many people do not want the robot to suddenly brake when they stop applying power.

Well, many people prefer coast for the drivetrain, because it is the method that gives the most control. Coast is the default mode of motors.
Coast is also used for motors that are not relevant to the operation of the robot when powered off. An example of this would be an elastic intake or flywheel. When they are off, they are not being used. When using coast, off means off. The motors are doing absolutely nothing, freely spinning until they stop due to internal friction. This is also the gentlest way of stopping in terms of motor strain.

Brake is when you want a motor to passively lock. It does not try to maintain its position, it just applies extra friction to the motor. This might be used for a grabber or something you don’t want to freely move when turned off. Brake does not apply any additional energy to the system, it just applies passive friction.

Hold is when you want the motor to actively hold the position. In this case, it is never off, constantly fighting to stay in the same position. Additional power is being sent to the motor to maintain the position. This might be used for an arm, where you want it to hold a position with a load, or a grabber where you want to maintain pressure. Hold has the largest strain on the motor, because it is constantly trying to adjust. It is practically impossible to force a motor to turn with hold on.

I personally mostly used coast on my robot. I used brake on my intake to stop the ball from sliding out, and I used hold on our arm. Don’t use hold unless you have to, as it is quite taxing on the motors.

Note that brake mode is only regarded when using velocity control, i.e. telling the motors to spin 0 velocity. Velocity control is default for VCS/VEXcode, and it uses PID to try to make the motors turn the exact velocity you ask regardless of load. However, PROS and the other languages also offer voltage control, where you simply control the end voltage that is being sent to the motor. In this cause, the brake mode is disregarded, and the motor will coast when 0 voltage is applied.

3 Likes