CAN bus failure-Help

Our team is having a problem with our CAN bus that we do not know how to solve. Our talons, victors, PCM and PDP are all blinking red indicating that the CAN bus is not being seen. Our CAN setup is rio→ victor→ victor→ talon→ pcm→ talon x7→ PDP.

When we turn the robot on, for a split second, the Talon lights blink orange and the PDP and PCM blink green. However, after a split second, the talons start blinking red and the PDP and PCM start to flash red. When we unplugged the CAN connection that went from the first talon to the PCM, the lights on the talons that were past the PCM were blinking orange in normal fashion as if showing that CAN could be seen. However, the first talon, victors, and the PCM were blinking red. Lastly, when we connected USB-B to rio to see phoenix tuner, we could not see any CAN devices.

We went through a series of steps to try and debug the problem.

  • The first thing we did was we bypassed the PCM and tried to connect the two CAN wires that would normally go into the PCM together. We did this because we originally thought that the PCM was the problem because of the strange light behavior when we unplugged CAN. However, this did not solve the problem.
  • We also tested for continuity on the green wire and the yellow wire starting from the wire that would go in the Rio to the wire that terminates in the PDP. We did this by using a multimeter and connecting the green wire that goes into the Rio to the red pen of the multimeter and we connected the green wire that goes into the PDP to the black pen. However, we got no continuity. We did the same for the yellow wire and still got no continuity.
  • We also unplugged the two CAN wires from the Rio and measured resistance between them using a multimeter (hoping to get the total resistance of the CAN bus). We got 114 ohms, fairly close to the expected 120 Ohms from the termination resistor in the PDP.

Has anyone encountered this problem and if so, what are the ways that we can debug this problem?

1 Like

If you just plug the Rio into the PDP, does the PDP then show in Tuner?
If you can, try adding one device into the chain at a time.

Also the talons blinking orange when they are by themself I think is because they can see each other, or so that is the behavior I have observed.

It sounds like you have a green wire connected to a yellow wire in there somewhere. And you have a yellow wire connected to a green. Or, you have yellow plugged into green at the PCM (and green plugged into yellow).

That is probably why you have continuity when the entire chain is connected, but you have none when you measure just the yellow side and just the green side.

1 Like

I suggest taking a multimeter and first going through the entire circuit. Go from beginning green to ending green. Same with yellow. Check if the connection goes all the way through. We had this happen to us, even though after I checked the CAN circuit was complete. (Afterwards I realized I plugged a green into a yellow spot. Check that as well) I suggest checking the mapping of the motor controllers. If there’s a motor controller that isn’t mapped or isn’t recognized, this may occur as well. Feel free to PM me with any other questions.

EDIT: I just read and saw you already checked continuity. After that I suggest going and checking each individual connection for each controller. Break it up into sections and try to narrow down where the issue might be.

Exactly this happened to us at FLR. We diagnosed it by isolating everything except for the first object in the CAN bus. It blinked green, so we connected the next, and it blinked green. And so forth, until the whole bus crashed, at which point we identified where the badness was. We clipped, stripped, and reinserted the wires, and all was well.

(We then also bought a Weidmuller ferrule crimper and a bunch of ferrules from CTRE, on the advice of our LRI, and will be crimping ferrules to the end of all wires that go into Weidmuller connections from now on.)

I actually saw this problem on a robot this year. Turns out an overzealous student had overtightened the bolts holding the Victor SPX onto the electronics board and had slightly crushed the case. This must have been enough to short the two CAN wires on the board inside and took down the whole CAN network. I would highly suggest backing off all of your fasteners just a little bit to see if the problem is resolved. We watched the case spring back to normal and the CAN bus started working normally instantly.

The first two elements in the chain are Victors, so I think we will definitely check this.

Concerning continuity; if we know that disconnecting the chain at the PCM causes the downstream elements to blink orange, I would assume we can rule out any break in the chain. If there is a break I would think anything downstream would then start blinking orange. Does that sound correct?

You can’t. They will blink orange if they are connected to the PDP I believe. CTRE would have to chime in here but if I remember correctly they will blink orange if they see the PDP or the Rio in the chain.

Yes, you need to have continuity end to end (yellow to yellow and green to green) - from Rio to PDP. Ensure that the “Terminator” jumper on PDP is ON. By default when purchased, it is. RoboRio has a built in resistor - 120ohms, which cannot be disabled.

This is the best way to diagnose a CAN wiring issue - @snowmaninblack this is the method we recommend using to diagnose the issue you’re having.

Talon SRX / Victor SPX / etc. will blink alternating orange when they detect a “good” CAN bus connection - this includes observing any valid CAN messages on the bus. The PDP sends information out periodically, so connecting a Talon to the PDP properly will cause the Talon LEDs to be alternating orange.

Another quick check you can run on a CAN bus is to check for both terminations.

With the power off, configure a multi-meter to read resistance.
Place one side on green and the other side on yellow - anywhere you can get to the exposed conductors. For our robot - with SparkMaxes - we can make the measurement at the CAN JST connector.

You should measure ~60 Ohms. If you do, then you have continuity end-to-end on your CAN bus.
Note: 60 Ohms is because you have two 120 Ohm termination resistors - one at each end - in parallel.

Thanks, we did this at the rio side (unplugging the rio can cables), but we should try it mid stream as well.

The PDP has ports for two sets of CAN wires.
IF you have access to those ports, you have a pair of test points without disturbing the CAN wiring.
Again, make sure power is off before testing.