Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Tournament Manager is the program made by the REC Foundation for hosting competitions. It is used to simply many of the tasks that come with running a Vex Robotics Tournament at all scales and levels. This article will follow the format of the user guide which is linked at the bottom of the article.
In VRC, a match is played between two alliances, of two teams each, while in VexU there are only 2 teams. At these events, there are 3 types of matches; Practice (optional), Qualification, and Elimination matches. Practice matches have no effect on a team's ranking and are more common at large events to help teams get situated. Qualification matches are used to determine event ranking, where alliances are randomly determined and rankings are determined as written in the game manual. Following all qualification matches, and alliance selection, an elimination bracket will be generated, and matches will be played in a single elimination style.
Tournament Manager supports the use of 1 or more fields where any more than one field at a competition should be added to a field set. A competition can have multiple field sets consisting of several fields each however in each field set, only one match timer can be run at a time. This feature is so that a field set can be used in a round-robin fashion. It is up to the Event Partner's discretion to decide the best arrangement of fields and field sets.
As Tournament Manager is used to run the event, it is also used to share information with teams, and spectators. Tournament Manager has 3 display types. Audience Displays give information to spectators including the match timer, match score results, alliance selection, and rankings information. Pit Displays are used to communicate with teams information like upcoming matches, and ranking. Field Que displays are placed at queuing tables to show what teams are on the field for the upcoming matches.
To connect a mobile device, the device must be running the TM Mobile app (Available on iOS and Android) as well as being on the same network as the computer running the TM server. On the mobile device, a pop up will occur giving a code or the option to change settings. By default, the average user does not need to change settings (although it may need to change the Server IP (given by TM computer) if it has been used at a prior competition). To open the Mobile Devices tool on the hosting computer, go to Tools > Mobile Devices. Type the Code displayed on the mobile device, and fill in the inputs as necessary.

To control a match, select Field Set Control -> Desired Field Set which will open the below dialogue box.
The first things to notice are the Match On Field (with option to Queue Next Match), and Match Timer. The main inputs in this display are Field (auto populated based on schedule), Audience Display (Automatically Intro when a match is queued, and swithces to In-Match when the match is started), Autonomous Winner (Displays during match but is finalized in scoring), and most importantly Start Match, End Early, Reset Timer (Abort Match is shown once a match is started).
The other options will allow you to give and display a Time-out for a team and toggle whether the computer running the TM server will play Sound Effects.
Raspberry Pis can be used to run displays around competitions as well as hosting match controllers at a field location instead of running wires from a central computer to the field. To do this, a raspberry pi must be running TM which can be downloaded for the pi . TM must be bootable from the pi which can be done using Raspberry Pi's boot loading software found .
To connect a Raspberry Pi, connect it to the network that the competition is hosted on, connect it to power, and connect it to a display. From there, open the Pi manager in TM under Displays -> Configure Remote Displays (Raspberry Pis).
When adding a display, a prompt for the IP address shown on the Pi will pop up and needs to be filled with the information on the display (as shown below). It is then possible to change Dispay Name, add it to a specific Field / Field Set

Once configured, a Raspberry Pi display can be controlled like all other displays through
When a Raspberry Pi is turned on, it will display an IP address to be input to the TM dialogue box.


