Releases: REVrobotics/REV-Software-Binaries
Releases · REVrobotics/REV-Software-Binaries
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
SPARK Flex Firmware 24.0.6
- Fixes issue where an invalid sensor type for a given motor type can cause a sensor fault
SPARK Flex Firmware 24.0.5
- Improves handling of errors on the CAN bus
- Fixes incorrect EEPROM faults appearing
- Reduces boot time
- Properly handles the case where a CAN device sends a payload longer than 8 bytes
- Improves internal watchdog