Drive Train Issue Mystery

We seem to be having an issue with our mecanum drive. Just the left front wheel will not go in the reverse direction. It instead unevenly moves slowly. It does however go in the forward direction just fine. When inversing the SRX in the code the problem makes the motor not want to go forward but it will go reverse. We are using Talon SRX’s on a CAN bus and programming in a command based C++. We ruled out the
following problems…

  1. Motor was Checked and is fine.
  2. Gearbox checked and is fine.
  3. Wiring was checked and is fine.
  4. Any friction or catch on the wheel was checked and is fine.
  5. We replaced the particular SRX 3 times and soldering is fine.
  6. The bot was blocked up and the problem still persists (The other wheels all move in the correct directions).
  7. Resistance is negligible and shorts are non-existent.
  8. We tried changing to a different drive type in the programming (mecanum-polar and tank) and the problem still persisted.
  9. We tried programming iteratively and it still did not fix it.
  10. We tried programming in labview and the problem was still there.
  11. All firmware on the SRX’s was updated.
  12. The bot does strafe one way nicely so weight distribution is not an issue.

We seemed to come to the conclusion that the problem is in the CAN bus, but why is it just this one motor? It has perplexed all of us. One strange thing that does happen every so often is the SRX on the problematic motor has alternating red led’s that chase each other quickly. Looking in the manual we can’t find any documentation on this.

Try this: rotate the wheels 180 degrees in code, making no wiring or mechanical changes. Left front becomes right rear,and so forth. If the problem moves, it’s in software, if not, in hardware (to include wiring).

Alternately, or as a sanity check, try running the wheel in reverse without a motor controller. That should convince you whether the problem is above or below that point.

Have you tried changing the CAN ID #?

We tried as both suggested. The problem did move to each wheel when we rotated them. Also alternating the CAN id’s did not fix the issue. However, we did figure it out in the last hour before bag and tag.

We switched from CAN bus to PWM and there was no issue. We came to the conclusion that the problem must be with a bad solder in the bus. Much thanks for the help!

We have had PWM wire problems too. It is easier to identify a faulty wire when there is only one.

Was the problem motor the last in the chain (before the PDP)?

The problem motor was not the last in the chain; it was somewhere in the middle. We have 6 SRX’s daisy chained in the bus.

You would think that if it was a bad connector, it would affect that motor, and any other motor down stream.

If a CAN Talon is behaving differently than what you expect, all you have to do is perform a self-test. That provides enough information to deduce why the Talon is doing what it was doing at that moment. Checking the DS for any problem messages in the log is also important.

By switching to PWM, you are losing this critical diagnostic.

I suspect there was a subtle software setting. The OP confirmed that flipping the inverse caused reverse to function correctly. This suggests an issue with settings. Perhaps the limit switch/soft limit feature was enabled (explains the red LED pattern).