Python 3 for the FIRST Robotics Competition (FRC)

2016 RobotPy now available!

We’re happy to announce the initial release of RobotPy for the 2016 season. This release contains most of the new changes for WPILib in 2016, with the notable exception of some new CANTalon functionality (but we hope to get that updated within the next week or so). Here’s some things that we have available for 2016:

Additionally, the following packages are available through our opkg feed:

  • OpenCV 3.1.0 (C++, Java, and Python bindings)
  • NumPy 1.10.2

Some things that you can look forward to in the future:

  • ipk Packaging for mjpg-streamer
  • robotpy-websim
  • pynetworktables upgrades

The RoboRIO binaries will only work correctly on a RoboRIO that has been reimaged for the 2016 season.

Our initial RobotPy release for 2016 is now available for download on our release page.

A lot of work has been put into this release, and we’re really excited about the upcoming season! Special thanks to Christian Balcom and James Ward for their contributions.

We expect there to be some bugs at first as teams start playing with their new toys, so please report them on our issue tracker as you find them!

OpenCV 3.1.0 for binaries for RoboRIO

The RobotPy project has added precompiled OpenCV 3.1.0 binaries to our 2016 opkg feed, which makes it super easy to use python + opencv on the RoboRIO. I also compiled with Java bindings, so it should be usable from C++ or Java programs if you desire also.

If you want to build your own version, I’ve setup a Vagrant-based VM that you can use to cross compile it.


  • At the moment it’s not compiled with FFMPEG/libav support, but that will be resolved soon
  • These binaries will probably only work on a RoboRIO with a 2016 image.
  • It would be nice to have a good ‘dev’ package that could be downloaded and easily inserted into Eclipse… feel free to add a script that creates this and submit a pull request. :)

PyFRC 2015.3.6 released -- now with real joystick support!

The pyfrc simulator now supports using real joysticks as input when you have pygame installed for Python 3. If you have pygame installed and a supported joystick plugged into your computer, pyfrc’s simulator will automatically detect them and feed the joystick input to the simulator.

Because pygame can be tricky to install on some platforms, it has not been added to the requirements for pyfrc, and pyfrc’s simulator will continue to work for you without pygame or joysticks.

Thanks to Carter Fendley for adding this support!

pynetworktables2js 2015.1.0 released

Team 1418 and the RobotPy project are happy to announce the release of pynetworktables2js, a cross platform library that forwards NetworkTables key/values to a webpage, so that you can easily write a Driver Station Dashboard for your robot in HTML5 + JavaScript.

Because the communications layer uses NetworkTables, you can connect your web interface to all FRC languages (C++, Java, LabVIEW, Python).

The original working prototype for pynetworktables2js was originally created by 1418 student Leon Tan, and I’ve polished it and turned it into something that other teams can use. Team 1418 won an Innovation In Control award this weekend at the Greater DC regional, in part because of our shiny+functional HTML dashboard (look for a source code release soon!).

Lots of students and mentors know how to create simple web pages to display content, and there’s lots of resources out there for creating dynamic content for webpages that use javascript. There is a lot of visually appealing content that others have created using web technologies – why not leverage those resources to make something cool to control your robot?

PyFRC 2015.3.4 released

Contains some physics related and CANTalon bugfixes. Speaking of which, pyfrc has physics support again, which means you can run your robot on a simulated field again! It’s pretty useful for testing out autonomous modes and some other limited behaviors. Check out the pyfrc documentation for more details!

As before, there are samples distributed with pyfrc that show you how you can take advantage of this really cool functionality that puts python a step above the rest for FRC programming!