Roborio not detected by PDH via CAN bus

Our RoboRio cannot send anything over CAN bus. Here are all the pictures (we can’t embed that many)
https://drive.google.com/drive/folders/16h510nXKyyuCn_ua9hDeCCRn1Caa_8FO?usp=sharing

Here is our setup right now. Please see setup.jpg

The PDH cannot detect anything by CAN bus when it is only connected to the RoboRio.
see “PDH status.jpg”

CAN bus data:
please see "potentially useful CAN data 1|2.jpg

The issue is most likely with the RoboRio because the PDH can detect a sparkMAX connected on the same CAN bus.
see “sparkMAX shown.png”

Is our RoboRio truly broken? Should we email NI, or is there a different fix?

First, I’d recommend updating your firmware if you haven’t already.

Also, what is the color of the Status LED on your PDH? If it’s solid blue, then there is a issue between the connection of the PDH and Rio. If it’s solid green, you are fine.

If it is solid blue, I’d recommend first doing a continuity test of your CANbus wire between your PDH and RIO. That should tell you if their is a connection issue

We’ve imaged the RoboRIO and everything is working perfectly except the CAN bus. The issue is that the PDH cannot detect the RoboRIO at all. It continues to flash orange and yellow.

We tried updating the firmware of everything connected. We even switched the PDH and CAN wire. The problem is most likely not with those.

It’s flashing an error code, and the “CAN fault” error seems to be an active fault rather than sticky.

A couple things: Do you have any code running on the Rio? Could you try a PDP? Also, I couldn’t quite tell, make sure termination is on for the PDH

Nothing is running on the RIO. Is the RoboRIO detected only when it’s running code actively?

We don’t have a PDP, only REV electronics provided by FIRST Grey box and one bought from REV.
Our team took out the RIO circuit board and checked for metal shards and things, but we didn’t find any. Even the resistance values seem OK. We got the termination switch on too.

Could this be a software issue? We’re using the latest firmware and image, but perhaps we need to run an autonomous program. The radio connection is fine, and RoboRIO is functioning as expected in all other respects.

Do you by any chance have a REV Pneumatics Hub? If so, plug that in-between the Rio and PDH and see if the status LED turns green on that. If not, it’s for sure a RIO issue, if it does turn green, it’s a PDH issue

You could also try the same thing with a SparkMAX and use that to view the can bus as well. I know the SparkMAX showed up on the PDH, but it’s worth trying the other way around too

1 Like

I’m really not convinced it’d solve your issues, but you could try flashing the PDH from recovery mode too. It sometimes fixes strange problems

@TheJairen We did try it with a SparkMAX, and the PDH status LED turned cyan.

I connected the PCM to PDH, and now both are cyan blue. That means that the RIO has issues, correct?

edit: does this mean that we should contact NI? Will they send us a replacement? The RIO is out of stock everywhere right now.

This might be something that you, unfortunately, might just have to contact NI about. One more idea, what’s the resistance between the can wires if they’re only connected to the rio?

120 ohms. I think that’s normal.

Great, now we have our first installment in the Hall of Electronic Shame

Yeah, 120 is what it should be

And sorry about all of this, but I don’t think I have anything else I can think of, other than that it’s a defective rio

At least it’s the weekday, so hopefully we’ll have a fast response from NI. I might have to explain everything to them too.

Thanks for your time. Now we can contact them more confidently

1 Like

I think this is still hard to say for sure. I’m not personally familiar with PDH diagnostics, though.

Regarding code running on the roboRIO: do you have code running? I don’t mean autonomous, or enabled - just when you connect with the Driver Station software, is the “Robot Code” light green or red? If it’s red, and you haven’t deployed code to this roboRIO before, you could try deploying a sample program. No need to even enable it.

You could also check driver station logs for any errors, or see if you are getting power/current data back from the PDH (although all channels should be at 0 amps if you aren’t powering anything with the PDH, so it could be hard to tell). Log viewer instructions are here: Driver Station Log File Viewer — FIRST Robotics Competition documentation

If you do end up contacting NI, you should try to go through a FRC-specific channel. I think Support - NI Community is a good place to start.

In the picture of your wiring, it looks as if the yellow can wire is attached to the bottom terminal of the can port on the roborio, which is labeled L for CAN Low. The yellow wire is the CAN High wire, and should be plugged into the top port labeled H. This would cause the error you are encountering.
This is wrong, I misremembered the order of the ports on the roborio.

image
We only followed the labels on the RoboRIO. Should they really by switched?

No, that’s my bad. As long as yellow goes into the port labeled H and green goes into the port labeled L you’re good.

We have had this issue a couple of times and it looked to be wiring in our case. I would say that no matter what, check your wiring and make sure that everything is connected. I would also make sure that your SD card in the Robo RIO is in correctly and that everything is up to date. Lastly, I would say that you may want to try switching out the CAN wires for new ones, possibly ones previously used and that you know for a fact that would work.

These were the few fixes we tried as well as connected brand new motor controllers into the loop and replacing two that didn’t seem to work out. As a result, everything was up and running but it takes mistakes to learn for the future.