For this article, we will be discussing live streaming through OBS. OBS will allow streaming to most major platforms with all of the same setups. It is assumed that a general understanding of OBS is had, and the basics can be found here:
Ensure that the venue's network will both allow the ability to stream and has sufficient bandwidth to ensure a low latency stream. Most school networks are acceptable, but check the stream host's documentation for precise network bandwidth requirements.
Unlike traditional web live streams, robotics event live streams have multiple cameras, each of which are dozens of feet from each other. Typically, an event partner will place at least one camera at each field, and a wider event/awards camera. There are several approaches to connecting these cameras to the live stream computer.
Many cameras will offer an HDMI out signal, which can be an efficient way to achieve a low-latency stream. Before purchasing, ensure that the cameras that will be used have a clean HDMI out signal. Additionally, several 50ft HDMI cords may be needed, which is the maximum length that can be reasonably gotten without signal degradation or the need for an active extension.
GoPros provide a great option for live streaming robotics events, due to their cost and wide field of view. If GoPros are purchased, try to purchase a Hero 8 or newer. In this version, the USB C port can be directly connected to a computer and be used as a web camera, which can provide flexibility for additional cameras. In most cases, older models are acceptable.
Connect the micro-HDMI port to an external switcher or capture card. For most competition purposes, the Blackmagic ATEM Mini is an acceptable option. The ATEM Mini Pro is a slightly more expensive alternative but would allow streaming directly from the switcher without a dedicated streaming computer.
The GoPros may need to be modified to ensure they don't overheat during a long competition day. Overheating cameras can be identified by intermittent black outs of video output.
Remove the battery and leave the battery compartment open
Disable H.264. In Video Compression, Select HVEC. The older encoding is not needed for our purposes and only increases temperatures
Disable Wifi Configuration
Set video mode to 1080p60
If the venue is particularly warm, invest in heat sinks to ensure that the cameras are properly cooled. Some Event Partners have found success in repurposing Raspberry Pi heatsinks. Target the area of the GoPro directly below the sensor, but experimentation with each particular model is warranted.
Another approach is to use a PoE network camera, which are commonly produced as security cameras. This approach is significantly more flexible than HDMI cameras, but careful considerations must be made to ensure access to a low-latency stream from the cameras.
Camera:
To obtain a low-latency stream from the cameras, we will use a tool known as OBS-gstreamer:
Here are some troubleshooting tips:
Once everything is installed, it may still not get the GStreamer Source to show up in OBS if Windows isn't finding the GStreamer framework. This may be caused by the framework not being in the Windows PATH environment variable. The fix I found was launching OBS with a batch file that mounts GStreamer to PATH when run. The steps for this fix are as follows:
Create a new file called start_obs.bat. Make sure that the file extension is .bat. Add the following code to the file:
Save the file. and play around with the format of the RTSP stream for a while before it works. Try this syntax uridecodebin uri=rtsp://admin:[email protected] ! queue ! video.
All the checkboxes are cleared in the GStreamer source properties except for the very last one (Clear image data after end-of-stream error)
Note: thanks so much to Nathan Nolte for his advice with this setup!
USB webcams are often times cheap, and readily available. There are some limits to a USB webcam though. First, most PC/Mac USB ports can only use one webcam, or two with a hub. Because of this, streams with multiple fields, or multiple angles, may need to add additional hardware. Second, USB cables can usually only span about 20'-30' without additional hardware.
Camera:
USB Extension Cable:
USB-Ethernet Hub:
With this setup, 2 cameras connect via the extension cables to the ethernet hub that will allow both cameras into 1 usb port with an extension via cat5/cat6 ethernet up to 100'.
This has been tested a few times in competition by SIGBots and has been the least problematic.
Audio is one of the most important aspects of the stream, and distinguishes a functional stream from an excellent one. Event Partners will likely need to purchase a USB Audio Interface to connect the venue's microphones to the live stream. To minimize copyright strikes on the streams, be sure to only capture the Emcee's microphones and Tournament Manager's Audio, and exclude any music that may be playing in the venue. It is best practice to mix in stream-friendly music through OBS. It is also possible to pipe Tournament Manager Audio into OBS instead of capturing it from the venue's audio mixer.
Below is a recommended plugin for OBS (Win 64) in order to automate much of the work for linking TM and OBS. This is a third-party plugin and is not officially supported by RECF or Vex however it was designed by an employee of the company that designed TM and is one of the best community products to link the two platforms.
It is recommended to follow the installation and setup instructions given by Mr. Flowerday.
Below is a recommended tool that can be used to automate many of the aspects of a robotics live stream, including field switching, showing saved match scores, and automatically recording matches.
Some notes from SIGBots after use of the switcher:
Make sure TM is running on port 80. Port 8080 will not work. Often, there is a service called World Wide Web Publishing that takes port 80 and should be ended before starting TM.
The plugin in requires using at least OBS v28, which integrates a new WebSocket control system.
If you are using the switcher with an ATEM device, you will need to connect your switcher to the network, as switchers connected via USB cannot be remotely controlled. See guide on connecting your switcher to the network. Input the same address you would use to connect to the switcher via the ATEM Control Software.
Brendan McGuire
There are two key electronics sold by Vex to support field control and competitions:
The Match Controller is used to interface between a computer running Tournament Manager and the competition field. One is needed for each field and should be placed alongside the field. The Driver Interface is used to connect teams to the field setup. The teams connect their V5 controllers to the VEXnet port. The 2 match controllers at each field (one for each alliance) are connected to the Match Controller through CAT5 cables.
Above is an example field setup for a small competition. It is physically very straight forward when at a small scale. The lines above represent the only cable that are required to run the match. This however does not show any displays for the competitors and audience, as well as other fields including skills fields. Much of this requires a network to be setup instead of running display cables directly from the main computer.
This page is under development. We will continue to update information & resources. Additionally, we are testing features with our editor here.


