Welcome to the official repository for Ultraviolet, Team 2129's 2026 FRC robot. This codebase is built for high-speed precision, featuring advanced trajectory math, holonomic movement, and a fully automated intake-to-shooter pipeline.
- Swerve Drive: 4-module independent drive using CTRE Phoenix 6 and Pigeon 2.0.
- Smart Indexer: Time-of-Flight (CANrange) controlled belt system for zero-jam indexing.
- Dynamic Shooter: Automated hood adjustment and RPS "gear shifting" based on distance.
- arm pivot Subsystem: Smooth vertical positioning using Motion Magic for consistent scoring heights.
| Subsystem | Key Components | Control Strategy |
|---|---|---|
| Swerve | x60(Drive), Falcon(Turn), CANcoder | FOC Field-Oriented / PathPlanner |
| arm pivot | x44 | Motion Magic (Cruise: 50 rps) |
| Indexer | x60(rollers), x44(feeder), Falcon(belts), Minion(vertical feeder), CANrange(ball inspection) | State-based Logic (ToF Triggered) |
| Intake | x44 | High-torque Voltage Control |
We leverage Limelight vision data fused with our internal Odometry to provide a 360-degree field awareness. We also chose this year to use exclusively CTRE motors and sensors in our robot. We found the X44 krakens were particularly great and thatt the Minion was exceptionaly powerful for being so small.
Important
For the "Heavy Stuff"—including the custom physics, virtual target leading, and the math behind our shooter—please visit the SHOOTER_README.md.
To calibrate the swerve module offsets, use the Dashboard:
- Align all wheels to face "Forward" (Bolts facing inside).
- Toggle the
Drive/Modules/Calibrateentry in NetworkTables. - The code will automatically calculate the difference and update the CANcoder magnet offsets.