the video version
The same lesson as a narrated video. Watch it on YouTube
The fastest confidence booster in FRC is watching your first motor spin. We will do it entirely from a laptop, no robot code required, using the REV SPARK MAX (REV-11-2158) and a NEO Brushless Motor V1.1 (REV-21-1650).
Bill of materials
- 1x SPARK MAX motor controller
- 1x NEO Brushless Motor
- 1x 12V battery + main breaker + Power Distribution Hub/Panel
- 1x USB-C cable, and the REV Hardware Client (Windows) installed
Step 1 — Wire power. Connect the SPARK MAX red (+) and black (-) input leads to a free pair of terminals on the PDH/PDP behind a 40A breaker. Plug the three-phase motor leads from the NEO into the SPARK MAX, matching the labeled connector. Plug the NEO's encoder cable — a separate 6-pin connector near the phase leads, not one of the red/black/white power wires — into the SPARK MAX's encoder port — this is what makes brushless mode work.
Step 2 — Connect over USB. Connect the SPARK MAX to your laptop with USB-C and open the REV Hardware Client. It auto-scans and shows the connected device. Out of the box every SPARK MAX ships as CAN ID 0, which is a guaranteed conflict on a real robot.
Step 3 — Assign a CAN ID. In the device's Basic tab, change the CAN ID from 0 to a unique value (REV's configuration docs recommend any unused ID from 1 to 62; use 1 for your first test). REV explicitly recommends never leaving a device at 0. Confirm the controller is in Brushless mode since we are driving a NEO. While you are here, set a Smart Current Limit (REV suggests roughly 40-60A for a NEO). Click the Persist Parameters button so the settings survive a power cycle.
Step 4 — Spin it. Power on the battery. In the Hardware Client Run tab, gradually increase the setpoint slider to a small duty cycle, e.g. 10%. The motor should spin smoothly. If it stutters or throws a sensor fault, the encoder cable is unseated — that is the single most common rookie failure here.
Step 5 — Update firmware. While you are here, use Update Firmware so the controller runs a version compatible with the current REVLib/WPILib season. Mismatched firmware is a leading cause of 'device not found' errors later.
What you just learned: every actuator on an FRC robot follows this exact pattern — power, signal, unique CAN ID, persist parameters, test in isolation. Do this for every motor before it ever touches robot code, and you will eliminate most first-deploy debugging.
the part worth keeping
Key takeaways
- Always change a SPARK MAX CAN ID off the default 0 to a unique value (REV recommends 1-62) and Persist Parameters before mounting it
- The NEO encoder cable must be seated for brushless mode to work — a loose cable is the #1 spin-test failure
- Test every motor in isolation with the REV Hardware Client before writing any robot code
Getting Started with FRCWorked Examples & Mini-Projectslesson 1 of 5
Keep going
Take the quiz+10 XP with an accountMore in Worked Examples & Mini-Projects
where this came from
Sources and 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, in public, in the corrections log.
sources and further reading
- docs.revrobotics.comSPARK MAX Getting Started (REV)
- docs.revrobotics.comMake it Spin! (REV)
- revrobotics.comSPARK MAX product page (REV-11-2158)
clipped to this lesson
Articles that go further on this
The lesson gets you through the topic. These go wider on it, and they read in one sitting.
answer sheet
Lesson quiz
All 3 right completes the lesson. Miss one and only that question comes back, anything you already answered correctly stays banked.
0 of 3 answered
01When testing a NEO with the REV Hardware Client over a USB-C cable, what is still required to actually make the motor spin?
02Before spinning a NEO, what motor type must be configured for the SPARK MAX in the REV Hardware Client?
03In the REV Hardware Client's Run tab, how do you command the connected NEO to spin?
Answer every question to submit.
All 28 lessons in Getting Started with FRCopenclose
01 / what-first-and-frc-are
02 / the-season-and-the-game
03 / culture-teams-and-roles
04 / getting-started-your-first-steps
05 / worked-examples-mini-projects
- Not read yet:Project 1 — Make a NEO Spin with the REV Hardware Client
- Not read yet:Project 2 — Deploy a Real Arcade-Drive Program
- Not read yet:Project 3 — Refactor into a Command-Based Drive Subsystem
- Not read yet:Project 4 — Build a Fuel Launcher for REBUILT
- Not read yet:Project 5 — A One-Button Autonomous Routine
06 / common-mistakes-troubleshooting
- Not read yet:The Connection Chain: When the Driver Station Won't Connect
- Not read yet:Brownouts: Why the Robot Goes Limp Mid-Match
- Not read yet:CAN Bus Gremlins: Missing and Conflicting Devices
- Not read yet:Software Gotchas: Inverted Drives, Scheduler Stalls, and Reading the RioLog
- Not read yet:Inspection-Day Failures: Bumpers, Size, and Weight
07 / advanced-techniques-case-studies
- Not read yet:Closed-Loop Control: PID + Feedforward for a Consistent Shot
- Not read yet:Swerve Drive: Omnidirectional Movement with YAGSL
- Not read yet:AprilTag Vision: Knowing Where You Are with PhotonVision
- Not read yet:Data-Driven Strategy: Scouting, EPA/OPR, and Alliance Selection
- Not read yet:Choosing Your Hardware Ecosystem: REV vs CTRE