Loop time overrun and weird drive noises

My robot is getting a loop time overrun Print-out as well as drive stuttering. Our TalonFX’s on one side are making a very odd high pitched beep noise as well every now and again.

https://github.com/djpgamer7/FRC4012-Infinite-Recharge/tree/master/Infinite-Recharge/src/main/java/frc/robot

Have you verified that all the motors on that side are running the same direction? This sounds like a situation where one is going backwards, and popping it’s breaker as the other two overcome it.

The other two things to check for when there is stuttering is if your battery is charged. Then make sure that you are only setting your drive motors in one place so there is no race condition / conflicting command.

Nope! I’m certain they aren’t fighting and they should only be initialized once.

Hey,

So we actually had a similar issue where our drive would be really stutter-y and even though it would “drive” it wouldn’t work right. We had a similar setup to what you are doing now, but what we did to fix the problem was change

m_leftBack.follow(m_leftFront);
m_rightBack.follow(m_rightFront);

to

m_leftBack.set(ControlMode.Follower, m_leftFront.getID())
m_rightBack.set(ControlMode.Follower, m_rightFront.getID())

The issue was that the follower motors wouldn’t get any current applied, and so would basically just be pulled along by the master motor. That’s just an issue with the follow method and the TalonFX’s.

Hope this helps!

It’s worth noting that this may not work depending on the setup. follow(<controller>) will work for different controller types (i.e. a VictorSPX following a TalonSRX), whereas set(ControlMode.Follower, <value>) will only work with controllers of the same type.

1 Like

Interesting! I’ll make sure to do this tomorrow once I get into our shop! Thanks for the info! I’ll post updates…

Would I want to put this into the function that will execute during the command or leave it in the constructor?

You should put it in the constructor, because you’re really helping to define what the falcon object is supposed to be doing.

Provided that this motor will always be following the other. In the not-so-likely case that you may drive it separately at times, you would want to put it in the initialize method of the commands which need it to follow.

Ok now I am getting a different problem where that whistling noise is constantly happily when trying to use the right side of the drivetrain but the left is just fine. Any tips? The console is also printing that differential drive overrun

Is the right side just making noises, but still moving? If it isn’t, by saying a whistling noise, it’s making me think that the TalonFX’s are stalling by fighting each other, only on the right side. Can you put values on SmartDashboard and make sure that the two motors aren’t trying to spin in opposite directions?

It does not move at all nor can I move it manually.

We had this exact problem when inserting bolts too deep into the motor. Slightly unthreading the bolts should be enough to make the motor spin again. If that fixes the problem, then it’s likely the bolts threading too deep and catching on the motor’s internals. Simply using shorter bolts should fix it.

Given you seem to have intermittently experienced the issue previously, it would make sense threading the bolts slightly deeper into the motor recently would cause the entire motor to lock up and not just brush against the motor’s internals.

Also if you haven’t used loctite on the output axle’s internal bolts, you could be experiencing one of the bolts unthreading and brushing/locking up against the internals of the casing. Definitely worth the repair time if you haven’t already.

We had seen that when I took off the shooter but if I unthreaded them a bit the motor wasn’t tight against the gearbox.

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.