paper: Driver Station Best Practices

Thread created automatically to discuss a document in CD-Media.

Driver Station Best Practices
by: MrRoboSteve

Best practices surrounding the driver station for FRC teams

Want to ensure the driver station isn’t a stopper for your team at the FIRST Robotics Competition (FRC) field? Building and configuring a solid driver station laptop is an easy project for the time between stop build day and your competition. Read on to find lessons learned by many teams over thousands of matches.

FRC Control System Driver Station Best Practices.pdf (821 KB)

1 Like

Since the topic is the driver station in general, here are a few lessons learned the hard way:

  • Use game controllers or other input devices that are hardwired, not with micro USB ports in the controllers.
  • Your drivers will be most efficient if they never are required to remove their eyes from the robot during the match to look down at the driver’s station. Use tactile feedback, if your controllers have that function, or status lights (LED light strips work well) on the robot as visual indicators.
  • Enable software logging for everything you can, including controller inputs, feedback devices, limit switches, motor currents, etc. This can be invaluable when troubleshooting unexpected controllability issues or hardware failures during a match.
  • Be sure your driver station and controllers are treated with care, and not abused, between matches. Build a protected spot on your robot cart if you have to.
  • Use velcro to attach the drivers station to the shelf.

Here are the powershell snippets I made last weekend. Start Powershell as an administrator on the driver’s station and cut/paste the appropriate bits.

# Turn off the currently enabled firewall profile, 
$CurrentProfile = Get-NetFirewallProfile
Set-NetFirewallProfile -Profile $CurrentProfile.Name -Enabled False

#disable WiFi and Bluetooth
$adapters = Get-NetAdapter
foreach ($adapter in $adapters)
{
    if ($adapter.PhysicalMediaType -like "*802.11" -or $adapter.PhysicalMediaType -like "*BlueTooth")
    {
        Disable-NetAdapter -name $adapter.Name -Confirm:$false
    }

}

#Pause Windows updates
Set-Service -Name wuauserv -Status Stopped




# Turn on the currently enabled firewall profile, 
$CurrentProfile = Get-NetFirewallProfile
Set-NetFirewallProfile -Profile $CurrentProfile.Name -Enabled True

#enable WiFi and Bluetooth
$adapters = Get-NetAdapter
foreach ($adapter in $adapters)
{
    if ($adapter.PhysicalMediaType -like "*802.11" -or $adapter.PhysicalMediaType -like "*BlueTooth")
    {
        Enable-NetAdapter -name $adapter.Name -Confirm:$false
    }

}

#start Windows updates
Set-Service -Name wuauserv -Status Running

Thanks, Doug.

I know the quality of the driver station is kind of a boring topic when compared to robots and game strategy. At week 1 and 2 events I saw/heard about enough bad driver station situations that teams should really pay more attention. It’s particularly sad when the FTA has to bypass a team because of their driver station not working well.

Just had a chance to browse through this. Great document, thanks for compiling.

Apparently in the driver station USB configuration screen, once you’ve scanned for your USB controller devices, you can double-click them to lock their assignments?

If you are looking for cheap but solid drivers stations, I use arrow direct. They are mostly business computers coming of leases. I strongly prefer the business class lenovos with real (not the collapsible) Ethernet ports.

Port locking has some key constraints that people don’t always think about, so I don’t recommend it.

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.

https://wpilib.screenstepslive.com/s/currentCS/m/driver_station/l/144976-frc-driver-station-powered-by-ni-labview

I’ll add that it’s fine fine to use a reputable* USB hub if you need more ports for joysticks or Ethernet dongles if you need. If you do use one, be sure to tie it down and properly strain relieve it so if you take a hit you don’t lose all of your joysticks.

*Don’t use one you found in a dollar store, spend a good $10-15 in an electronics store for one you know you can trust. It should have a built-in cable, not a separate micro USB port and cable.

I’ve updated this document based on feedback I’ve gotten since the 2019 competition season.

Screensteps refers to this CD article for driver station best practices. While the Screensteps page links to a PDF directly, the link to the PDF here in the CD article no longer works. Are these the same doc? Can the link here in CD be updated to work with the new site? Thx!

All of CD-Media got removed in the transfer. It’s being re-uploaded, but it takes a few days. In the meanwhile, you can find it using the wayback machine.

double-clicking on the usb devices will remove them from the list. Useful for when you have too many grayed out ones in the list.

@che.smith if you PM me your email I will send you a copy.

Given that a few times a year people run into issues with autodesk software causing periodic packet loss, maybe an explicit reference to that would be helpful.

Thanks for the suggestion @Joe_Ross. I have an update but am trying to work out how to replace the existing white paper in Discourse.

In the mean time, here’s a link to the revised paper: https://1drv.ms/b/s!AhAWaAz7Btc1sb0gzHNkwNd8hDEckQ

1 Like

It’s probably worth adding something about locking the joysticks, from http://wpilib.screenstepslive.com/s/currentCS/m/driver_station/l/144976-frc-driver-station-powered-by-ni-labview#re_arranging_and_locking_devices

2 Likes