Now that the device is wired, and the connections carefully checked, power on the robot. You should see the SPARK MAX slowly blinking its for a new device the color will be Magenta. If the LED is dark, or you see a different blink pattern, refer to the Status LED guide for troubleshooting.
If you are using a brushed motor, you may see a sensor error. This is expected until you configure the device to accept a brushed motor in the following steps.
Plug in the USB cable and start the REV Hardware Client. Select the SPARK MAX from the Connected Hardware
If you can not see the SPARK MAX, make sure that the SPARK MAX is not being used by another application . Then unplug the SPARK MAX from the computer and plug it back in.
Before any parameters can be changed, you must first assign a unique CAN ID to the device. This can be any number between 1 and 63. After setting a unique CAN ID, the user interface will refresh and allow you to change other parameters.
Eventually you may set up a CAN network on your test bench or robot. Be sure each device on the network has a unique CAN ID. It is helpful to label each device with its ID number to aid in troubleshooting.
If you are using a NEO or NEO 550, verify that the motor type is set to REV NEO Brushless, Sensor Type is Hall Effect, and the LED is blinking Magenta or Cyan.
If you see a Sensor Fault blink code, make sure the encoder cable is plugged in completely.
If you are running brushed motor, set the motor type to Brushed, sensor type as No Sensor, and verify that the LED is blinking Yellow or Blue.
There are two ways to protect your robot’s motors from electrical damage in high-current situations: Circuit Breakers and the SPARK MAX’s Smart Current Limit Setting. To protect your motors from currents that are too high, it is a best practice to limit your current both with the SPARK MAX’s Smart Current Limit and an appropriately rated circuit breaker.
Circuit breakers, while an extremely important part of a robot's wiring and safety, are only designed to trip at a specific temperature, after a set amount of time, to protect the electrical system from fire or other electrical hazards. Due to this, we recommend setting a Smart Current Limit to protect your motors from damage due to high currents.
The SPARK MAX Motor Controller includes a Smart Current Limit feature that can adjust the applied output to the motor to maintain a constant phase current.
Out of the box, the SPARK MAX's Smart Current Limit default setting is 80A for any motor that you use. We recommend utilizing our locked-rotor testing data or the table below to decide what to set your Smart Current Limit to for your robot: Locked-Rotor Testing for the NEO (REV-21-1650) and NEO 550 (REV-21-1651).
Remember that some settings, like Smart Current Limit, must be burned to flash via code or the Hardware Client in order to be retained through a power cycle of the SPARK MAX.
Your ideal current limit may vary based on your specific application, but these values can be used as a starting point to reduce the chance of an overload on your motor as you begin tuning your specific mechanism's Smart Current Limit.
40A - 60A
20A - 40A
Warning: Setting current limits outside of the suggested ranges listed above may cause unintended overload and severe damage to components that are not covered by warranty.
The settings must be saved for the SPARK MAX to remember its new configuration through a power cycle. To do this, press the Burn Flash button at the bottom of the page. It will take a few seconds to save, indicated by the loading symbol on the button.
Any settings saved this way will be remembered when the device is powered back on. You can always restore the factory defaults if you need to reset the device.
Before running any motor, make sure all components are in a safe state, that the motor is secured, and that anyone nearby is aware. FRC motors are very powerful and can quickly cause damage to people and property.
Keep the CAN cable disconnected throughout the test. For safety reasons, the REV Hardware Client will not run the motor if the roboRIO is connected. If the roboRIO was connected, power cycle the SPARK MAX.
To spin the motor, go to the Run tab, keep all of the default settings and press Run Motor. The setpoint is 0 by default, meaning that the motor is being commanded to idle (0% power). When you press Run you should see the LED go from slow blinking to solid, indicating that the motor is idling.
Slowly ramp the setpoint slider up. The motor should start to spin and you should see a green blink pattern proportional to the speed you have set to the motor. Slowly ramp the slider down. The motor should spin in reverse, and you should see a red blink pattern proportional to the speed you have set to the motor.
If you are unable to spin the motor, visit our troubleshooting guide.
NEO ()
NEO 550 ()
The SPARK MAX is a motor controller that can control both Brushed DC and Brushless DC motors. Out of the box, the MAX defaults to its Brushless Mode and is ready to drive a NEO Brushless Motor with its PWM interface. Included in this section are the basic steps to get a motor spinning using the REV Hardware Client as well as information on how to configure your SPARK MAX.
We recommend following this guide in its entirety at least once to understand the key features of the SPARK MAX. This guide can also serve as a fallback in case of any issues faced.
Before following this guide, the REV Hardware Client should be installed before continuing. The client is the best way to verify that the device is configured correctly, and is required before using the CAN interface.
SPARK MAX has many operating modes that can be configured through its CAN and USB interfaces. Additionally, the following basic operating modes can be configured with the MODE button located on the top of the SPARK MAX:
Idle Behavior: Brake/Coast
Motor Type: Brushed/Brushless
Mode configuration must be done with power applied to the SPARK MAX.
Configuring the idle behavior and motor type using the mode button is a quick way to set up a SPARK MAX without using a computer. This is most useful when you are controlling the SPARK MAX through its PWM interface or when testing the affect of Braking or Coasting on a mechanism.
Whenever the SPARK MAX receives a neutral signal (no motor movement) or no signal at all (robot disabled), it can either brake the motor or let it coast. When in Brake Mode, MAX will short the motor wires to each other, electrically braking the motor. This slows the motor down very quickly if it was spinning and makes it harder, but not impossible to back-drive the motor when it is stopped.
With power turned on, press and release the MODE button to switch between Brake and Coast Mode.
The Status LED will indicate which idle behavior mode it is in. See the Status LED Colors and Patterns section for more information.
It is very important to have the SPARK MAX configured for the appropriate motor type.
Operating in Brushed Mode with a brushless motor connected will permanently damage the motor!
With power turned on, press and hold the MODE button for approximately 3 - 4 seconds.
The Status LED will change and indicate which motor type is selected. See the Status LED Colors and Patterns section for more information.
Release the MODE button.
12V Battery
120A Circuit Breaker
Power Distribution Panel
SPARK MAX
Brushed or Brushless Motor
USB Type-C Cable
Using a test bed is an easy way to get started with using the SPARK MAX and verify connections and code. For the initial bring up of the SPARK MAX a test bed with a single SPARK MAX, a brushless or brushed motor, and a properly wired Power Distribution Panel with breaker is recommended.
The power and motor wires are permanently connected to the SPARK MAX and are not replaceable. So take care not to cut these wires too short. It is highly recommended to install connectors on these wires to simplify both the power and motor connections. A common connector used for this purpose is the Anderson Power Pole connector. Follow our Anderson Power Pole guide for tips on how to properly crimp these connectors.
Make sure the power is disconnected or turned off before making any electrical connections on your test bed or robot.
Connect the integrated SPARK MAX power leads labeled V+ (red) and V- (black) to an available channel on the Power Distribution Panel. If you need to extend the length of the integrated wires, it is recommended to use 12AWG wire or larger (lower gauge number).
The first step is determining the type of motor you wish to connect. The SPARK MAX supports two types of motors: brushed DC and brushless DC. An easy way to determine the motor type is to look at the number of primary (larger) motor wires. Brushed motors only have 2 primary motor wires, while brushless motors have 3 primary wires and additional smaller sensor wires.
Connect the three motor wires; red, black, and white, to the matching SPARK MAX output wires labeled A (red), B (black), and C (white).
Next connect the NEO or NEO 550's encoder cable to the port labeled ENCODER just above the output wires.
The encoder sensor cable is required for the operation of brushless motors with SPARK MAX. The motor will not spin without it.
Connect the two motor wires, M+ (red) and M- (black), to the SPARK MAX output wires labeled A (red) and B (black).
The third output wire, labeled C (white), is not used when driving a brushed motor and should be secured and insulated. We recommend tying it back with a zip-tie and covering the end with a piece of electrical tape. Do not cut this wire in case you wish to use a brushless motor in the future. In the example below the extra unused motor wire is insulated by the white connector and secured in the block.
Carefully check all connections before continuing and verify that all colors match. The SPARK MAX can be permanently damaged if the power connection is reversed.
Leave the CAN cable disconnected for now, we will wiring this up later.