Skip to content

Releases: REVrobotics/REV-Software-Binaries

SPARK MAX Firmware 25.0.0

04 Jan 01:23
e5d1504
Compare
Choose a tag to compare

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

04 Jan 01:23
e5d1504
Compare
Choose a tag to compare

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

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

03 Dec 18:18
e5d1504
Compare
Choose a tag to compare

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

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.6.7

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.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)