Driver station

The FRC Driver station is a piece of software written in NI Labview that is the primary interface between the robot and the computer. The Driver Station allows access to the joystick values as well as custom dashboards that can be used from everything from debugging to autonomous selection.

Overview
The Driver Station consists of three separate panes:

Operations Tab
When connected to the FMS this pane no longer shows the Robot Mode or the Enable/Disable state. It just shows which station's ethernet cable you're plugged into.
 * 1) Robot Mode - This section controls the Robot Mode. Practice Mode causes the robot to cycle through the same transitions as an FRC match after the Enable button is pressed (timing for practice mode can be found on the setup tab).
 * 2) Enable/Disable - These controls enable and disable the robot. You can also use the key combination []\ (the 3 keys above the enter key on most keyboards) to enable the robot and the Enter key to Disable the robot. The Spacebar will Emergency Stop the Robot
 * 3) Elapsed Time - Indicates the amount of time the robot has been enabled
 * 4) PC Battery - Indicates current state of DS PC battery and whether the PC is plugged in
 * 5) PC CPU% - Indicates the CPU Utilization of the DS PC
 * 6) Window Mode - When not on the Driver account on the Classmate allows the user to toggle between floating (arrow) and docked (rectangle)
 * 7) Team Station - When not connected to FMS, sets the team station to transmit to the robot. When connected to the field this is value is set by the station you plug into.

Diagnostics Tab
The indicators on this tab help address problems the robot might be having
 * 1) DS Version - Indicates the Driver Station Version number. Toward the end of the build season and the first week of official competition be on the look out for driver station updates. You will not be allowed to compete (or pass inspection) without the new update, and it's always easier to update in the shop than at the competition
 * 2) roboRIO Image Version - String indicating the version of the roboRIO Image
 * 3) WPILib Version - String indicating the version of WPILib in use
 * 4) CAN Device Versions - String indicating the firmware version of devices connected to the CAN bus (Also includes Talon SRXs)
 * 5) Connection Indicators - Indicate connection status to various components. "Enet Link" indicates the computer has something connected to the ethernet port. "DS Radio" is a legacy indicator used to indicate the ping status to an external radio on the DS side at 10.XX.YY.4. "Bridge" indicates the ping status to the robot wireless bridge at 10.XX.YY.1. "Robot" indicates the ping status to the roboRIO using mDNS (with a fallback of a static 10.TE.AM.2 address). "FMS" indicates if the DS is receiving packets from FMS (this is NOT a ping indicator).
 * 6) Reboot roboRIO - This button attempts to perform a remote reboot of the roboRIO (after clicking through a confirmation dialog). Can be useful if something negative happens during a match...
 * 7) Restart Robot Code - This button attempts to restart the code running on the robot (but not restart the OS)
 * 8) Memory Stats - This section shows stats about the roboRIO memory

Setup Tab

 * 1) Team Number - Should contain your FRC Team Number. This controls the mDNS name that the DS expects the robot to be at. Shift clicking on the dropdown arrow will show all roboRIO names detected on the network for troubleshooting purposes.
 * 2) Dashboard Type - Controls what Dashboard is launched by the Driver Station. Default launches the file pointed to by the "FRC DS Data Storage.ini" file, by default this is Dashboard.exe in the Program Files\FRC Dashboard folder. Labview attempts to launch a dashboard at the default location for a custom built Labview dashboard, but will fall back to the default if no dashboard is found. Java and C++ launch the SmartDashboard included with the language update for that language. To use the SmartDashboard with camera extension leave the option set to Default and see the SmartDashboard section of the documentation.
 * 3) DS Protocol - This control defaults to 2015. Use 2014 for communicating with a 2014 cRIO image. There hasn't been an update since 2015 (as of 2017)
 * 4) Practice Mode Timing - These boxes control the timing of each portion of the practice mode sequence. When the robot is enabled in practice mode the DS automatically proceeds through the modes indicated from top left down to bottom left then up to top right and down.
 * 5) Audio Control - This button controls whether audio tones are sounded when the Practice Mode is used.

