Our team has had issues the last few days with CAN timeout errors. This began when our software team couldn’t instantiate the TalonSRX object without the robot code crashing. Soon we found that we couldn’t find the CAN hardware through the NI web interface. The CAN bus is connected to two TalonSRXs, the PDP, PCM, VRM and RoboIO.

Debugging:

We tried a number of fixes without much luck.
We rewired the CAN bus to contain only the PDP and RIO and still couldn’t find either through the NI web interface. At one time, we blew a 20 amp fuse and replaced it. We don’t know why and it probably has nothing to do with the CAN bus.

We even replaced the entire PDP.

Stats and Specifications:

Our CAN bus utilization: 14-16%
Resistance across the CAN bus: 120 Ohms
The CAN bus begins at the RIO and ends at the PDP.
*In code, we can monitor the PDP’s voltage but still get timeout errors.*
Firmware: We upgraded the RIO’s firmware to the 2018 version before we had these issues. We downgraded to the 2017 version and still had the same issues. We’ve also flashed the RIO multiple times using the reimaging tool.

We will try upgrading the RIO using lifeboat tomorrow when we have access to the robot. We can also reduce the resistance across the CAN bus. We were successfully running the Talons over CAN just two days ago ...