Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Now that the device is wired and the connections carefully checked, power on the robot. You should see the SPARK Flex slowly blinking its light 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.
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.
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.
There are two ways to protect your robot’s motors from electrical damage in high-current situations: Circuit Breakers and the SPARK Flex’s Smart Current Limit Setting. To protect your motors from currents that are too high, it is best practice to limit your current both with the SPARK Flex’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 Flex 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 Flex's Smart Current Limit default setting is 80A for any motor that you use. We recommend utilizing our or the table below to decide what to set your Smart Current Limit to for your robot.
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.
The settings must be saved for the SPARK Flex to remember its new configuration through a power cycle. To do this, press the Persist Parameters button at the bottom right 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.
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 for 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 for the motor.
If you are unable to spin the motor, visit our .
NEO
40A - 60A
NEO 550
20A - 40A






Verify you have completely assembled your MAXSwerve or EasySwerve Module and have the Steering Motor’s SPARK Flex or SPARK MAX connected to the Module's Through Bore Encoder
Connect the Steering Motor’s SPARK Motor Controller directly to your computer via the included USB-C to USB-A cable
Select the Steering SPARK from the list of Connected Devices and navigate to the Update Tab to verify your Firmware is up to date.
Ensure the Steering SPARK is still selected, and then navigate to Absolute Encoder under the Utilities Tab.
Then, follow the steps below for the Swerve Module that you are calibrating to ensure that the zero position is set correctly.
Insert a 1/8in or 3mm Hex Key into the calibration on the top of the EasySwerve Module. You will feel the Hex Key reach the azimuth gear inside of the top cover.
Rotate the module's wheel manually while applying light pressure to the hex key until it slots into the alignment pocket. The Hex key will travel about 1/4in further into the swerve module when it has aligned.
Click the Zero Encoder button to calibrate the zero position of the absolute encoder to this position.
Put the Calibration Tool on the MAXSwerve module.
The Calibration Tool needs to be placed on the MAXSwerve module with the lip facing the module.
The MAXSwerve Wheel will only fit in one orientation because of the placement of the wheel's bevel gear. The Calibration Tool is not symmetrical, so you will need to align the bevel gear with the side of the cutout indicated with the orange dot in this image.
Rotate the wheel along with the Calibration Tool until the tool's lip firmly drops into place around the MAXSwerve module's edges. Once this happens, the wheel and Calibration Tool will be unable to rotate freely until the tool's lip has been lifted above the edges of the module.
Click the Set Zero Offset button to calibrate the zero position of the absolute encoder to this position.






If you don't see all of the devices that you expect to see, follow these steps:
Make sure that you are connected to the Internet, so that Windows can download the necessary drivers
Disconnect the device from the computer and then reconnect it
If you plan on using RHC2 on a macOS machine, please note that recovery mode devices will only show up on mac if the app is copied into /Applications.
Make sure that the SPARK MAX is not being used by another application, such as the REV SPARK MAX Client
Unplug the SPARK MAX from the computer and plug it back in
To use your device with RHC2, you must have 2026 firmware (v26.x.x). Devices with 2025 firmware or lower must be updated to 2026 via . SPARKs can be updated via CAN with RHC2 if the bridge device (the device connected to USB) is updated to firmware 2026.
The Hardware Tab is where supported hardware devices are managed in the REV Hardware Client. When opening the REV Hardware Client, the Hardware Tab is displayed.
Scan for Devices - When supported REV hardware is connected to a Windows or Mac PC the Client will auto scan for new devices.
Report an Issue - If you're experiencing technical difficulties with the REV Hardware Client or a related REV device, click this button to send a diagnostic report directly to support staff.
Dark Mode - Click to switch the REV Hardware Client to a native dark mode.
Navigation - Four tabs are at the top of the REV Hardware Client, allowing you to navigate the different features.
Connecting supported hardware to a Windows PC with the REV Hardware Client running will automatically scan and add the devices to the Hardware Tab.
Supported Hardware - Each type of supported hardware will appear. Clicking on the Hardware will bring up each unit's Device Menu.
Selecting a Device will bring up that device's menu. Below is a screenshot of the Power Distribution Hub's Summary Menu.
Device Menu Tabs - Swap between the Summary and Update pages here.
Firmware - Displays the current software version installed on the device.
General Stats - Useful electrical information corresponding to the selected device.
Faults and Warnings - If your selected device has any faults or warnings, they can be seen here and can be cleared.
Device Menu Tabs - Swap between the Summary and Update pages here.
Firmware Version - Clicking the dropdown tool allows you to select the previous or current software versions.
Release Notes - Describes what improvements, changes or bug fixes the selected firmware version contains.
Download and Install - Under each update type are buttons to download and install that update.
Signals - Where you can select different signals for REV devices.
Start & Restart Graph - Start initiates recording of telemetry.
Signal Key and Scale Adjustment - Signals you choose to monitor will be shown here.
Run Single or Multiple Motors - Click the single or double play button to run one or multiple motors for testing.
The Downloads Tab is where downloaded software files are managed. The latest software updates are able to be downloaded without a hardware device connected to the REV Hardware Client.
Software Channels - If you acquire a channel code to test beta software, simply input the code and press the plus to have it available.
Downloaded Update Files - This section allows for each version of software already downloaded to be viewed, release notes checked, and deleting the files from the local machine.
Available Update Files - This section displays the latest version of software to download, release notes for that software, and a button to initiate the download.
The About Tab is where the REV Hardware Client is managed. Here, updates for the REV Hardware Client are checked, downloaded, and installed.
Check for Updates - This section displays the current version of the REV Hardware Client and allows for checking for software updates to the REV Hardware Client.
Changelog - Lists all significant changes, enhancements, bug fixes, and new features made to REV Hardware Client 2 so far.
Supported Devices - This section lists all of the currently supported devices for the version of the REV Hardware Client installed on the user's device.
Device Specific Information - Showcases the primary








