FIRST Robotics Competition Blog

2018 Beta Testing and 2017 Usage Reporting

Sep 13, 2017 Written by Kevin O'Connor, FIRST Robotics Competition, Robotics Engineer

Beta Testing

This year we are once again looking for 90 teams, 30 for each software language, to help us test the 2018 FIRST Robotics Competition software. A small number of teams have been invited to bypass the application process based on past performance in Beta testing. Most of the spots are still up for grabs, though, so make sure to fill out the application found here by Sunday, September 24th, if you are interested. Beta teams will be asked to upgrade their 2017 robots to the 2018 software, perform some specific tests with any significant changes or new tools, and help educate other teams about the changes for 2018. Beta Testing will begin approximately the 2nd – 3rd week of October and each task will have specific deadlines through approximately the end of November. Teams may continue to test through Kickoff, but software starts to lock in early December so testing done in December may not be done in time to fix any bugs discovered.

2017 Usage Reporting

One of the under-the-hood features of the FRC Control System software is a system called Usage Reporting. This system tracks what WPILib objects are created in each team's code and reports the data back to FMS when the robot is connected to the field. This data helps FIRST and our Suppliers understand how teams are using the Control System which can give us insight into things such as adoption of new features or usage of legacy classes.

Here are a few numbers from the data that teams may find interesting:


The total number of motor controllers used on 2017 robots


The total number of USB input devices used to control those motors


Total Encoders used to get feedback from those motors


The number of teams that used pneumatics (with the PCM) on their 2017 robot


The number of Digital Outputs used to control non-actuators (lights, sensors, etc.) on 2017 robots

43 33

Number of teams programming in Python


The number of Analog Outputs used to control non-actuators (sounds, lights, etc.) on 2017 robots

The complete processed data set can be found here.

 A few notes on this data:

  • The data has been semi-anonymized. Team numbers have been replaced with rookie years and the data has been resorted so teams are not in order by team number.
  • We can only track the objects teams create in code. If you create extra motor controllers that aren't on your robot3, they will still be captured by this system. If you create motor controller objects of the wrong type, that wrong type will be captured by this system.
  • Counted objects and TRUE/FALSE show the largest number of any given object used in any one match (i.e. if a Robot had 2 Encoders in match 1 and 3 Encoders in match 7, 3 will be reported). Language and Framework report what was used in the last recorded match.
  • Some objects naturally result in double counting (Encoders use Digital Inputs)

1Only includes encoders plugged directly into the roboRIO

2Compressor may not show for C++ and Java teams that didn't use the Compressor object. Counting the # of teams that had > 1 Solenoids is a more accurate count of teams using pneumatics.

3Example: A handful of teams report more than 16 motor controllers which would be awfully tough with only 16 channels on the PDP.

Back to Blog


you should fix the link, it directs to the 2016 usage data

Thanks for catching that and letting us know, Guy. The link has been fixed. I'm sorry about that!

Link was updated, but post still contains incorrect data.

Hi Another Guy, if that is your real name :) I'm not sure what to what you're referring. Can you email me at with detail? Thanks!

Add new comment