Primary competition repository for FRC Team 2408's 2025 season robot. This codebase contains all competition-ready code used during the 2025 FRC game season. All code in this repository should be thoroughly tested and competition-ready.
Drive Base:
- Swerve Drive (4 modules)
- Module Configuration:
├── Drive Motor: [Type TBD]
├── Turn Motor: [Type TBD]
├── Absolute Encoder: [Type TBD]
└── Turn Encoder: [Type TBD]
Manipulator:
- [TBD based on game]
Vision:
- Cameras: [Type TBD]
- Processing: [Hardware TBD]
Control System:
- roboRIO 2.0
- REV Power Distribution Hub
- Radio: OpenMesh OM5P-AC
1. WPILib 2024.1.1 or newer
2. Visual Studio Code with extensions:
- WPILib
- Java Extension Pack
- Git Graph
3. Vendor Libraries:
- REVLib
- Phoenix6
- PhotonVision
4. Git
# Clone repository
git clone https://github.com/FRCTeam2408/2025_Competition_Code.git
cd 2025_Competition_Code
# Build project
./gradlew build
src/main/java/frc/robot/
├── subsystems/
│ ├── drive/ # Swerve drive subsystem
│ ├── manipulator/ # Game piece manipulation
│ └── vision/ # Vision processing
├── commands/
│ ├── drive/ # Drive commands
│ ├── manipulator/ # Manipulator commands
│ └── autonomous/ # Autonomous routines
├── constants/ # Robot constants
└── utils/ # Utility classes
src/test/java/frc/robot/ # Test files
main # Competition-ready code only
└── develop # Main development branch
├── feature/ # New features
├── fix/ # Bug fixes
└── chore/ # Maintenance tasks
-
Create branch from develop:
git checkout develop git pull origin develop git checkout -b feature/your-feature
-
Write code and test:
# Build and test locally ./gradlew build ./gradlew test # Test in simulation ./gradlew simulateJava
-
Create pull request:
- Push changes to GitHub
- Create PR targeting develop branch
- Fill out PR template
- Request reviews
All code must be reviewed before merging:
- Develop branch: 1 reviewer required
- Main branch: 2 reviewers required
- Must include mentor review for main branch
1. Code Verification:
□ All tests passing
□ Build successful
□ Known issues documented
□ Autonomous modes verified
□ Dashboard configured
2. Robot Setup:
□ Code deployed to robot
□ Radio configured
□ Dashboard connected
□ Camera streams verified
□ Battery voltage checked
3. Backup Preparation:
□ Code backed up to USB
□ Configuration files saved
□ Documentation accessible
□ Emergency procedures reviewed
1. Pre-Match:
□ Battery voltage verified
□ Systems check complete
□ Autonomous mode selected
□ Connection verified
□ Dashboard receiving data
2. During Match:
□ Monitor robot status
□ Watch for error messages
□ Note any issues
3. Post-Match:
□ Record match data
□ Document any issues
□ Save log files
□ Update issue tracking
1. Motor Safety:
□ Current limiting enabled
□ Voltage ramping configured
□ Position limits set
□ Watchdog enabled
2. Operation Safety:
□ Emergency stop tested
□ Fail-safe modes implemented
□ Sensor validation
□ Power monitoring
1. New Features:
□ Unit tests written
□ Integration tests completed
□ Simulation tested
□ Practice bot verified
□ Safety checks validated
2. Changes to Existing Code:
□ Regression tests run
□ Integration verified
□ Documentation updated
□ Safety systems checked
# Clean build
./gradlew clean
# Build project
./gradlew build
# Run tests
./gradlew test
# Deploy to robot
./gradlew deploy
1. Practice Bot Testing:
□ Deploy code
□ Test all systems
□ Verify autonomous
□ Check fail-safes
□ Document results
2. Competition Bot Deployment:
□ Code review completed
□ All tests passing
□ Practice bot validated
□ Mentor approval received
- All public methods must have Javadoc
- Complex logic must be commented
- Constants must be documented
- Safety features must be clearly marked
- Subsystem capabilities and limits
- Autonomous routine descriptions
- Known issues and workarounds
- Configuration procedures
- Emergency procedures
-
Code issues during competition:
- Access backup code from USB
- Revert to last known good state
- Contact available mentors
- Document all changes
-
Robot communication issues:
- Check radio connection
- Verify network configuration
- Check roboRIO connection
- Verify dashboard status
Team Contacts:
- Team Email: [team email]
- Mentors:
- Dan Hiebert
- Josh Kupka
- Stephanie
- Student Lead: Taaliyah
This project is licensed under the MIT License - see the LICENSE file for details.