Lift system not holding in the up position

All 5 of my Bot’s lift systems will not stay in the up position without manually keeping the joystick engaged. Are there 2 ports that favor lift systems? Is there a way to program a hold using blocks for non autonomous drives. my kids are super frustrated with this. I’ve talked to other coaches and they are not experiencing this problem. Any thoughts?

Two big solutions is to run the lift through a PID loop to keep it in its position or to use rubber bands on your lift to help the motor keep everything lifted up

When you add a motor to the Devices, you’ll see the Motion blocks for the motor appear. Then you can use the ‘set motor stopping’ block:

image

(From VEXCode Help)
This will set the behavior of the V5 Smart Motor once it stops moving.

  • Brake will cause the Motor to come to an immediate stop.
  • Coast lets the Motor spin gradually to a stop.
  • Hold will cause the Motor to come to an immediate stop, and returns it to its stopped position if moved.

The set motor stopping will take effect for all future motor commands for the rest of the project.

6 Likes

I understand brake vs coast, but what does hold do? I am at work at the moment, and I’m dying to know :slight_smile:

Hold will apply power to the motor to “hold” it in position. For example, you can use it on a robot arm to keep it up after it lifts a cube and you drive around the field, without having to keep pressing the up button.

1 Like

I’m not as familiar with Vexcode blocks as our team uses RobotC, but wouldn’t setting the speed to 0 do the same thing as a motor hold? In RobotC it does, and all we simply have to do in teleop is assign the joystick value as the motor speed. So, once you let go of the joystick it stops and holds its position.

There is a block for this.

Set ‘Motor1’ stopping to ‘Hold’