Releases: REVrobotics/REV-Software-Binaries
Releases · REVrobotics/REV-Software-Binaries
Rev Hardware Client 1.7.1
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.7.0
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.2
Changelog:
- [SPARK] Improves SPARK error messages by adding the invalid value which caused the error
- [SPARK] Improves SPARK error messages by displaying the parameter name as well as its ID
- [Servo Hub] Fixes uninitialized variables
- [REVLib] Fixes issue where REVLib doesn't clear a previous error (as viewed through
GetLastError
) - [REVLib] Fixes threading issues encountered while running Googletest unit tests
REVLib 2025.0.1
An offline installer is available here.
This release does not include LabVIEW. REVLib v2025.0.0 for LabVIEW is available to download here.
C++ docs: https://codedocs.revrobotics.com/cpp/
Java docs: https://codedocs.revrobotics.com/java/
Changes for Java and C++
- [SPARK] Fixes issue where enabling a limit switch in Java simulation would cause it to always return that it was pressed
- [SPARK] Fixes issue causing REVLib to have higher than normal CPU usage when retrieving SPARK status frames
- [SPARK] Fixes issue where a status frame timeout would cause a segmentation fault
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)
SPARK MAX Firmware 25.0.0-prerelease.6
Fixes
- (Prerelease Regression) Fixes case where changing the CAN ID of a SPARK MAX connected directly via USB would affect other SPARK devices on the CAN bus with the same CAN ID
- (Prerelease Regression) Fixes case where Hardware Client could compete with a roboRIO for control of a SPARK MAX
- (Prerelease Regression) Fixes issue causing Hardware Client to show an error when setting the CAN ID