I will be checking my code soon but… We attended our first offseason for the year at Wings Over Camarillo Air Show. After few rounds in, we felt our motor acting weird and found out that it was heating up along with the wires that connected the motor to talon srx. So we switched over to power control which then the problems did not reoccur. If anyone have any idea on what could have caused this, or maybe went through the same problem, I would love to know about it. If I ever find the cause of the problem or fix, I’ll post an update about it. But, as for the information on the code, it was the same code that we used during the actual season and did not have any problems with.
There are a lot of possible branches to the troubleshooting here, but we will need a lot more information:
What was the motor used for? Was this a drivetrain motor or a mechanism motor? Was it used in a gearbox with other motors or was it the only motor used for that motion? Is there any feedback control on the speed or position of the motor?
Totally with @wgorgen here - need more input.
Trying to read between the lines (singular motor), I’m guessing it was the only motor doing a specific function on a mechanism. The symptom that the wires as well as the motor got hot indicates that it was drawing a lot of current. The most obvious cause of this that would be resolved by switching to “power control”, but which power control would not change your performance significantly would be that you were pushing the mechanism against its stops.
(I’m also guessing that power control either means limiting the top throttle value in code, or current limiting.)
The motor was being used for drivetrain. 2 motors per gearbox.
It seemed that only one of the two motors started getting hot for both left and the right side.
and yes, we were running velocity control through talon.
I’ve never had the opportunity to run SRX’s in velocity mode, so take what I have to say with a grain of salt, but it sounds like you might only be running one motor on each side, or at the very least one motor is doing proportionally more work than the other. It could be that how you have the controllers slaved together was not correct. An easy way to check this would be to output, or check the log of, the current draw of each motor. They should be within about an amp of each other.
That sounds strange - the most likely explanation is that the other two motors weren’t running at all, or at lower or reversed throttle. Does the system actually run if you unplug the two “hot” motors and leave the other two connected? Do the throttle lights for the two controllers on each side give the same color and blink time?
Having heard similar issues to this before, I recommend swapping out the speed controller entirely. I honestly don’t know enough about the subject to explain the problem itself, but I have run into similar issues with motors drawing far too much current due to electrical problems within the speed controller itself.
In build season this year, 2791 would hold regular drive practices and commonly found that after a couple of minutes, one motor would be burning hot and its power would decrease over time, causing the robot to not drive straight. Give it some time though, and it would cool down and function normally. We tried a lot of fixes but wound up just swapping out the SRX entirely and that seemed to have solved it. Swapping motors did not address the problem, nor did changing control modes within the code.
We did test all those things, for the process of elimination. We even took out the motors from the gearbox to test them out. It seemed that everything worked fine except when we ran velocity control on the robot with both motors connected.
This is very interesting. We will test with different SRX to see if it gives the same result as you guys.
Are you slaving one motor controller to the other per side? If they are separate they can be inconsistent.
Adding to this, if you only have 1 encoder per side, and you aren’t slaving, velocity control might not work the way you expect. Sending a set() velocity command to a motor controller without an encoder on it will result in interesting results.
yeah, one is set to follower while the other one does the actual pid. Funny thing is, we ran the robot again last week and it didn’t heat up what so ever…