A field management system that just works.
For the game-agnostic version, see Cheesy Arena Lite.
For participants and spectators
For scorekeepers and event staff
Teams may use Cheesy Arena freely for practice, scrimmages, and off-season events. See LICENSE for more details.
From a pre-built release
Download the latest release. Pre-built packages are available for Linux, macOS (x64 and M1), and Windows.
On recent versions of macOS, you may be prevented from running an app from an unidentified developer; see these instructions on how to bypass the warning.
From source
go build
cheesy-arena
or cheesy-arena.exe
binaryIP address configuration
When running Cheesy Arena on a playing field with robots, set the IP address of the computer running Cheesy Arena to 10.0.100.5. By a convention baked into the FRC Driver Station software, driver stations will broadcast their presence on the network to this hardcoded address so that the FMS does not need to discover them by some other method.
When running Cheesy Arena without robots for testing or development, any IP address can be used.
Cheesy Arena is written using Go, a language developed by Google and first released in 2009. Go excels in the areas of concurrency, networking, performance, and portability, which makes it ideal for a field management system.
Cheesy Arena is implemented as a web server, with all human interaction done via browser. The graphical interfaces are implemented in HTML, JavaScript, and CSS. There are many advantages to this approach – development of new graphical elements is rapid, and no software needs to be installed other than on the server. Client web pages send commands and receive updates using WebSockets.
Bolt is used as the datastore, and making backups or transferring data from one installation to another is as simple as copying the database file.
Schedule generation is fast because pre-generated schedules are included with the code. Each schedule contains a certain number of matches per team for placeholder teams 1 through N, so generating the actual match schedule becomes a simple exercise in permuting the mapping of real teams to placeholder teams. The pre-generated schedules are checked into this repository and can be vetted in advance of any events for deviations from the randomness (and other) requirements.
Cheesy Arena includes support for, but doesn't require, networking hardware similar to that used in official FRC events. Teams are issued their own SSIDs and WPA keys, and when connected to Cheesy Arena are isolated to a VLAN which prevents any communication other than between the driver station, robot, and event server. The network hardware is reconfigured via SSH and Telnet commands for the new set of teams when each mach is loaded.
Cheesy Arena has the ability to integrate with an Allen-Bradley PLC setup similar to the one that FIRST uses, to read field sensors and control lights and motors. The PLC hardware travels with the FIRST California fields; contact your FTA for more information.
The PLC code can be found here.
Due to the prohibitive cost of the LEDs and LED controllers used on official fields, for years in which LEDs are mandatory for a proper game experience (such as 2018), Cheesy Arena integrates with Advatek controllers and LEDs.
See the Advanced Networking wiki page for instructions on what equipment to obtain and how to configure it in order to support advanced network security.
Cheesy Arena is far from finished! You can help by:
Several folks have contributed pull requests. Thanks!
In addition, the following individuals have contributed to make Cheesy Arena a reality: