Nevermore FMS (2020-Present)

Nevermore FMS (2020-Present)
Photo of a match being played during ROBOTICON 2022.

GitHub: https://github.com/Nevermore-FMS/nevermore-fms (The main branch is the last functioning edition, a in-progress rewrite can be found on the "rewrite-2024" branch)

The Nevermore FMS is an alternative implementation of the Field Management System used in the FIRST Robotics Competition (FRC). I had originally started developing this system during the COVID lockdown of 2020, as all competitions had been canceled and there was no possible way to play a FRC match without being at a official competition. Thus, I worked with a friend to reverse engineer the networking protocol used by the FMS, and created a small prototype of the FMS written in Golang.

Now, four years and three revisions later, the FMS has gone through quite a bit. It is entirely written in Rust with an embedded V8 Javascript engine for writing plugins. That main program written in Rust exclusively manages connections to the robots, and the plugins handle everything else such as network configuration, game implementation, and UI. I'll avoid going too much into the depths of how FRC networks are configured, the FMS whitepaper describes it fairly well (https://fms-manual.readthedocs.io/en/latest/fms-whitepaper/fms-whitepaper.html), though the network configuration plugin sends requests to a Ubiquiti Dream Router to modify the DHCP settings of each Alliance Station's VLAN and add the corresponding wireless network for the Alliance Station's robot. Recently, work has begun on stripping out the plugin system and V8 engine as it seems to unnecessarily overcomplicate the system.

The FMS can be seen in the black box in the background of this image.
Team's computers are plugged into the white ethernet cable found at each "Alliance Station", each cable corresponds to the individual station and adds the computer to a VLAN with it's robot.
Layout of power and ethernet around each Alliance Station Wall. (The tape was replaced with cable management clamps 😄)
Photo of the Field Technical Advisor's panel displaying robot statistics. (Data is mocked)