CTRE Pheonix Tuner Brake Increase

Hello, I am having a problem where the motor brake through the motor controller is not strong enough. I am using CAN to run the motor controllers and am using the CTRE Pheonix Tuner application to set them up and configure them. I am wondering if it is possible to increase the brake force through the config?

Break mode short the motor leads together creating a dynamic break. If you need to hold position then using an encoder or other feedback use position mode. If you don’t have a feedback device then a known commanded percent output might work but the mechanism could drift in either direction.

1 Like

I am curious how shorting the motor leads together would create a dynamic break? Wouldn’t the motor controller have to input power to get it to hold better? I also noticed a Neutral Deadband value that I could edit in the config. Would that have any affect?

Basically the power generated with being back-driven generates a field the is not quite equal but is opposite then tries to prevent the spinning motor from doing just that spin. if the motor leads are open then the circuit is open and not generating the magnetic field.

I see now, theoretically would there be a way to inject power to compensate for the loss of power being generated?

What are you trying to control? What Feedback can you get from the system? I bet an elevator or arm.

I am using a arm being controlled by a victor spx and have a rotating potentiometer as my sensor.

Ok are you using a PID controller, PID subsystem, or PID command? If so then things should continue to servo (Hold position) if the PID is not disabled.
A new question is what code language and what robot template ie , command, timed,…

I am programming in labview. The motor is a minicim motor. It is just barely too much weight for the motor brake to hold after the gearbox broke in.

Labview I’m not going to be able to help with the finer details but are you using a PID VI? Is there a PID VI?

How are you using the feedback from the POT if your not using a PID method?

1 Like

There are a few active threads on CD currently talking about controlling arms. You may be able to pick up on some formulas that you could use to try and command the arm with an arbitrary Feed Forward value based on the Cosine of the current angle of the arm.

Thank you, I am currently not using PID but will look in to it though. Thanks for your help.

The pot value is only being compared to expected values and then that tells the motor what way to go in auton movement. Under the manual control it only sets limits.

That sounds like a P controller maybe. Are you doing something like
TargetValue - CurrentValue = Error
then
motorSpeed = Error * kp
Where kp (0.011) is a constant that maybe applies 100% power when the error = 90deg.

That is pretty much how I do it. I just find the difference, the sign tells the direction and the difference just tells it to apply a constant to the motor. I am working on learning the PID functions so that should help solve some of my issues. I also decided to just use a physical break powered by a servo so that I don’t burn up the motor.

I would love to learn more about the break. We have an issue where we might want to use one as well. And a servo can i get a pic.

I don’t have the parts on hand at the moment but what we are doing is using a cable driven bicycle disc brake because it’s a strong lightweight brake. Then we are going to use a high torque servo with metal gears to run the brake. If the servo is not strong enough I am planning on using a spring loaded pneumatic piston to pull the cable when air is applied and then when the pressure is released it retracts and the brake is released.

I recommend using the pneumatic cylinder. If you use a servo to hold the cable in tension, you will just move the stalled motor/heating problem to a smaller motor.

1 Like

The motor controller brake is only active at 0 speed. At any other speed command it is no longer active. There is no tuning it. If you want to hold an elevator using the motor either use feed back and PID to control position. Works well but a bit of a learning curve. A simple solution is to feed a little up command to hold the elevator in position. Best to program a way to adjust that without having to reload the program. (Like on the dashboard or use a controller button to increment the command.)

I agree with you on those regards but I am trying to avoid using a constant motor value to hold it up due to the massive amount of heat it generates.