Skip to content

CAN

CAN is the way motors and most sensors on a robot communicate. CAN functions in a "loop" with a High (yellow) wire and a Low (green) wire, moving together through all CAN-controlled devices on the robot.

Each device in a CAN loop must be assigned a distinct ID, allowing code to communicate with the device (see how to assign IDs here).

CAN devices can be connected in any order, regardless of IDs, but for optimal wiring, view Ordering CAN Devices.

Troubleshooting

CAN issues are often difficult to track down, but organized electrical can reduce failure and make troubleshooting easier.

View Good Electrical Practices to see what this looks like.

To fix a CAN failure, follow these steps:

  1. Scan the robot, start from the RoboRIO, and go through each CAN device in order until you see a failure (look at the lights on the device).
  2. Check the connection between this device and the two it connects to in the loop, if you see any issues with the connection, fix it.
  3. If you still have issues, especially if every device in the loop shows a failure, go to FRC driver station and see what devices are throwing errors.
  4. If any errors are shown, make sure the device is powered properly, and make sure there aren't any CAN connection issues with neighboring devices.
  5. If you still have trouble, open the configuration software for that device (info here), see if it is present, and see if you can track it down from here.
  6. Sometimes reinstallation of firmware may help, but typically CAN failures are a physical issue.
  7. If none of this works, ask a CSA or other teams for help.