Adds a download location prompt for download actions from Control Hub's Robot Controller Console
Improves recovery of wireless Control Hub connections after a Wi-Fi drop
Adds a prompt on startup when an update is available, with the option to update now, on exit, or ignore it
Adds a prompt on startup showing the changelog after the app has been updated
Adds visualizer for absolute encoder utility
Adds inversion configuration to A301
Adds support for opening the update manager directly from a device's update tab to enable updating multiple devices of the same type
Uses Control Hub's friendly name in device list
Improves general experience with the FTC Log Viewer
Updates the supported devices list on the About page to reflect all currently supported devices
Fixes UI crash on Systemcore
Fixes Robot Controller Console not working as expected for Control Hubs connected over USB
Fixes Expansion Hub firmware version not showing up for Control Hub devices
Fixes Control Hub menu labels being illegible in light mode
Fixes false positive error toast when attempting to run an A301
Adds controller support for running motors
Adds auto-fetching latest releases on startup
Adds toast to show when an action failed due to being in read-only mode
Adds setpoint presets to A301/SPARK run pages
Fixes crash on run tab with A301 on versions before prerelease 16
Adds support for connecting to a remote RHC2 instance (like Systemcore) from a desktop client
Adds support for installing/updating a Systemcore's RHC2 from the desktop client
Adds ability for leader to release control and read only-clients to claim control
Adds a prompt for Windows users to install DFU drivers if none are found
Adds support for new A301 CAN specification introduced in firmware version 27.0.0-prerelease.15
Adds the ability to specify a speed for position control in A301's run utility
Adds a toggle on the Motioncore card to override the robot program to run motors without a driver station
Adds gearbox and motor health status cards for A301
Adds support for REV FTC devices (Control Hub, Expansion Hub, Driver Hub, Driver Station Phone)
Adds support for CAN Encoder Adapter
Adds search bar for signals on Telemetry page
Adds search bar for SPARK configuration tab
When connecting to a Control Hub via Wi-Fi, no other computer will be able to see the Control Hub until it is power-cycled. The same laptop can continue to see and use the Control Hub even if it reconnects or RHC2 is reopened.
Adds missing applied output signal for A301
Adds indicator to navigation bar to show whether you are in read-only mode
Improves startup time
Improves CPU and memory utilization during runtime
Adds support for A301
Adds support for Linux Arm64
Adds support for multiple separate CAN buses
Adds support for updating the bootloader of supported devices
Linux Arm64 does not currently support devices in DFU recovery mode
Adds support for configuring new MAXSpline Encoder parameters
Fixes start/stop button moving when running a SPARK
Fixes motors not stopping immediately when running multiple motors simultaneously
Fixes a bug causing devices to appear as remaining in bootloader mode after updating
Adds button to install DFU drivers on Windows
Adds warning when trying to run a motor without 12V
Adds ability to reset SPARK slider to zero by double-clicking on slider handle
Fixes splash screen not appearing in the foreground
Adds warning about SPARK devices with an unconfigured CAN ID
Adds button to clear telemetry signals
Adds dialog to move the application into the Applications folder on macOS for improved experience:
Fixes devices in recovery mode not appearing on macOS
Adds warning when trying to run a motor with the roboRIO present on the bus
Adds error toast for when a SPARK parameter value is rejected
Adds help dialog when loading devices takes a long time, especially for brand new SPARK MAXes on unsupported factory firmware
Adds privacy policy
Adds ability to start and stop multiple selected motors simultaneously
Fixes high CAN utilization when switching between many SPARK device tabs
Fixes an issue causing some SPARKs to continue spinning when disabling multiple at once
Fixes an issue causing SPARK devices to resume spinning after leaving the bus and returning
Fixes crash when opening on macOS
Fixes detection of devices on Linux
Fixes app icon
Initial stable release of REV Hardware Client 2
Adds FTC Log Viewer
Fixes crash when adding closed-loop control telemetry for a SPARK
Fixes reset safe parameters showing the incorrect number of changes made
Fixes run multiple checkbox not working with A301
Fixes moving app to applications folder on macOS
Fixes selecting an A301 opening a SPARK with the same CAN ID on the same bus
Adds support for A301's absolute range offset parameter
Adds tooltip and animation for identify button
Improves robustness of leader/reader mechanism when clients disconnect
Updates robot program override to only be controlled by the leader
Fixes Systemcore serving a stale, cached UI after an update. You will need to empty cache and refresh the UI for this to take effect.
Fixes frontend crash when downloads database file gets corrupted, particularly on Systemcore
Fixes sorting of Motioncore buses in telemetry tab
Fixes devices not showing up on the Hardware page in Safari
Adds relative encoder utility to MAXSpline Encoder
Fixes sidebar on telemetry expanding when a device has an alert in either run tab
Fixes issue reporting
Fixes issue where signals would freeze after closing a device
Fixes issue with A301 CAN ID change not persisting
Fixes issue where firmware versions sometimes do not populate in the update page
Improves leader/reader behavior
Improves download page
Improves update progress status display
Fixes update progress status when updating multiple devices across separate buses
Adds support for devices connected via Motioncore when running on Systemcore
Adds relative encoder utility for resetting relative position
Improves SPARK setpoint handling to minimize interfering with a connected robot's setpoint commands
Fixes issue where SPARKs with pre-2025 firmware are not detected on the CAN bus
Fixes taskbar icon not appearing immediately on Windows
Fixes SPARK slider setpoint resetting to zero after interacting with the minimum and maximum setpoint input boxes
Fixes detecting MAXSpline Encoders in bootloader mode
Fixes device drawer not defaulting to update page for devices in bootloader mode
Fixes firmware version select taking a long time to load for devices in bootloader mode
Fixes application not updating after clicking the Update button on macOS
Adds AdvantageScope logo
Fixes AdvantageScope sometimes not loading layout correctly on startup or when loaded from a file
Fixes AdvantageScope not resuming when computer wakes from sleep
Fixes regression preventing telemetry to resume when reconnecting a device
Improves CAN utilization when running multiple devices on telemetry page
Prevents multiple instances of the app from running at once
Fixes bug causing SPARKs in brushed mode to get set to brushless upon connection
Fixes issue with parameters not refreshing when switching devices on telemetry run tab
Fixes spike in CAN utilization when opening a SPARK device by switching to lazy loading parameters
Fixes issue with SPARK run slider sometimes continuing to drag with mouse after releasing
Fixes device list sometimes not updating when unplugging USB
Disables highlighting across general areas of the application
Updates troubleshooting steps on about page

