REVLib v2025.0.0 Beta 1 Release
Pre-release
Pre-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