SparkMax Errors when robot program is deployed

Hello, we are trying to deploy a simple drivetrain robot program, but every time we try to do so, we keep getting the same two errors:

[CAN SPARK MAX] WPILib or External HAL Error: HAL: CAN Output Buffer Full. Ensure a device is attatched.
and
[CAN SPARK MAX] Unable to retrieve SPARK MAX firmware version for CAN ID: 4, 3, 2. Please verify the deviceID field matches the configured CAN ID of the controller, and the controller is connected to the CAN Bus.

Everytime we connect to our Spark MAX via USB-C and the Spark Max Client, we can see that all the SparkMax’s are updated with the latest firmware (1.5.1). We are unsure what the first error means.

One issue we see is that our Spark Max’s are blinking solid magenta and then a rapid yellow. One of the controllers simply blinks magenta then black. We see that blinking magenta with a brushless motor means no signal, but we have ensured that our wiring is correct.

If anyone could help us with this issue, then that would be much appreciated.
Here is our code if it helps: https://gitlab.mort11.org/programming/2020-mechanical-board

1 Like

This error is typical when the CAN bus is not correctly connected to the RIO at all or there is an intermittent connection. This error comes from WPILib/netcomm when the send buffer for the CAN bus is full. Messages are re-sent and not removed from the buffer if there is an error or no devices on the bus are present, which is why the buffer ends up overflowing.

I suspect that blinking it due to the CAN bus switching between ‘good’ (Normal Purple blink code) and ‘CAN Error’, which also leads me to believe there is an intermittent connection somewhere.

1 Like

After quite the extensive review and hours of programmatically troubleshooting, the electrical team finally noticed that they switched the green and yellow CAN wires connected to the RoboRio.
Problem solved now after switching the wires!

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.