Communications light half green, half red

We are testing some code on a spare robot and the Drive Station display is showing the communication bar as the left half green, the right half red. The red goes green periodically every few seconds but immediately goes back to red. Any ideas what that means?

What RoboRIO image number are you using and what version is your driver station?

The image is from 2019.2.0 as is the Drive Station.

Sometimes I’ve seen this if the robot program has an error in it. Do the logs show any errors?

Also, have you tried restarting the drive station computer and turning your robot off and on again? This usually fixes the issue on our driver station.

Yes, the logs do have an error. The roboRio on this bot doesn’t have any TalonSRXs or an Air Compressor on the CAN bus. The system is sending timeout errors trying to communicate with them. That may be it, but it certainly isn’t obvious.

The two halves of the bar are TCP and UDP. Robot comms are on UDP which will be green if you can talk to the robot at all.

Usually the half bar is a firewall issue, NOT a robot code issue. The CAN timeouts should not be causing this. Check your firewall, sometimes that blocks only some of the data.

1 Like

Yeah, I haven’t ever seen that issue with CAN communication errors, usually only fatal robot code errors.

This has happened to me when I create fatal runtime errors or if the battery voltage blips causing brownout.

Just throwing out a suggestion here, based on superficial similarity to something that happened to us. We would get the half red/half green situation, and periodically seem to lose communication entirely.

The root cause was an overload of communication between the Rio and the driver station. There were an awful lot of “debug” statements (some Smartdashboard, some System.Writeln so that we could see them on the RioLog.) Together with the camera feed, plus the warning messages being generated by something on the CAN bus, the large number of information messages was enough to shut things down.

The fix was to get rid of the debug statements.

I would like to give a major thank you to the FTAs at the event who suggested the solution to the problem.