Skip to content

Releases: REVrobotics/REV-Software-Binaries

SPARK MAX Firmware 25.0.1

06 Jan 19:46
e5d1504
Compare
Choose a tag to compare

Note for updating

If you have any SPARK MAXes on your bus that are running firmware version 25.0.0, turn the robot power off and update those SPARK MAXes to version 25.0.1 individually. Once all devices on the bus are running either version 25.0.1 or version 24.0.1 or earlier, you can turn the robot back on and update the remaining devices in bulk.

Fixes

  • Fixes a bug causing high CAN utilization when devices with 24.0.x firmware are present and Hardware Client is opened

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

14 Jan 22:19
e5d1504
Compare
Choose a tag to compare
  • Fixes bug causing some servo hub boards to read channel current more slowly
  • Fixes case where Servo Hub doesn't report being in the primary lock state

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