DS-FMS Protocol

I have been looking into the functionality of the FMS and how it controls all of the simultaneous connections with all of the electronics, DS, etc. I could not find much information on the protocol used to connect the DS to the FMS and what data goes back and forth. The only resource I found was from the poof’s field(https://github.com/Team254/cheesy-arena/blob/master/field/driver_station_connection.go), and even at that, I’ve never programmed in GO before or for that matter not even done any custom networking protocols. Is there any documentation on this or is it not publicized?

I’m not aware of any official documentation from FIRST documenting the FMS protocol. You might want to check out the LibDS project. It implements the FMS protocol in C/C++. The source can be found on GitHub at https://github.com/FRC-Utilities/LibDS

I have never used LibDS or the QDriverStation software and they are prohibited at official FIRST events. Be very, very careful because robots are dangerous and using non-FIRST software to control robots can be risky.

Thanks, I’ll take a look at that!

LibDS never implemented the DS-FMS protocol.

https://frcture.readthedocs.io/en/latest/

7 Likes

You might also be interested in the FMS Whitepaper. It doesn’t go as deep as the details you’re asking, but it might be helpful to get a good idea of how the system works.

Yes, I have read it. Like you said it’s more about concepts and less about how they are integrated into the system. It leaves out a lot of technical details that most people don’t care about.

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