Sometimes, when updating the firmware on an ION Control System Device, it is possible for the process to be interrupted or for the firmware to be corrupted by a bad download or other type of interruption in data transfer. In this state, the Status LED will be dark or dim and the device will fail to operate. There is a built-in recovery mode that can force your device to accept new firmware even if the controller seems to be bricked and the procedure is outlined below:
A small tool, like a straightened paper clip or a SIM card removal tool, to press the Mode Button
Data-capable USB-C to USB-A cable
Computer with the installed and updated to the latest version
With the Device powered off, press and hold the Mode Button
While still holding the Mode Button, connect the Device to the computer using the USB-C cable - the Status LED will not illuminate - this is expected.
With the REV Hardware Client 2 running on the computer, wait a few seconds for the audible tone or icon for the device to be recognized, then release the Mode Button - no lights will be present on the device during this stage of the process. This is expected
Select the DFU Device Bootloader from the list of Connected Devices within the REV Hardware Client 2 window
From the Device Type dropdown menu, choose the device name that matches the type of device you are attempting to recover. **Note: It is possible to install incorrect firmware on your device.
After the proper Device Type has been selected, the Current Firmware Version Dropdown menu will automatically select the most up-to-date firmware. If you wish to install a different version of firmware, please select it from this menu now. To use the REV Hardware Client 2, this firmware will still need to be version 26.x.x or newer.
Wait for the software update to complete
Power cycle your device (unplug and plug in USB-C) click on the device's icon, and then clear any sticky faults that may show


The REV Hardware Client 2 (RHC2) is software designed to make managing REV devices easier for the user. This Client automatically detects connected device(s), downloads the latest software for those device(s), and allows for seamless updating of the device(s)
Download the REV Hardware Client 2 Installer
Run the Installer
Run the REV Hardware Client 2 from the applications menu or a desktop shortcut
Automatically detect supported devices when connected via USB
One-click update of all software on connected devices
Pre-download software updates without a connected device
Back up and restore user data from supported devices
Operating System Options:
Windows 11, Windows 10 (version 1709 - October 2017) or newer
macOS 15 (Sequoia) or newer
Linux: Ubuntu 24.04/Debian 12 or newer
REV Control Hub (REV-31-1595)
REV Driver Hub (REV-31-1596)
REV Expansion Hub (REV-31-1153)
Android Phones
REV Devices must be running Firmware Versions 26.x.x or newer to be compatible with REV Hardware Client 2. Devices with 2025 firmware and below will need to be updated to 2026 firmware via before use.
Auto-update to the latest version of the REV Hardware Client 2
Processor: 64-bit
RAM: 4GB
REV SPARK Flex (REV-11-2159)
REV Power Distribution Hub (REV-11-1850)
REV Pneumatic Hub (REV-11-1852)
REV Servo Hub (REV-11-1855)
REV MAXSpline Encoder (REV-11-9008)
A301 (REV-41-2714)
Generic CAN Devices
