Modular FTC robot code for team ProspX (DECODE season), built on Pedro Pathing and FTCLib.
This is a clean rewrite of the team's competition code into small, testable modules. All hardware logic lives in one-class-per-component subsystems; op-modes are thin and only wire buttons/positions to those subsystems.
| # | Module | Op-mode name | Input |
|---|---|---|---|
| 1 | Teleop | Teleop (Main) |
gamepad buttons & sticks |
| 2 | Autonomous | Auto - Blue Left, Auto - Blue Right, Auto - Red Left, Auto - Red Right |
starting position on the field |
| 3 | Intake control (standalone) | Intake Control |
buttons |
| 4 | Outtake / flywheel control (standalone) | Outtake / Flywheel Control |
buttons; closed-loop velocity |
Each major hardware component is its own class under
TeamCode/src/main/java/org/firstinspires/ftc/teamcode/hardware/:
Drivetrain— mecanum driveIntake— intake motor + gate servoShooter— dual flywheel (velocity control) + hoodTurret— turret motor with Limelight PD auto-aimVision— Limelight 3A wrapperFeeder— 3-slot non-blocking fire sequenceRobot— composition root that builds them all
All device names and tuning constants live in
config/RobotConfig.java.
- Open in Android Studio.
- Connect the Robot Controller (or use
./gradlew :TeamCode:assembleDebug). - Make sure the Driver Station configuration matches the hardware map in
AGENTS.md.
Read AGENTS.md — it documents the architecture rules, the full hardware map,
and how to add a new subsystem, tuned constant, or autonomous start position.