Skip to content

REVLib v2025.0.0 Beta 1 Release

Pre-release
Pre-release
Compare
Choose a tag to compare
@REV-Bot2 REV-Bot2 released this 05 Nov 00:00
e5d1504

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 and SparkMaxConfig 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 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.
  • 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
  • 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 a configAccessor field to SPARK classes for reading configuration parameters directly from the device

Breaking Changes

  • Renames CANSparkFlex and CANSparkMax to SparkFlex and SparkMax respectively
  • Renames SparkPIDController to SparkClosedLoopController
  • Removes configuration parameter setter/getter methods. Use SparkBase.configure() and SparkBase.configAccessor instead.
  • Removes burnFlash() and restoreFactoryDefaults(). Use the ResetMode and PersistMode options in SparkBase.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 and SmartVelocity control types in favor of MAXMotionPositionControl and MAXMotionVelocityControl respectively.
  • Adds pauseFollowerMode() and resumeFollowerMode()
  • Allows follower mode to work even if the follower is not referenced in user code
  • Improves getting faults/warnings by returning a Faults or Warnings object
  • Adds hasActiveFault(), hasStickyFault(), hasActiveWarning(), and hasStickyWarning() 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