4-bar won't stay up

We just successfully completed our first four bar lift. It is going up just like we want. The problem is as soon as we let off the power to the motors it comes crashing down violently. Does anyone have any suggestions on how to get the lift to hold its position when its up in the air? Thanks.

“Latex Assist”: use elastics to provide an upwards force even when the motors are off.

Thanks rxian. We must have a heavy lift. Right now we have 20 rubber bands, and it helps, but not enough. Maybe we need more. I was wondering if there is anything else we could do. Maybe with gearing or programming the motors to hold their position.

Do you have a picture of your rubber band placement? 20 is a pretty decent amount for a 4 bar and I wonder if maybe you don’t have them optimally positioned.

There’s also motor hold options. If you’re using V5 stuff, the motor.stop(breaktype::hold) command holds the motor position (in theory, I’ve never really had a chance to test it). With the 393s, just test some low motor powers and find the level that holds the lift without moving it and program that to a button. There are more sophisticated methods, but that should get you started.

Might want to be cautious with using motor power to hold the lift up though, especially with 393 motors. It might cause them to burn out and stall easier.

Do u have it geared up for torque instead of a 1:1 gear ratio?

There is an online app calculator for where is that best spot to put rubberbands in a triangle, but I can’t find it right now. Maybe someone else knows the link to it.

This thread might be useful: https://vexforum.com/t/how-to-rubberband/48658/1

try to make a stronger gear ratio, such as a 5:1 or a 7:1. If it still doesn’t work, try adding more motors to hold it up.

But wouldn’t rubberbands be more efficient?

Also, if you are using V5, the motors have different brake types. You can set a motor to coast(the motor will coast after turned off), brake(the motor will just turn off), or hold(the motor will hold its position.

I suggest using the brake type hold for your application. An example would look something like this supposing your motor is named armMotor.

armMotor.stop(braketype : : hold);

If I were you I wouldn’t fix this by adding more friction because this could make the lift harder to move up, instead I would create a PID in the code, you can look these up online but I would recommend making your own if you are good at code, this will be more impressive in judging

Yes, that is true, but @tpgok said that they already have 20 rubber bands, and adding more may not be the best way to go. It is true what @293X and @Trobotics say about using the code to make the motors stop. This is a good option for v5, but i assumed that you had 393 motors because naturally the v5 motors should have held the lift up with the aid of 20 rubber bands. Please correct me if I am wrong about you using 393’s.
I still believe that if you are using 393’s then you should add more motors to your lift.

Edit: Typo:)

I wouldn’t rely solely on the PID, even if you had a finely tuned PID controller, a proper rubber band system would help by taking load off the motors.

During ITZ, I did my own rubber band calculations and was able to get a lift to hold position with no motors attached (don’t have access to the notebook atm), and I know for a fact that friction had very little to do with it because the moment the tower wasn’t vertical, the lift would start moving.

Like the others have said, posting a picture of your build/setup would make it easier to help you.

How many motors do you have on your robot? Last season we found that even two 393 motors can struggle to hold up a 4 bar. What we did was add a constant +5 (or a +10) charge to the motors and that prevented the arm from crashing down. The downside to this is that unless your arm has some weight on it, the arm (if light enough) could slowly move up.
Good luck tho!