Third party CAN bus connector to Roborio

We have been trying to connect our MCP2515 CAN bus via arduino to our Roborio and the CAN bus does not seem to register in the roborio.
Does anyone have experience connecting third party CAN bus to FIRST components?
Help would be very greatfull, Thank You!

I’ve done it, and it works, it just requires a few things set right. First, the RoboRIO CAN Bus only runs at 1MBps, any slower and it will fail. Also, at this speed I’ve seen a lot of the cheep MCP2515 boards you can buy fail, because they only use an 8 MHz crystal. To be the most reliable, you need to use a 16 MHz crystal hooked up to the MCP2515. You’ll need to make sure your initialization on the arduino side is set to use both these parameters too.

3 Likes

In addition to the hardware tips @Thad_House mentioned, things connected to the CANbus won’t automatically “register” with the RoboRIO; you’ll need to write software for the Arduino that properly implements a CAN stack, and conforms to the FRC CAN ID specs. You’ll also need to write RoboRIO code to talk to your Arduino, probably through WPIlibj’s CAN class, or possibly through the lower-level CANSessionMux.

2 Likes

Hey, i am trying to use arduino mcp2515 to transfer info to the roborio. Mcp2515 is a can bus connector for arduino. I tried to connect it to the can bus chain but everytime i am trying to send a messege through the arduino its making the chain to break. Someone have an idea whats making this happen? And how to recognize it in the computer(cause the Phoenix tuner dont recognize it)
Speed: 500kbps, 16hz.

The rio runs at 1mbs can bus speed. Not sure if that’s all that is holding you up, but it would be a place to start.

I merged two threads about the same topic from the same team.

1 Like

I suspect (but haven’t tested) that Phoenix tuner will only show CTRE devices. I would instead spend the time writing RoboRIO code to talk to it using the spec that CarlosGJ posted.

Thank you very much we will try that.

Can you share an example for the arduino code?