Project 1 — Make a NEO Spin with the REV Hardware Client
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.
Key takeaways
Section titled “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
This lesson was adapted from learnfrc.com.
