Releases: REVrobotics/REV-Software-Binaries
REVLib 2024.2.0
Official 2024 FRC kickoff release for REVLib, with full support for SPARK Flex. Requires WPILib 2024 and SPARK Flex/SPARK MAX firmware 24.x.x.
You can install the C++/Java version of this library using this JSON URL in VSCode:
https://software-metadata.revrobotics.com/REVLib-2024.json
The REVLib LabVIEW package is available to download here.
C++ docs: https://codedocs.revrobotics.com/cpp/
Java docs: https://codedocs.revrobotics.com/java/
Changes to C++, Java, and LabVIEW
- Throws an error if firmware version is less than 24.0.0
- Throws an error if the motor type is set to Brushed on a SPARK Flex while a SPARK Flex Dock is not connected
- Gets main encoder position with enhanced precision
Changes to C++ and Java
- Sends a warning to the Driver Station if the wrong class is used for the type of SPARK that is connected
- Adds
CanSparkBase
class that exposes functionality that is common to both the SPARK MAX and the SPARK Flex - Adds
CanSparkFlex
class that exposes all functionality of the SPARK FlexCanSparkFlex
has agetExternalEncoder()
method that returns aSparkFlexExternalEncoder
instead of agetAlternateEncoder()
method that returns aSparkMaxAlternateEncoder
.- This is because Alternate Encoder Mode is not necessary for SPARK Flex, and has been replaced by the External Encoder Data Port feature:
- Can be used simultaneously with the internal encoders in NEO class motors
- Can be used simultaneously with an absolute encoder and limit switches
- Virtually no RPM limit
- No special configuration
- The following items have been deprecated in favor of new equivalents:
- Instead of
CANSparkMaxLowLevel
, useCANSparkLowLevel
- Instead of
SparkMaxAbsoluteEncoder
, useSparkAbsoluteEncoder
- Instead of
SparkMaxAnalogSensor
, useSparkAnalogSensor
- Instead of
SparkMaxLimitSwitch
, useSparkLimitSwitch
- Instead of
SparkMaxPIDController
, useSparkPIDController
- Instead of
SparkMaxRelativeEncoder
, useSparkRelativeEncoder
- Instead of
ExternalFollower.kFollowerSparkMax
, useExternalFollower.kFollowerSpark
- The
ExternalFollower
enum can be accessed atCANSparkMax.ExternalFollower
,CANSparkFlex.ExternalFollower
, orCANSparkBase.ExternalFollower
- The
- Instead of
- Adds a
CANSparkBase.getSparkModel()
method that returns aSparkModel
enum
Changes to LabVIEW
- Deprecates old VIs that are prefixed with "Spark MAX" and replaces them with VIs prefixed with "SPARK"
- Deprecated icons are "grayed out"
- Help context (documentation) for deprecated VIs point the user to the equivalent new VI
- New icons say "SPARK" instead of "REV MAX"
- Adds
SPARK Get Model.vi
- Fixes
SPARK Get Analog Sensor Voltage.vi
when used with a SPARK Flex - Updates
SPARK Get I Accum.vi
to get I Accum from status 7 instead of status 2 - Updates "Alternate Encoder" VIs to be "Alternate or External Encoder"
- Only throw the data port config warnings when the device is a SPARK MAX
REVLib 2023.1.3
This version of REVLib requires SPARK MAX Firmware v1.6.3. Please update your SPARK MAX through the REV Hardware Client to use with REVLib 2023.1.3.
You can install the C++/Java version of this library using this JSON URL in VSCode:
https://software-metadata.revrobotics.com/REVLib-2023.json
The REVLib LabVIEW package is available to download here.
C++ docs: https://codedocs.revrobotics.com/cpp/
Java docs: https://codedocs.revrobotics.com/java/
Changelog:
- Improves documentation for the setZeroOffset() and getZeroOffset() methods on Absolute Encoder objects
- Fixes issue where reading an absolute encoder’s zero offset could return an incorrect value in certain conditions
REVLib 2023.1.2
This version of REVLib requires SPARK MAX Firmware v1.6.2. Please update your SPARK MAX through the REV Hardware Client to use with REVLib 2023.1.2.
You can install the C++/Java version of this library using this JSON URL in VSCode:
https://software-metadata.revrobotics.com/REVLib-2023.json
The REVLib LabVIEW package is available to download here.
C++ docs: https://codedocs.revrobotics.com/cpp/
Java docs: https://codedocs.revrobotics.com/java/
Changelog:
- Adds support to configure the hall sensor's velocity measurement
- C++/Java: Updates
SetMeasurementPeriod()
andSetAverageDepth()
in theSparkMaxRelativeEncoder
class to be used when the relative encoder is configured to be of typekHallSensor
. - LabVIEW: Adds
SPARK MAX Configure Hall Sensor.vi
andSPARK MAX Get Hall Sensor Config.vi
to set and get the hall sensor's measurement period and average depth.
- C++/Java: Updates
REVLib 2023.1.1
Official 2023 FRC kickoff release for REVLib. This release mainly adds capabilities for the SPARK MAX designed for use with swerve modules, such as the REV 3in MAXSwerve Module.
You can install the C++/Java version of this library using this JSON URL in VSCode:
https://software-metadata.revrobotics.com/REVLib-2023.json
The REVLib LabVIEW package is available to download here.
C++ docs: https://codedocs.revrobotics.com/cpp/
Java docs: https://codedocs.revrobotics.com/java/
Changelog:
- Adds support for using a duty cycle absolute encoder as a feedback device for the SPARK MAX.
- C++/Java: Adds
SparkMaxAbsoluteEncoder
class. - LabVIEW: Adds VIs for configuring and getting the values from a duty cycle absolute encoder.
- C++/Java: Adds
- Adds Position PID Wrapping to allow continuous input for the SPARK MAX PID controller.
- C++/Java: Adds
PositionPIDWrapping
methods to theSparkMaxPIDController
class. - LabVIEW: Adds VIs for setting and getting the Position PID Wrapping configuration.
- C++/Java: Adds
- Allows configuring the periodic frame rates for status frames 4-6.
Known issues:
- SparkMaxPIDController.setIAccum() only works while the control mode is active
REVLib 2022.1.2
Breaking Changes
- LabVIEW: The version of NI Package Manager bundled with the FRC LabVIEW offline installer will no longer work when installing the REVLib package. NIPM must be updated to the latest version or installed from the FRC LabVIEW online installer to be able to install this package of REVLib for LabVIEW
Enhancements
- LabVIEW: Adds
Spark MAX Set Inverted.vi
andSpark MAX Get Inverted.vi
Known issues
- SparkMaxPIDController.setIAccum() only works while the control mode is active
- LabVIEW: VIs to get the SPARK MAX controller parameters do not work
REVLib 2022.1.1
Fixes
- Adds Linux aarch64 (64-bit ARM) build
- C++: Adds missing
GetAlternateEncoder(int countsPerRev)
method
Known issues
- SparkMaxPIDController.setIAccum() only works while the control mode is active
REVLib 2022.1.0
Enhancements
- Java: Adds initial WPILib simulation support
- Supports
ControlType.kVelocity
andControlType.kVoltage
- To use, make the following modifications to your Robot class (adjust parameters as necessary):
- Call
RevPhysicsSim.getInstance().addSparkMax(sparkMax, DCMotor.getNEO(1))
fromsimulationInit()
- Call
RevPhysicsSim.GetInstance.run()
fromsimulationPeriodic()
- These changes will keep the simulated position value up-to-date.
- Call
- Limitations
- When in simulation mode, calling
setReference()
will only update the velocity of the primary encoder, even ifSparkMaxPIDController.setFeedbackDevice()
was called with a different feedback sensor
- When in simulation mode, calling
- Supports
Fixes
- C++: Fixes move semantics for supported classes
Known issues
- SparkMaxPIDController.setIAccum() only works while the control mode is active
Pneumatic Hub firmware 23.0.1
- Fixes issue where compressor channel does not turn on after updating to v2023.0.0 without explicitly setting a compressor mode
Pneumatic Hub firmware 23.0.0
NOTE: Upgrading from v22.x.x
to this version will clear sticky faults and compressor settings.
- Improves device brownout detection
- Improves CAN fault detection
- Improves robustness against soft-bricking
Pneumatic Hub firmware 22.0.5
- Reduces stutters in compressor and solenoids with high CAN utilization