Vendor dependencies (vendordeps) are JSON files that add support for third-party hardware and libraries to your robot project. They enable integration with motor controllers, sensors, and other devices from manufacturers beyond the standard WPILib hardware.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/wpilibsuite/allwpilib/llms.txt
Use this file to discover all available pages before exploring further.
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