Releases: REVrobotics/REV-Software-Binaries
Releases · REVrobotics/REV-Software-Binaries
SPARK MAX Firmware 25.0.0
NOTE: We recommend performing a Factory Reset and then Persisting Parameters on every SPARK updated to firmware 25.0.0 and later for the first time.
Fixes
New Features
- Adds support for zero-centered mode for duty cycle sensor
- Adds MAXMotion
- Only sends periodic CAN frames if they are needed (except for frames 0 and 1, which are enabled by default)
- Optimizes parameter operations for lower CAN traffic
- Reworks the CAN frames for better performance and reliability
- Supports standard roboRIO Universal Heartbeat
- Reorganizes faults to differentiate between warnings (which will not stop the motor) and faults (which will stop the motor)
- Slows down status frames when other devices are updating firmware
SPARK Flex Firmware 25.0.0
NOTE: We recommend performing a Factory Reset and then Persisting Parameters on every SPARK updated to firmware 25.0.0 and later for the first time.
Fixes
- Fixes issue where burning flash would fail occasionally
- Fixes case where CAN message handling can be delayed by a few milliseconds
- Improves updating a downstream PDH, PH, or Servo Hub
New Features
- Adds MAXMotion
- Supports standard roboRIO Universal Heartbeat
- Only sends periodic CAN frames if they are needed (except for frames 0 and 1, which are enabled by default)
- Optimizes parameter operations for lower CAN traffic
- Reworks the CAN frames for better performance and reliability
- Reorganizes faults to differentiate between warnings (which will not stop the motor) and faults (which will stop the motor)
- Slows down status frames when other devices are updating firmware
- Adds support for Flex Dock
- Adds support for zero-centered mode for duty cycle sensor
Servo Hub firmware 25.0.0
- Improves robustness of overcurrent handling
- Tracking for whether any CAN message came from hardware CAN
- Recovery task to detect when the short-circuit is removed
- Turn off the Buck Regulator when PGood falls
- Set PGood Fault based on pin state
Servo Hub firmware 24.0.4
Initial Servo Hub Release
- Control servos via RS-485 or CAN
- Channels can be enabled/disabled individually
- Channels can be powered on/off individually
- Status LEDs show the current state of each channel
- Adds over-current protection per-channel
REV Hardware Client 1.7.0-frcBeta2025.1
General improvements
- Further improves the reliability of displaying devices on a high-traffic CAN bus
- Fixes a performance regression in the 2025 beta release that affected CAN communication
Servo Hub
- Adds Servo Hub support with the following functionality
- Updating firmware
- Setting the CAN ID
- Actuating servos
SPARK improvements
- Improves UI for configuring closed-loop parameters (including MAXMotion parameters) on the Run and Telemetry tabs
REV Hardware Client 1.6.7
Breaking changes
- The standard REV Hardware Client installer no longer bundles device software files that are under 5MB
- If you need an installer that has device software bundled into it, download one of the offline installers linked at https://docs.revrobotics.com/rev-hardware-client
- Once a REV Hardware Client instance starts controlling a SPARK motor controller, no other REV Hardware Client instance connected to the same bus can control a SPARK motor controller until the first instance exits
- The "Follow SPARK Using Preset" feature has been removed, in favor of simpler follower mode parameters in SPARK firmware version 25 and later
- The "Burn Flash" button for SPARK motor controllers has been renamed to "Persist Parameters" to match the 2025 version of REVLib
- The SPARK parameter
kSensorType
is no longer automatically-updated when thekMotorType
parameter is changed- This only impacts SPARK firmware versions prior to 25.0.0, as the
kSensorType
parameter has been removed from later versions
- This only impacts SPARK firmware versions prior to 25.0.0, as the
- The MAXSwerve Utility now requires SPARK firmware version 25.0.0 or later
General improvements
- Fixes issue where the installer could cause the computer to reboot unexpectedly
- Improves the reliability of displaying and using devices on a high-traffic CAN bus
- Fixes a performance regression in the 2025 beta release that affected CAN communication
- Stops the Telemetry tab from breaking after a device that was providing data is removed
- Fixes issue where Android devices that have a type other than "device" or "recovery" would cause device scans to take a long time and not include any Android devices or Expansion Hubs
- Only allows one instance of the REV Hardware Client to be open at a time
- Fixes an issue where Pneumatic Hubs and Power Distribution Hubs would be disabled when a SPARK motor controller is commanded to run
Servo Hub
- Adds support for updating, configuring, and actuating servos on Servo Hub
SPARK improvements
- Adds support for SPARK firmware version 25
- Improves UI for configuring closed-loop parameters (including MAXMotion parameters) on the Run and Telemetry tabs
- Fixes issue updating SPARKs over the CAN bus
- Improves organization of parameters on the Advanced Tab
- Improves organization of faults and warnings on the Basic Tab
- Some faults were renamed or combined
- The statuses of the soft and hard limits are now displayed above the faults and warnings
- Exposes individual faults on the Telemetry tab
- Improves organization of SPARK signals on the Telemetry tab
- Many under-the-hood improvements
REVLib 2025.0.0
You can install the C++/Java version of this library using this JSON URL in VSCode:
https://software-metadata.revrobotics.com/REVLib-2025.json
An offline installer is available here.
REVLib for LabVIEW is available to download here.
C++ docs: https://codedocs.revrobotics.com/cpp/
Java docs: https://codedocs.revrobotics.com/java/
Major Changes
- [REVLib] Requires non-prerelease versions of SPARK and Servo Hub firmware v25.0.0 or higher
- [SPARK] Java/C++: Moves to a more declarative approach for configuring devices
- Adds
SparkFlexConfig
,SparkMaxConfig
which includes settings for different aspects of each device - Adds
configure()
method to apply a config object's settings to one or more devices of the correct type - Adds
configureAsync()
to configure a device without blocking the program - Adds a
configAccessor
field to device classes for reading configuration parameters directly from the device
- Adds
- [SPARK] Java/C++: Adds better support for simulation
- Moves away from
REVPhysicsSim
to offer better support for WPILib physics simulation instead - Revamps simulation GUI data, including brand new fields for auxiliary devices
- Adds Sim classes for each auxiliary device, allowing for more thorough simulation in the WPILib injection style
- Adds
SparkSim.iterate()
method which features simulated current limits, closed-loop control, and more - Adds
SparkSimFaultManager
for throwing simulated faults
- Moves away from
- [SPARK] Adds support for MAXMotion
- Adds control types
MAXMotionPositionControl
andMAXMotionVelocityControl
- Adds
MAXMotionConfig
. Only trapezoidal profile is available at this time. - MAXMotion is not a drop-in replacement for Smart Motion, as you will need to retune PID gains.
- Adds control types
- [SPARK] Improves experience with managing status signals from SPARK devices
- Adds
SignalsConfig
to adjust signal periods and always on setting - Automatically enables relevant status frames if a signal is requested by the user
- Adds
- [Servo Hub] Java/C++: Adds initial support for Servo Hub
- Follows the same paradigms used for SPARK
- Includes basic simulation support for Servo Hub
Breaking Changes
- [SPARK] Renames
CANSparkFlex
andCANSparkMax
toSparkFlex
andSparkMax
respectively - [SPARK] Renames
SparkPIDController
toSparkClosedLoopController
- [SPARK] Removes configuration parameter setter/getter methods. Use
SparkBase.configure()
andSparkBase.configAccessor
instead. - [SPARK] Removes
burnFlash()
andrestoreFactoryDefaults()
. Use theResetMode
andPersistMode
options inSparkBase.configure()
instead. - [SPARK] Removes
REVPhysicsSim
in favor of new simulation system - [SPARK] Removes async mechanism for setting parameters by setting CAN timeout to 0 in favor of
configureAsync()
- [SPARK] Moves all SPARK related classes into a
spark
package in Java and namespace in C++ - [SPARK] LabVIEW: Reworks entire VI palette
- Improves organization of VI palette by separating VIs by configuration, device status, and utility
- Moves towards increased usage of polymorphic VIs for easier navigation of the palette
Other Changes
- [SPARK] Fixes issue where multiple setpoint commands would be sent when switching control types on a SPARK, resulting in the motor oscillating between the different setpoints
- [SPARK] Deprecates
kSmartMotion
andkSmartVelocity
control types in favor ofkMAXMotionPositionControl
andkMAXMotionVelocityControl
respectively. - [SPARK] Deprecates
SparkBase.setInverted()
andSparkBase.getInverted()
in favor of using the new configuration system - [SPARK] Updates
ClosedLoopController.setReference()
to use theClosedLoopSlot
enum instead of an int - [SPARK] Improves error description when attempting to persist parameters while the robot is enabled
- [SPARK] Improves getting faults/warnings by returning a
Faults
orWarnings
object- The raw bits of faults and warnings are available as a field in the respective struct
- [SPARK] Adds
hasActiveFault()
,hasStickyFault()
,hasActiveWarning()
, andhasStickyWarning()
to check if there is a fault/warning present at all on the SPARK device - [SPARK] Adds
pauseFollowerMode()
andresumeFollowerMode()
- [SPARK] Adds ability for follower mode to work even if the follower is not referenced in user code
- [SPARK] Adds support for specifying an absolute encoder's duty cycle start and end pulse widths in
AbsoluteEncoderConfig
- [SPARK] Adds configuration option for setting whether the absolute encoder is zero-centered
- [REVLib] Fixes potential memory leaks in string handling
- [SPARK] LabVIEW: Improves reliability of CAN transactions by adding a retry mechanism
Power Distribution Hub firmware 25.0.0
- Fixes communication with a downstream SPARK device on the latest Hardware Client
- A Power Hub with 12V power connected via USB only no longer reports a CAN Fault
- Adds LED code for Low Battery
SPARK MAX v25.0.0-prerelease.9
Fixes
- (Prerelease Regression) Fixed issue where SPARK MAX would not respond to input PWM signal
- Fixes issue where MAXMotion Velocity doesn't decelerate properly when a new setpoint value is less than the previous setpoint
- Updates MAXMotion velocity mode to ignore the MAXMotion max velocity parameter
- This parameter is used for MAXMotion position mode only
SPARK MAX v25.0.0-prerelease.7
Fixes
- Fixes range of duty cycle zero-centered mode to be [-0.5, 0.5) instead of [-1, 1)