The indexer moves fuel from the intake staging area into the launcher using two motors: a Feeder that pushes fuel along the exit path, and a Spindexer that spins fuel into the feed zone. Both are wrapped byDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/robototes/REBUILT2026/llms.txt
Use this file to discover all available pages before exploring further.
IndexerSubsystem, which exposes a single runIndexer() command used by the launching sequence.
Components
Feeder
Feeder drives a single TalonFX (CAN ID FEEDER_MOTOR_ID = 30) on the CANivore bus (comp bot) or roboRIO bus (alpha bot) using VelocityVoltage control.
| Parameter | Value |
|---|---|
| Default target RPS | 95 RPS |
| kV | 11.28 / 92 |
| kP | 0.5 |
| Stator limit | 120 A |
| Supply limit | 80 A |
| Neutral mode | Coast |
Spindexer
Spindexer drives a single TalonFX (CAN ID SPINDEXER_MOTOR_ID = 31) on the roboRIO bus using VelocityVoltage control.
| Parameter | Value |
|---|---|
| Default target RPS | 70 RPS |
| Default acceleration | 1000 rot/s² |
| kV | 11.2 / 90.7 |
| kP | 0.6 |
| Stator limit | 50 A |
| Supply limit | 30 A |
| Neutral mode | Coast |
IndexerSubsystem API
IndexerSubsystem exposes two variants of runIndexer():
runIndexer() — fixed velocity
Runs both motors at their default configured velocities.
runIndexer(DoubleSupplier flywheelRPS) — flywheel-matched velocity
Scales feeder and spindexer velocity to match the active flywheel speed for a smooth handoff. The linear equations provide proportional ramping:
Launch integration
The indexer is gated behindlauncherSubsystem.isAtTarget() in the launching command chain in Controls.java. Fuel is not fed until flywheels, hood, and turret are all within tolerance:
onlyWhile() cancels the indexer automatically and the loop waits for re-acquisition.
Controller binding
| Controller | Button | Action |
|---|---|---|
indexingTestController (port 1) | Left trigger | whileTrue(runIndexer()) — runs at fixed default velocity |
The indexer only instantiates if both
SPINDEXER_ENABLED and FEEDER_ENABLED are true in Subsystems.java. Controls.java checks for null subsystems and logs a warning if either component is disabled, skipping all indexer bindings.