In 2017, we used this customized dashboard as the interface for our VUFINE heads up display. The device helped us in competition by allowing our driver to see the camera feed from our robot, gyroscope, and other sources of information, at all times.
We based this interface off the FRC Dashboard framework.
Python 3 (MUST be 3, not 2!)
pip3 install pynetworktables2js
If you don't have administrator privileges, put
--userat the end of that command.)
If you're going to be using the preferred method of using the dashboard (as an application through Electron), you'll also need:
- If you don't have permission to install these, see this gist for a workaround.
- Node dependencies (to install,
cdinto dashboard directory and run
ui.js, there's a large
switchstatement in the
onValueChanged()function which controls the updating of control elements in the dashboard. Example NetworkTables key names are used, but you'll need to change them to match those used in your team's robot code for them to affect anything on your robot.
Configuring Camera feed
In order to run the camera, you must start an
mjpg-streamer server on the RoboRIO. To install
Download this installer script from GitHub. This script is for downloading and installing packages to the RoboRIO.
While in the directory where you downloaded the installer script, run:
py -3 installer.py download-opkg mjpg-streamer py -3 installer.py install-opkg mjpg-streamer
Mac/Linux (using bash):
python3 installer.py download-opkg mjpg-streamer python3 installer.py install-opkg mjpg-streamer
style.cssto use the IP of your live camera feed. Usually this is something like
XXXXis your team's number.
- Connect to your robot's network if you haven't already. (If you're just testing the dashboard and don't currently need to use it with your robot, you can skip this step.)
- If you are able to use node/npm, use the section below labeled "Using dashboard as Application." If not, use the section titled "Using dashboard through web browser."
Using dashboard as Application
The preferred method of using the dashboard is to run it using the Electron framework. Your dashboard will be its own application, and will be easy to manipulate.
If you need to interact through the robotpy simulator or similar, run the following command. If not, skip on.
python3 -m pynetworktables2js --robot 127.0.0.1
While in the dashboard directory, run:
This will start a Python server and open the dashboard application. Note that you don't have to close and reopen the application every time you make a change, you can just press
Cmd+R on Mac) to refresh the application.
Using dashboard through web browser
The less desirable, but perfectly functional method of viewing your dashboard is to use it like a webpage. This method will work even if you don't have the privileges to install
npm. The standard toolbars from your browser will still be shown and will take up space on the screen, and the experience will be a bit less fluid, but it will work.
Start the Python server independently:
py -3 -m pynetworktables2js
Mac/Linux (using bash):
python3 -m pynetworktables2js
To view the dashboard, use your browser to navigate to
It is recommended that while using the dashboard on your driver station, you close the top panel of the FRC DriverStation to make room for the dashboard.
- Erik Boesen, developer of FRC Dashboard and head of UI team
FRC Dashboard, and by consequence this software, is licensed under the MIT license. Basically, modify as much as you like, as long as you give credit to the original source and don't hold us accountable for anything. More information in