The goal
A pivoting intake that deploys over the bumper, spins compliant rollers to grab a game piece, and retracts. Two motions: a pivot (position) and a roller (raw speed).
Step 1 — The pivot
The pivot only needs to fight the intake's own weight (light, ~3-4 lb at a short moment arm), so a NEO 550 (REV-21-1651) or a single NEO through a MAXPlanetary 9:1 + a small chain reduction is plenty. Because the arm is light, you can often skip a full ProfiledPIDController and use a simple position loop with a kG term, but profiling still gives gentler deploys that don't bounce game pieces out.
Mount a hard stop at the deployed position so the mechanism rests on metal, not on motor torque. Use an absolute Through Bore Encoder V2 (REV-11-3174) on the pivot axle for reliable startup angle.
Step 2 — The rollers
Rollers want speed and grip, not precision. Run 2 in compliant wheels on a 1/2 in hex shaft, driven by a NEO 550 or a brushed motor through a light reduction (e.g. 3:1 to 4:1) so surface speed stays high. Set a modest current limit (20-30 A) so a jammed game piece doesn't cook the motor.
Step 3 — Command-based sequencing
The magic is the sequence: deploy, then spin, then sense, then retract. In WPILib command-based:
public Command intakeSequence() {
return Commands.sequence(
pivot.setGoalCommand(DEPLOYED_RAD),
Commands.waitUntil(pivot::atGoal),
rollers.runCommand(0.8) // duty cycle
.until(this::hasGamePiece),
Commands.parallel(
rollers.stopCommand(),
pivot.setGoalCommand(STOWED_RAD)));
}
Step 4 — Sensing the catch
A cheap, reliable game-piece detector is a beam-break sensor or a current spike on the roller motor (current rises when a piece loads the rollers). Either feeds hasGamePiece(). Avoid relying solely on driver timing; an automatic stop prevents intake jams and double-loads.
Step 5 — Mechanical robustness (lessons from real teams)
- Use compliant/squishy wheels so misaligned game pieces still funnel in; rigid wheels reject anything off-center.
- Polycarbonate side guides funnel the piece into the rollers.
- Route the roller motor power and the encoder cable through the pivot with a service loop so repeated deploy/retract cycles don't fatigue the wire. Pivoting intakes are a top source of broken wires mid-event.
Key takeaways
- An intake has two control modes: a light position-controlled pivot and a speed-controlled roller; treat them separately.
- Sequence deploy -> spin -> sense -> retract as a command, and stop automatically on a beam-break or roller current spike.
- Add a hard stop at deploy, use compliant wheels with poly funnels, and route cabling with a service loop to survive repeated pivots.
Keep going
Take the quiz · +10 XP with an accountMore in Worked Examples & Mini-Projects
Sources & corrections
This lesson is AI-assisted: drafted from primary sources, then reviewed and edited by hand. Errors still get through. When one is reported we fix it and write down what changed — publicly, in the corrections log.
Sources and further reading
- WPILib Command-Based Programmingdocs.wpilib.org
- FRCDesign Mechanism Examples (Intakes)frcdesign.org
- REV Motor Comparison (NEO / NEO 550)docs.revrobotics.com
Read next
Articles on this, for competition day
The lesson covers how it works. These cover what to do when it breaks.
- 15 min read
How to Design an FRC Intake: Rollers, Compression, and Motors
A primary-source FRC intake design guide: over-the-bumper vs under-bumper, roller vs wheel, compliance and durometer, compression and wrap, and motor selection.
Read - 13 min read
FRC Code Structure Best Practices: Command-Based Project Architecture
How to structure an FRC command-based robot project the right way — subsystems, commands, RobotContainer, and Constants — verified against official WPILib docs.
Read - 9 min read
FRC Command-Based Programming: Subsystems, Commands, and the Scheduler
A beginner-friendly guide to WPILib command-based programming in Java: subsystems, commands, the CommandScheduler, triggers, and composing commands.
Read
Lesson quiz
RequiredAll 3 right completes the lesson. Miss one and only that question comes back — anything you already answered correctly stays banked.
0 of 3 answered
01.How does the pivoting roller intake split its two motions in control terms?
02.What command-based sequence handles an intake cycle?
03.Which sensing methods are recommended for automatically detecting a captured game piece?
Answer every question to submit.
All 47 lessons in Mechanical, Build & Pneumatics
- Not started:Mini-Project 1: A Single-Jointed Arm From Math to Motion
- Not started:Mini-Project 2: A Two-Stage Cascade Elevator
- Not started:Mini-Project 3: A Velocity-Controlled Flywheel Shooter
- Not started:Mini-Project 4: A Pivoting Roller Intake
- Not started:Mini-Project 5: Integrating a COTS Swerve Module
- Not started:Pneumatics Won't Fire: A Full Diagnostic Tree
- Not started:The Robot Won't Drive Straight (and Other Drivetrain Sins)
- Not started:Gearboxes That Grenade and Fasteners That Vibrate Loose
- Not started:Closed-Loop Mechanisms That Oscillate, Sag, or Stall
- Not started:Field-Ready Reliability: Inspection, Spares, and the Pit Checklist
- Not started:Characterizing Any Mechanism with SysId
- Not started:Simulation-Driven Design with WPILib Physics Models
- Not started:Motion Profiling and Superstructure Coordination
- Not started:Designing for Weight, Stiffness, and Manufacturability
- Not started:Case Studies: Learning From Open Alliance Robots