Overview
Shuffleboard is a modern, user-friendly dashboard that replaces the legacy SmartDashboard. It’s built with competition use in mind, offering a flexible widget-based interface that can be customized to show exactly what your drive team needs.Features
- Customizable Layouts: Drag-and-drop interface for arranging widgets
- Widget System: Variety of pre-built widgets for different data types
- Camera Streams: Display multiple camera feeds simultaneously
- NetworkTables Integration: Automatic discovery of robot data
- Layout Saving: Save and load custom layouts
- Plugin Support: Extend functionality with custom plugins
- Recording: Record and playback NetworkTables data
Key Advantages
Competition-Ready Design
Shuffleboard is designed specifically for competition environments:- Clear, readable displays visible from a distance
- Reliable performance under competition conditions
- Minimal setup required between matches
Smart Widget Selection
Shuffleboard automatically selects appropriate widgets based on data types:- Boolean values → Toggle buttons or indicators
- Numeric values → Number displays or graphs
- String values → Text displays
- Camera streams → Video feeds
- Choosers → Dropdown menus
Layout Management
Create different layouts for different purposes:- Practice Layout: Detailed debugging information
- Competition Layout: Essential drive team information only
- Autonomous Testing: Autonomous mode selection and feedback
Using with WPILib
Shuffleboard is included with the WPILib installer and integrates seamlessly with WPILib robot programs.Publishing Data from Robot Code
Java:Organizing Data into Tabs
Organize your dashboard data into logical tabs:Widget Types
Basic Widgets
- Text Display: Shows string values
- Number Bar: Horizontal bar for numeric values
- Number Slider: Interactive slider for number input
- Voltage View: Display for voltage values
- Boolean Box: Shows boolean states
- Toggle Button: Interactive boolean control
Complex Widgets
- Graph: Line graph for numeric values over time
- Camera Stream: Live camera feed display
- Command: Shows command status and allows scheduling
- Subsystem: Shows subsystem status and default command
- PID Controller: Displays and edits PID gains
- SendableChooser: Dropdown menu for selections
Field Widgets
- Field2d: Top-down view of robot position on the field
- Mechanism2d: Visualization of robot mechanisms
Camera Integration
Shuffleboard provides excellent camera stream support:Adding Camera Streams
Multiple Cameras
Display multiple camera feeds simultaneously:- Front-facing camera for driving
- Rear-facing camera for alignment
- Mechanism camera for close-up operations
Best Practices
For Competition
Keep it simple
Only display information the drive team needs during a match. Too much information can be overwhelming.
Test before competition
Verify your Shuffleboard layout works correctly before arriving at competition.
Layout Organization
- Group related information together
- Place critical information prominently
- Use consistent widget sizes for a clean appearance
- Separate development data from competition data using tabs
Recording and Playback
Shuffleboard can record NetworkTables data for later analysis:- Click the Record button to start recording
- Run your robot or simulation
- Click Stop to end recording
- Use Playback to review the recorded data
- Debugging issues that occurred during a match
- Analyzing robot behavior
- Training drive team members
Running Shuffleboard
Shuffleboard is typically installed with the WPILib suite:From WPILib Installation
If you have WPILib installed, Shuffleboard is available through:- The WPILib menu in VS Code
- The Start menu (Windows)
- Applications folder (macOS)
- Desktop shortcut (Linux)
Connecting to Robot
Shuffleboard automatically attempts to connect to NetworkTables:- Enter your team number in the settings
- Or manually specify an IP address
- Shuffleboard will connect when the robot is powered on
System Requirements
- Java Runtime Environment (JRE) 17 or later
- Operating Systems:
- Windows 10 or later
- macOS 10.15 or later
- Ubuntu 20.04 or later
Integration with Other Tools
With Glass
Use Glass for development and detailed debugging, then switch to Shuffleboard for competition.With AdvantageScope
Use AdvantageScope for detailed log analysis and Shuffleboard for real-time competition use.With OutlineViewer
Use OutlineViewer for quick debugging and Shuffleboard for organized dashboard displays.Troubleshooting
Shuffleboard Won’t Connect
- Verify your team number or IP address is correct
- Check that the robot is powered on and connected to the network
- Ensure firewall settings allow NetworkTables traffic (port 1735)
Widgets Not Appearing
- Check that your robot code is publishing to NetworkTables
- Verify the data is published to SmartDashboard or Shuffleboard tables
- Refresh the Shuffleboard interface
Camera Streams Not Loading
- Verify CameraServer is started in your robot code
- Check network bandwidth (camera streams require significant bandwidth)
- Ensure the camera is properly connected to the roboRIO
Related Tools
- Glass - Advanced visualization tool for development
- OutlineViewer - Simple NetworkTables viewer
- SysId - System identification tool