FRC Driver Station Powered by NI LabVIEW
This article describes the use and features of the 2017 FRC Driver Station Powered by NI LabVIEW.
For information on installing the Driver Station software see this document.
Starting the FRC Driver Station
The FRC Driver Station can be launched by double-clicking the icon on the Desktop or by selecting Start->All Programs->FRC Driver Station.
Setting Up the Driver Station
Typically the Driver Station will set the appropriate settings automatically, but if you do have to set the network settings manually, the DS should use the following settings:
- IP: DHCP
The DS must be set to your team number in order to connect to your robot. In order to do this click the Setup tab then enter your team number in the team number box. Press return or click outside the box for the setting to take effect.
The Status Pane of the Driver Station is located in the center of the display and is always visible regardless of the tab selected. It displays a selection of critical information about the state of the DS and robot:
- 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.
- 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. See RoboRIO Brownout and Understanding Current Draw for more information.
- 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.
- 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".
The Operations Tab is used to control the mode of the robot and provide additional key status indicators while the robot is running.
- 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).
- 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
- Elapsed Time - Indicates the amount of time the robot has been enabled
- PC Battery - Indicates current state of DS PC battery and whether the PC is plugged in
- PC CPU% - Indicates the CPU Utilization of the DS PC
- Window Mode - When not on the Driver account on the Classmate allows the user to toggle between floating (arrow) and docked (rectangle)
- Team Station - When not connected to FMS, sets the team station to transmit to the robot.
Note: When connected to the Field Management System the controls in sections 1, and 2 will be replaced by the words FMS Connected and the control in Section 7 will be greyed out.
The Diagnostics Tab contains additional status indicators that teams can use to diagnose issues with their robot:
- DS Version - Indicates the Driver Station Version number
- roboRIO Image Version - String indicating the version of the roboRIO Image
- WPILib Version - String indicating the version of WPILib in use
- CAN Device Versions - String indicating the firmware version of devices connected to the CAN bus
- 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).
- Reboot roboRIO - This button attempts to perform a remote reboot of the roboRIO (after clicking through a confirmation dialog)
- Restart Robot Code - This button attempts to restart the code running on the robot (but not restart the OS)
- Memory Stats - This section shows stats about the roboRIO memory
The Setup Tab contains a number of buttons teams can use to control the operation of the Driver Station:
- Team Number - Should contain your FRC Team Number. This controls the mDNS name that the DS expects the robot to be at. New: Shift clicking on the dropdown arrow will show all roboRIO names detected on the network for troubleshooting purposes.
- 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.
- DS Protocol - This control defaults to 2015. Use 2014 for communicating with a 2014 cRIO image.
- 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.
- Audio Control - This button controls whether audio tones are sounded when the Practice Mode is used.
USB Devices Tab
The USB Devices tab includes the information about the USB Devices connected to the DS
- 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
- 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.
- Device indicators - These indicators show the current status of the Axes, buttons and POV of the joystick.
- 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.
Re-Arranging and Locking Devices
The Driver Station has the capability of "locking" a USB device into a specific slot. This is done automatically if the device is dragged to a new position and can also be triggered by double clicking on the device. "Locked" devices will show up with an underline under the device. A locked device will reserve it's slot even when the device is not connected to the computer (shown as grayed out and underlined). Devices can be unlocked (and unconnected devices removed) by double clicking on the entry.
Note: If you have two or more of the same device, they should maintain their position as long as all devices remain plugged into the computer in the same ports they were locked in. If you switch the ports of two identical devices the lock should follow the port, not the device. If you re-arrange the ports (take one device and plug it into a new port instead of swapping) the behavior is not determinate (the devices may swap slots). If you unplug one or more of the set of devices, the positions of the others may move, they should return to the proper locked slots when all devices are reconnected.
Example: The image above shows 4 devices:
- A Locked "Logitech Attack 3" joystick. This device will stay in this position unless dragged somewhere else or unlocked
- An unlocked "Logitech Extreme 3D" joystick
- An unlocked "Gamepad F310 (Controller)" which is a Logitech F310 gamepad
- A Locked, but disconnected "MadCatz GamePad (Controller)" which is a MadCatz Xbox 360 Controller
In this example, unplugging the Logitech Extreme 3D joystick will result in the F310 Gamepad moving up to slot 1. Plugging in the MadCatz Gamepad (even if the devices in Slots 1 and 2 are removed and those slots are empty) will result in it occupying Slot 3.
Joystick Setup Best Practice
Note: When using the Re-Arranging and Locking feature described above, teams should take care to make sure devices behave as they expect when the DS is restarted, and when the DS computer is rebooted with the devices connected, after initial setup. XInput devices such as Xbox controller may enumerate differently when they are connected 1-at-a-time versus all at once.
The last tab on the left side of the DS is the CAN\Robot Power Tab. This tab contains information about the power status of the roboRIO and the status of the CAN bus:
- Comms Faults - This indicates the number of Comms faults that have occurred since the DS has been connected
- 12V Faults - This indicates the number of input power faults (Brownouts) that have occurred since the DS has been connected
- 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
- CAN Bus Utilization - This indicates the percentage utilization of the CAN bus
- CAN faults - These indicate the counts of each of the 4 types of CAN faults since the DS has been connected
If a fault is detected, the indicator for this tab (shown in blue in the image above) will turn red.
The Charts tab plots and displays advanced indicators of robot status to help teams diagnose robot issues:
- The top graph charts trip time in milliseconds in green (against the axis on the right) and lost packets per second in orange (against the axis on the left)
- 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.
- This key shows the colors used for the DS Requested and Robot Reported modes in the bottom chart.
- Chart scale - These controls change the time scale of the DS Charts
- This button launches the DS Log File Viewer
The DS Requested mode is the mode that the Driver Station is commanding the robot to be in. The Robot Reported mode is what code is actually running based on reporting methods contained in the coding frameworks for each language.
The Messages tab displays diagnostic messages from the DS, WPILib, User Code, 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.
The last tab on the right side is the Both tab which displays Messages and Charts side by side
Driver Station Keys
The following keys can be used to control Driver Station operation:
- F1 - Force a Joystick refresh.
- '[' + ']' + '\' - Enable the robot (the 3 keys above Enter on most keyboards)
- Enter - Disable the Robot
- Space - Emergency Stop the robot. After an emergency stop is triggered the roboRIO will need to be rebooted before the robot can be enabled again. Note: This will E-Stop the robot regardless of if the Driver Station window has focus or not