Set field of view to the widest setting
Disable video stabilization
Utilize compressed air to cool camera
Make sure the latest LTS version of NodeJS is installed if you are running the program from source.
Using the program via source is ideal and more consistent if you have NodeJS installed.
This is the main page for scoring each match (outside of TM Mobile). It is auto populated with scores submitted on the TM Mobile App but must be confirmed here. It varies based on the game but the main functions are the same. The 4 main functions are Save Scores, Reset Scores, Unscore Match, View Score History. They are all self explanatory and will vary the indicator circle next to the match.
The process of scoring a skills run is easy. Begin by queueing a run, and after the match is run, input the score, select the team number, select the run type, and save the run. It will automatically populate into the rankings where scores can later be edited.
Audience Displays (Left -> Right)
Intro - Displays queued match's teams and rank
In-Match - Displays match time remaining and alliances
Start by selecting a match to score on the left screen, and the middle screen will open. This is similar to the desktop version but can be used for live scoring. The bottom 3 buttons are used to delete the score, refresh the score (if 2+ devices are being used) and to save the score.
Skills matches are scored similarly to the desktop version as well, with a team selection similar to the left screen, and runs saved with scores on the right screen. Teams normally run roughly 3 of each type of skills run however TM will not limit the total number, only notify that the team has run the allotted number.
This tool is fairly self explanatory. It opens when a match is queued and is used to control matches as well as the audience display. Match on Field displays the match to be played. Saved Match shows the most recently saved match (This is what will be displayed when Saved Match Results). Match Timer shows time remaining in autonomous and driver control. Audience Display allows selection for field screen display. The bottom allows for selection of playing sounds, the autonomous winner, the field the match is played on, and the status of the field.
cd /D "%~dp0"
cd gstreamer
SET GSTREAMER_1_0_ROOT_MINGW_X86_64=%cd%
cd bin
SET PATH=%cd%
SET GST_PLUGIN_PATH=%cd%
cd..
cd..
cd bin
cd 64bit
start obs64.exe
Saved Match Results - Displays score of recently saved match
Pit Displays (Left -> Right, Top -> Bottom)
Rankings - Displays qualification rankings
Logo - Displays slide show of event sponsors
Alliance Selection - Displays alliances and available teams
Elimination Bracket - Displays bracket with matches to be played between alliances
Skills Rankings - Displays skills challenge rankings (based on score and tie breakers)
Schedule - Displays match schedule of matches to be played
Inspection - Displays inspection status of each team
Upcoming Matches - Displays next three matches to be played




This is the Alliance Selection Page. Available Teams shows all teams ranked that are available to join an alliance. If a team is ineligible, the team is shown as a light grey. The Current Alliances shows the seeded alliances with Captain on the left, and Pick 1 on the right. The alliance captain currently choosing a partner is highlighted in Yellow. When a team makes their selection, select the team on the left, and click add team.
Announcements are used to show text at the bottom of pit displays. Once published they are shown until the end time that is set when the message is published. Multiple messages can be shown at the same time.
Mobile Devices is a terminal to setup devices on the same network that are running the TMMobile app. More information can be found here with a full tutorial on how to pair different devices.

When Tournament Manager is opened, 3 options are presented: Create a new tournament, Open an existing tournament, and Connect to a remote server. After the new tournament is created and a name is set up, the server will be started. It is best to save files in an organized and easy-to-access location with clear and relevant names.
On MacOS, if TM says that Port is in use, turn off AirPlay Reciever in System Preferences under Sharing
Location to connect the tournament to RobotEvents.com where, if the event is listed there, the information can be input from the administration page of the event. Much of the following steps will be automatically completed if the event is connected here.
This is the location to choose the program for the competition.
Alter the presets and selections of the competition ahead. The smaller the event, the simpler the future steps will be. Choosing a Large Event will require a lot of experience and knowledge of running tournaments and using Tournament Manager which will not be covered on this wiki.
Name of the event for the Tournament Manager server and a password for logging other devices into the event server.
Used if the event is part of league play.
Select the game preset to be used for matches and skills challenges (or basic game for scoring freedom).
Either import a team list from Robot Events (or other CSV) or Generate Teams randomly (Will be shown in a CSV to edit)
There are several options to be tweaked here however they should come from reference to the game manual. Select the proper number of alliances for the size of the event (most likely 8, 12, or 16). The 3 other options will be prefilled and should stay the same
This is used to set up fields, and fieldsets. The differences of these are discussed in the . Several fieldsets and fields can be set up here as needed.
Here, the skills fields can be designated. They will not have a name as they are not scheduled like fieldsets. There is also an option for Maximum Skills Challenge Attempts however this cannot be changed for official events.
The differences in these are discussed in the . Multiple of these can be set up however this page does not control Audience Displays (on fields) or Field Displays (for queuing).
This page will change from event to event. An agenda should be predetermined for the event and be displayed on robot events for teams so this page should reflect that. The biggest thing that is up to the discretion of the event partner is the match cycle time. This will vary based on average team experience, the number of desired matches, and the number of fields and fieldsets that are being used. Most events use 6-8 minute match cycles. These choices should reflect practice matches, and more than one set of qualification matches if lunch or multiple days is needed.
This page is used to generate the match cycle, and then view the statistics of the schedule. This can be used to tweak the previous page's inputs to ensure all teams' good and fair experience.
This will have been previously determined and displayed on Robot Events however the awards to be given at the event can be selected here. Most common awards are shown here to be selected, however custom awards can also be added for special recognition.
This can only be used if the event is connected to Robot Events. It is HIGHLY recommended to publish all information to Robot Events and VexVia as it comes for the benefit of both competitors and spectators. If a fast internet connection is not available at the event for teams and spectators, other forms of communications should be prioritized (more monitors, PA systems, etc.).
Congrats! This is the last page before the event is set up and is a good time to tweak previous decisions although most settings can be changed after the event is finalized.
