cRIO UDP Communications Protocol

I am working on a small cross-platform driver station because of how annoying it is to keep switching between Linux and Windows. A lot of my programming happens in Linux and OS X, I have my favorite IDEs, I am a heavy user of the POSIX libraries, and my programs are designed for embedded Linux. Porting is easy, but it takes easily 5-10 minutes, especially because I need to create a new Visual Studio project.

I have not found a really good driver station for Linux so I am working on building one right now.
I am having a couple problems. I found this wiki page on GitHub by Innoying. It is basically a cheat sheet for the protocol. However, I am not understanding some stuff. There is one 64-bit checksum for the cRIO, and 4 32-bit checksums for the FPGA. However, if I understand correctly, this part of the protocol is from the driver station to the cRIO. If that is really the case, what are those values? The computers don’t have a built-in cRIO. Is this a hard-coded value in the driver station?

I would love to have this up and running soon, so I can share it with you all. It’ll not be legal for competition use, however! :eek:

Have fun and Happy Veteran’s Day!

This was a mechanism that allowed the field to ask the robot if its version matched the one sent. The value is simply relayed by the DS. It is not necessary for a DS implementation.

Keep in mind that the protocol is changing significantly for the roboRIO.

Thank you. I anticipated that it would change significantly, but it should at least help me a little bit until next season