What are Vendor Dependencies?
Vendor dependencies:- Add libraries for third-party hardware (CTRE, REV, etc.)
- Provide APIs for advanced features
- Include both Java and C++ implementations
- Automatically manage dependencies and updates
- Include native libraries for roboRIO and simulation
Vendordep File Structure
A vendordep is a JSON file describing the library:romiVendordep/RomiVendordep.json:1
Key Vendordep Fields
Metadata
- fileName: Name of the JSON file
- name: Human-readable library name
- version: Library version
- uuid: Unique identifier (prevents conflicts)
- frcYear: FRC season year (“2026”, “2025”, etc.)
- mavenUrls: Repository URLs for downloading libraries
- jsonUrl: URL for automatic updates
Java Dependencies
C++ Dependencies
- libName: Native library name (without platform suffix)
- headerClassifier: Maven classifier for header files
- sharedLibrary: Whether library is shared (.so, .dll) or static
- binaryPlatforms: Supported platforms
linuxarm32: roboRIOlinuxarm64: roboRIO 2windowsx86-64: Windows simulationlinuxx86-64: Linux simulationosxuniversal: macOS simulation
JNI Dependencies
Native libraries required by Java code:Installing Vendor Dependencies
Online Installation
- Open VSCode Command Palette (Ctrl+Shift+P / Cmd+Shift+P)
- Type “WPILib: Manage Vendor Libraries”
- Select “Install new libraries (online)”
- Enter vendor URL or select from list
- CTRE Phoenix:
https://maven.ctr-electronics.com/release/com/ctre/phoenix/Phoenix-latest.json - REV Robotics:
https://software-metadata.revrobotics.com/REVLib-2025.json - Kauai Labs (navX):
https://dev.studica.com/releases/2025/NavX.json - Playing With Fusion:
https://www.playingwithfusion.com/frc/playingwithfusion2025.json - Redux Robotics:
https://frcdocs.wpi.edu/en/stable/docs/software/vscode-overview/3rd-party-libraries.html
Offline Installation
- Download vendordep JSON file
- Place in
vendordeps/folder in your project - Build project to download dependencies
Managing Installed Libraries
View installed libraries:- Command Palette → “WPILib: Manage Vendor Libraries”
- Select “Manage current libraries”
- Uncheck library to remove
Using Vendor Libraries
C++ Example (REV Robotics)
Java Example (CTRE Phoenix)
WPILib-Provided Vendordeps
WPILib includes vendordeps for specific platforms:Romi
Support for the Romi robot platform:romiVendordep/RomiVendordep.json:1
XRP
Support for the XRP robot platform:xrpVendordep/XRPVendordep.json:1
Creating Custom Vendordeps
To create your own vendordep:- Define Metadata:
- Add Maven Repository:
- Specify Dependencies:
- Build and Publish:
- Build native libraries for all platforms
- Publish to Maven repository
- Host JSON file at public URL
Updating Vendor Libraries
Check for Updates
- Command Palette → “WPILib: Manage Vendor Libraries”
- Select “Check for updates (online)”
- Accept updates if available
Manual Update
- Download new vendordep JSON
- Replace file in
vendordeps/ - Build project
Troubleshooting
Library Not Found
Problem: Build fails with “Could not find library” Solutions:- Ensure internet connection (for first build)
- Check
mavenUrlsare accessible - Verify platform is supported in
binaryPlatforms - Try cleaning and rebuilding:
./gradlew clean build
Version Conflicts
Problem: Multiple libraries conflict Solutions:- Update all libraries to latest versions
- Check vendor documentation for compatibility
- May need to downgrade some libraries
Simulation Issues
Problem: Vendor library doesn’t work in simulation Solutions:- Check if library supports your platform (Windows/Linux/macOS)
- Some libraries only support roboRIO hardware
- Check vendor docs for simulation support
CAN Device Not Found
Problem: Motor controllers not responding Solutions:- Verify CAN IDs are correct
- Check physical CAN wiring
- Use vendor configuration tool (Phoenix Tuner, REV Hardware Client)
- Ensure vendordep is installed
Best Practices
- Use Online Installation: Ensures latest compatible version
- Update Regularly: Check for updates at start of season and before events
- Vendor-Specific Tools: Use manufacturer config tools (Phoenix Tuner, REV Client)
- Read Documentation: Each vendor has specific setup requirements
- Version Consistency: Keep vendordeps consistent across team computers
- Backup Vendordeps: Commit
vendordeps/folder to version control
Common Vendors
Motor Controllers
- CTRE (Talon SRX, Falcon 500): Phoenix framework
- REV Robotics (SPARK MAX): REVLib
- Redux Robotics (Canandmag, Canandgyro): Redux API
Sensors
- Kauai Labs (navX): NavX navigation sensor
- Playing With Fusion: Time of Flight sensors, Venom motors
- CTRE: CANCoder, Pigeon IMU
Vision
- PhotonVision: Vision processing library
- Limelight: Vision camera API
Other
- PathPlanner: Advanced path planning
- AdvantageKit: Logging and replay framework