USB Pane

 * 1) USB Setup List - This contains a list of all compatible USB devices connected to the DS. Pressing a button on a device will highlight the name in green and put 2 *s before the device name. This is very useful for organizing the joysticks in the correct order.
 * 2) Rescan - This button will force a Rescan of the USB devices. While the robot is disabled, the DS will automatically scan for new devices and add them to the list. To force a complete re-scan or to re-scan while the robot is Enabled (such as when connected to FMS during a match) press F1 or use this button.
 * 3) Device indicators - These indicators show the current status of the Axes, buttons and POV of the joystick. This only works for one of the joysticks
 * 4) Rumble - For XInput devices (such as X-Box controllers) the Rumble control will appear. This can be used to test the rumble functionality of the device. The top bar is "Right Rumble" and the bottom bar is "Left Rumble". Clicking and holding anywhere along the bar will activate the rumble proportionally (left is no rumble = 0, right is full rumble = 1). This is a control only and will not indicate the Rumble value set in robot code.

USB devices can be reorganized by dragging the device name to a different position on the list. Double clicking on the device will lock the device in place (the name will be underlined ) or unlock the device if it's already locked. Always make sure the USB devices are in the right order before driving the robot.

CAN Pane
If a fault is detected, the indicator for this tab (shown in blue in the image above) will turn red.
 * 1) Comms Faults - This indicates the number of Comms faults that have occurred since the DS has been connected
 * 2) 12V Faults - This indicates the number of input power faults (Brownouts) that have occurred since the DS has been connected
 * 3) 6V/5V/3.3V Faults - This indicates the number of faults (typically cause by short circuits) that have occurred on the User Voltage Rails since the DS has been connected
 * 4) CAN Bus Utilization - This indicates the percentage utilization of the CAN bus
 * 5) CAN faults - These indicate the counts of each of the 4 types of CAN faults since the DS has been connected

Status Pane
The Status Pane is in the middle of the driver station and is always visible.
 * 1) Team # - The Team number the DS is currently configured for. This should match your FRC team number, to change the number see the Setup Tab.
 * 2) Battery Voltage - If the DS is connected and communicating with the roboRIO this displays current battery voltage as a number and with a small chart of voltage over time in the battery icon. The background of the numeric indicator will turn red when the roboRIO brownout is triggered.
 * 3) Major Status Indicators - These three indicators display major status items for the DS. The "Communications" indicates whether the DS is currently communicating with the FRC Network Communications Task on the roboRIO (this year it is split in half for the TCP and UDO communication). The "Robot Code" indicator shows whether the team Robot Code is currently running (determined by whether or not the Driver Station Task in the robot code is updating the battery voltage), The "Joysticks" indicator shows if at least one joystick is plugged in and recognized by the DS.
 * 4) Status String - The Status String provides an overall status message indicating the state of the robot, some examples are "No Robot Communication", "No Robot Code", "Emergency Stopped", and "Teleoperated Enabled". When the roboRIO brownout is triggered this will display "Voltage Brownout".

Messages Tab
The Messages tab displays diagnostic messages from the DS, WPILib and/or the roboRIO. The messages are filtered by severity. By default, only Errors are displayed.

To access settings for the Messages tab, click the Gear icon. This will display a menu that will allow you to select the detail level (Errors, Errors+Warnings or Errors+Warnings+Prints), Clear the box, launch a larger Console window for viewing messages, or launch the DS Log Viewer.

Being able to see prints can be used for debugging Java/C++/Python programs. It's where the robot's standard output prints to

Charts Tab



 * 1) The top graph charts trip time in milliseconds in green (against the axis on the right) and lost packets per second in blue (against the axis on the left)
 * 2) The bottom graph plots battery voltage in yellow (against the axis on the left), roboRIO CPU in red (against the axis on the right), DS Requested mode as a continuous line on the bottom of the chart and robot mode as a discontinuous line above it.
 * 3) This key shows the colors used for the DS Requested and Robot Reported modes in the bottom chart.
 * 4) Chart scale - These controls change the time scale of the DS Charts
 * 5) This button launches the DS Log File Viewer for more detailed viewing

Both Tab
Shows both messages and charts side by side

Setting Up The Driver Station
The Driver Station software is included in the Yearly National Instruments/Labview Update Suite. The software will only run on Windows 7+ computers (sorry folks, no Windows XP).

To Install the Driver station first delete all older versions of the application: Start Menu >> Control Panel >> Uninstall a Program Then scroll down to National Instruments Software, right click, and select Uninstall/Change

Highlight all the entries on the left side of the pane and then click Remove

From here the installation is the same as Installing National Instruments Update Suite