Issue with Talons

Hi all, I was hoping to get some help with a strange problem with some Talons.

Tonight we decided to do driver tryouts with a simple robot consisting of a drive train with two CIMs to each side, all controlled over Talons. Normally it drives fine, but occasionally while driving straight the side going forward (the lights on the Talons are green) reverses for a very quick moment, going backwards. The lights on the Talons turn red when this happens. We are using simple Arcade Drive code, and I’ve checked the values being sent to the Talons in the code, and they are not reversing at all there. This happens when driving straight forward and backwards at full power (so all 4 Talons have had the issue), but not when purely turning.

We think there is an issue somewhere between (and not including) the crio and the Talons themselves, since it happens to all 4. Additionally, once when powering the robot on one side of the robot moved at a high speed for a very short amount of time, which leads us to rule out code issues.

Tomorrow we plan on replacing the Digital Module, the Digital Side Car, and the cable connecting the two one at a time to see if any of them are causing the issue. Is there anything else we should be doing or checking for that anyone can think of? I tried to give all relevant info but if anything else is needed I can provide it. Thanks!

EDIT: Also, going to try swapping victors for the Talons.

I’d like to add that my team has experienced the same problems… No idea how to fix them.

Here’s what we have already tried and some additional info:
We tried turning the robot off and back on. Sometimes this fixed it, other times it didn’t, and the problem would intermittently come back after varying amounts of time.
All 3 lights on the digital side car are on.
The observed effect is that the robot is commanded to move forward (and only forward) and it starts out doing so, then pulses a turn to the left, then continues on its way forward.
This happens only when the talon is commanded to go in the green direction. It does not occur in the red direction (or we have yet to observe it).
All 4 of the talons are in coast mode.

A brief twitch in reverse can be a sign that the robot is getting disabled for a moment. If the PWM signal is interrupted for just the right amount of time, it is possible for the speed controller to misinterpret the interruption as a valid command. Look at the Diagnostics tab of the Driver Station and see if there are any helpful error messages.

Have you tried calibrating the Talons?

Make sure you do these one at a time. This way if the issue gets resolved after swapping one thing, you can trace the problem to a specific item.

I would interpret the LED change as a sign that the PWM signal did in fact change state. However, I would like to see Mike C weigh in on this.

Yeah, we have calibrated them.

After printing out the voltage values being sent to the talons to the console, we found nothing that suggests the PWM is changing direction. This leads us to believe it is something other than the code and likely down stream from the cRio causing the PWM signal to flip the other way for an instant.

Last year we had something similar happen to us.
Observing the PWM output from the Digital Sidecar with an oscilloscope revealed that the PWM signal was dropping out occasionally. Replacing the DSC fixed the problem.
My $.02.

Our digital sidecar this year had a problem with DIO Channel 7 not working, I wonder if there was a problem with the production of the sidecars this year that is causing some of these problems.

We have had a host of problems with the DSC, and had to replace three of them last season. I would definitely look at testing with a new DSC.

Also take a look at the ribbon cable from the cRIO to the DSC, especially if you are using one that required repair from last year. Dodgy connections on the ribbon cable can cause strange behaviors.

I don’t have any issues with either the design or reliability of the DSC. It’s just that it’s such a swarf magnet. You really have to be careful working around them.

We too seem to be having an issue like this.

The problem is noted as a drive train twitch. We’re using the default drive code (tank) without any modifications.

The issue is experienced with the Talons; however, we’re only using the PWM interface with the Talons. All other motor drivers are connected using the CAN bus.

No one is near the controls when this occurs. It is just a brief twitch. I’m a bit worried reading this because we haven’t had a good chance to run the robot much yet.

I looked at the schematic for the Digital Sidecar, and I’m not seeing how it can be an intermittent problem with the DSC.

Link for the schematic can be found here.

The PWM signals originate directly from the NI 9403, so the DS isn’t actually supplying the PWM signals. There are three ‘chips’ that touch the PWM signal.

  1. A 10K pullup resistor used for a disconnected DSC. Resistors don’t intermittently fail. However, a cold solder joint might cause an intermittent connection; however, this would only affect the system IF AND ONLY IF the 32-pin cable becomes disconnected.
  2. A disable chip. There is a chip, in line, with the PWM signals. This relies on a signal defined as OUTPUT_EN. If this signal toggles while sending a NEUTRAL PWM signal to the speed controllers, this could
    cause the speed controllers to ‘twitch.’ However, the OUTPUT_EN line should remain HIGH while the robot is ENABLED. 1. A current limiting resistor. It’s placed between the disable chip and the actual output. Again, resistors don’t intermittently fail, and the only issue I can imagine is a bad soldering job.

Just going on a wild hunch… How many of you experiencing this issue are using the home-made DSC cable that connects your DSC to the NI 9403? It’s possible that there is an intermittent or high resistance (bad connection) pin that is causing this issue. Looking at the pinout, OUTPUT_EN is DIO_21 on the NI 9403. First, try a different (real) cable. I don’t see much failing in the DSC, so I’m pointing my finger at the cables right now.

http://www.chiefdelphi.com/forums/showthread.php?t=112687&highlight=chassis

This picture shows the electronics on the practice bot. Granted the wiring job is rather disorganized, but we do not use a ribbon cable on the DSC, we use a different type of cable as shown because we find they have far less issues than ribbon cables. It’s still possible that this cable could be the source of issues, but not the kinds most teams with ribbon cable issues encounter.

When we put our practice chassis together we had a “twitch” in our system too. We were not sending any commands to the DSC but the Talons signal light would blink and the motors would move for a brief moment. We switched to a different DSC and the problem went away. Opening up the DSC revealed that one of the chips had let out it’s magic smoke. It was one that had been used in the past not a new unit, so it is hard to say when or why it occurred.

Our team have noticed random glitches from the drivetrain over the past few years, while no input was being sent, the drive motors would move just enough to make an audible noise, but not move the wheels.
We use Jaguars connected via PWM.

edit
Forgot to add, we are also using the round cable from the kop 2 years ago.

We used a (old KOP?) round type db37 cable like the one in your picture, for our first control board, and have seen some glitching problems. I switched to a shorter 1 ft one (not sure where from) for our test drivetrain and haven’t noticed the same glitching problems.

Could be related to new cable or not, just my observations.

Both Al and Alan Andersons suggestions are good. The most likely problem is an intermittent PWM signal either at the software or hardware level.

Another possibility is an excessive periodic loop time. The time out on the Talon is 100 ms. That means if the Talon does not detect a rising OR falling edge after 100 mS, the output will be disabled.

If you have access to an oscilloscope you may us it to verify your loop time by toggling a digital I/O every periodic loop. Make sure you call this in the same area you set the throttle value.

As Alan stated the jump and jitter can be caused by an interrupted PWM signal.

Check for poor PWM cabling and DSC performance issues.