Skip to content

Releases: REVrobotics/REV-Software-Binaries

Rev Hardware Client 1.7.1

25 Jan 01:20
e5d1504
Compare
Choose a tag to compare
rhc-1.7.1

Note that this repo includes SPARK firmware releases

REV Hardware Client 1.7.0-frcBeta2025.1

18 Dec 01:31
e5d1504
Compare
Choose a tag to compare

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

04 Jan 02:39
e5d1504
Compare
Choose a tag to compare

Breaking changes

  • The standard REV Hardware Client installer no longer bundles device software files that are under 5MB
  • 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 the kMotorType parameter is changed
    • This only impacts SPARK firmware versions prior to 25.0.0, as the kSensorType parameter has been removed from later versions
  • 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

21 Jan 19:27
e5d1504
Compare
Choose a tag to compare

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

13 Jan 21:35
e5d1504
Compare
Choose a tag to compare

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

04 Jan 02:40
e5d1504
Compare
Choose a tag to compare

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
  • [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
  • [SPARK] Adds support for MAXMotion
    • Adds control types MAXMotionPositionControl and MAXMotionVelocityControl
    • 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.
  • [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
  • [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 and CANSparkMax to SparkFlex and SparkMax respectively
  • [SPARK] Renames SparkPIDController to SparkClosedLoopController
  • [SPARK] Removes configuration parameter setter/getter methods. Use SparkBase.configure() and SparkBase.configAccessor instead.
  • [SPARK] Removes burnFlash() and restoreFactoryDefaults(). Use the ResetMode and PersistMode options in SparkBase.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 and kSmartVelocity control types in favor of kMAXMotionPositionControl and kMAXMotionVelocityControl respectively.
  • [SPARK] Deprecates SparkBase.setInverted() and SparkBase.getInverted() in favor of using the new configuration system
  • [SPARK] Updates ClosedLoopController.setReference() to use the ClosedLoopSlot 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 or Warnings object
    • The raw bits of faults and warnings are available as a field in the respective struct
  • [SPARK] Adds hasActiveFault(), hasStickyFault(), hasActiveWarning(), and hasStickyWarning() to check if there is a fault/warning present at all on the SPARK device
  • [SPARK] Adds pauseFollowerMode() and resumeFollowerMode()
  • [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

04 Jan 01:22
e5d1504
Compare
Choose a tag to compare
  • 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

19 Dec 00:12
e5d1504
Compare
Choose a tag to compare
Pre-release

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

25 Nov 23:52
e5d1504
Compare
Choose a tag to compare
Pre-release

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

09 Nov 00:17
e5d1504
Compare
Choose a tag to compare
Pre-release

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