Releases: REVrobotics/REV-Software-Binaries
REVLib 2025.0.0-beta-3
Improvements for Java and C++
- Adds fields to
Faults
andWarnings
structs for the raw bits representation of faults and warnings - Adds configuration option for setting whether the absolute encoder is zero-centered
- Corrects simulation Conversion Factor default values to 1.0
- Fixes issue where sensor
.iterate
methods would not set the position correctly
- Fixes issue where sensor
- Fixes documentation for
SparkMax.configure()
- 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
REVLib 2025.0.0-beta-2
This is only for Java and C++. An update for LabVIEW will come at a later time.
This release requires WPILib 2025.1.1-beta-1 and SPARK MAX/Flex firmware v25.0.0 which can be downloaded and installed via the REV Hardware Client v1.6.7 Beta.
You can install the Java/C++ version of this library using this JSON URL in VSCode:
https://software-metadata.revrobotics.com/REVLib-2025.json
An offline install for Java/C++ can be found here.
API documentation:
Fixes for Java and C++
- Fixes issue where setting certain parameters (follower mode, MAXMotion, and status signals) in simulation erroneously throws an exception
- Fixes issue where retrieving auxiliary objects from a SPARK MAX (alternate encoder, absolute encoder, and limit switches) before setting the data port config with
configure()
can erroneously throw an exception
REVLib v2025.0.0 Beta 1 Release
This is the first beta release of REVLib for the 2025 FRC season. This initial release only includes changes for Java and C++. An update for LabVIEW will come at a later time.
This release requires WPILib 2025.1.1-beta-1 and SPARK MAX/Flex firmware v25.0.0 which can be downloaded and installed via the REV Hardware Client v1.6.7 Beta.
An offline installer for Java/C++ can be found here.
API documentation:
Major Changes
- Moves to a more declarative approach for configuring SPARK devices
- Adds
SparkFlexConfig
andSparkMaxConfig
which includes settings for different aspects of the SPARK - Adds
SparkBase.configure()
method to apply a SPARK config object's settings to one or more SPARK devices
- Adds
- 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
- 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
- Improves experience with managing status signals from SPARK devices
- Adds
SignalsConfig
- Automatically enables relevant status frames if a signal is requested by the user
- Adds
- Adds a
configAccessor
field to SPARK classes for reading configuration parameters directly from the device
Breaking Changes
- Renames
CANSparkFlex
andCANSparkMax
toSparkFlex
andSparkMax
respectively - Renames
SparkPIDController
toSparkClosedLoopController
- Removes configuration parameter setter/getter methods. Use
SparkBase.configure()
andSparkBase.configAccessor
instead. - Removes
burnFlash()
andrestoreFactoryDefaults()
. Use theResetMode
andPersistMode
options inSparkBase.configure()
instead. - Removes
REVPhysicsSim
in favor of new simulation system - Moves all SPARK related classes into a
spark
package in Java and namespace in C++
Other Changes
- Deprecates
kSmartMotion
andSmartVelocity
control types in favor ofMAXMotionPositionControl
andMAXMotionVelocityControl
respectively. - Adds
pauseFollowerMode()
andresumeFollowerMode()
- Allows follower mode to work even if the follower is not referenced in user code
- Improves getting faults/warnings by returning a
Faults
orWarnings
object - Adds
hasActiveFault()
,hasStickyFault()
,hasActiveWarning()
, andhasStickyWarning()
to check if there is a fault/warning present at all on the SPARK device - Adds support for specifying an absolute encoder's duty cycle start and end pulse widths in
AbsoluteEncoderConfig
SPARK MAX Firmware 24.0.1
- Improves filtering of invalid PWM signals
- Previously, noise on the signal wires could be occasionally be erroneously interpreted as a PWM signal, causing the motor to spin unexpectedly
SPARK MAX Firmware 24.0.0
Breaking Changes
- Moves the IAccum value to periodic status frame 7
- Periodic status frame 7 is new to this release, and by default is sent every 250ms.
Enhancements
- Allows changing the CAN ID of a SPARK MAX connected directly via USB without affecting other SPARK devices on the CAN bus with the same CAN ID
- Makes changes towards improving the reliability of saving and persisting parameters
Bug fixes
- Fixes alternate encoder position accuracy
- Fixes the main quadrature encoder position jumping in brushed mode
SPARK MAX Firmware 1.6.3
Version 1.6.3
- Fixes issue where changing the inversion mode of the duty cycle absolute encoder with a zero offset specified would cause the physical zero position to change
SPARK MAX Firmware 1.6.2
Version 1.6.2
- Fixes critical issue where new parameters introduced in 1.6.0 were not being burned to flash correctly
- Fixes issue where new parameters were not being read back correctly despite being set correctly
SPARK MAX Firmware 1.6.1
Version 1.6.1
- Fixes duty cycle offset to match the inverted setting
- Fixes parameters being NaN after updating to 1.6.0
- Fixes burn flash command response
Version 1.6.0
- Adds new parameters for configuring hall sensor velocity measurement
- Adds support for duty cycle absolute encoders
- Adds new parameters to enable and configure position PID rollover
SPARK Flex Firmware 24.0.8
- Fixes bug in velocity calculation when changing the encoder average depth
- Fixes issue causing motor EEPROM to occasionally reload fully after disabling the motor, causing brief dropout of status frames
SPARK Flex Firmware 24.0.7
- Adds parameters for status frame periods
- Performs contextual validation on the sensor type parameter
- Always keeps the hall sensor active when in brushless mode, in addition to the specified sensor type
- Recalculates the hall angle more frequently to prevent lockup