Project 1 — Make a NEO Spin with the REV Hardware Client
Wire one SPARK MAX to a NEO, assign a CAN ID, and spin the motor from your laptop before writing a single line of robot code.
Sign in to track progress, earn XP, and save lessons.
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 white sensor cable 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.
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
Lesson quiz
RequiredAnswer all 3 questions correctly to complete this lesson.
1.When testing a NEO with the REV Hardware Client over a USB-C cable, what is still required to actually make the motor spin?
2.Before spinning a NEO, what motor type must be configured for the SPARK MAX in the REV Hardware Client?
3.In the REV Hardware Client's Run tab, how do you command the connected NEO to spin?
Answer every question to submit.