Skip to content

Commit cd1fac5

Browse files
authored
Merge pull request #82 from robotpy/2026-release
Update to REVLib 2026.0.0
2 parents 65125e6 + dfd1bab commit cd1fac5

29 files changed

+278
-36
lines changed

examples/can-arcade-drive/robot.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -61,23 +61,23 @@ def robotInit(self):
6161
# mid-operation.
6262
self.leftLeadMotor.configure(
6363
self.globalConfig,
64-
rev.SparkBase.ResetMode.kResetSafeParameters,
65-
rev.SparkBase.PersistMode.kPersistParameters,
64+
rev.ResetMode.kResetSafeParameters,
65+
rev.PersistMode.kPersistParameters,
6666
)
6767
self.leftFollowMotor.configure(
6868
self.leftFollowerConfig,
69-
rev.SparkBase.ResetMode.kResetSafeParameters,
70-
rev.SparkBase.PersistMode.kPersistParameters,
69+
rev.ResetMode.kResetSafeParameters,
70+
rev.PersistMode.kPersistParameters,
7171
)
7272
self.rightLeadMotor.configure(
7373
self.rightLeaderConfig,
74-
rev.SparkBase.ResetMode.kResetSafeParameters,
75-
rev.SparkBase.PersistMode.kPersistParameters,
74+
rev.ResetMode.kResetSafeParameters,
75+
rev.PersistMode.kPersistParameters,
7676
)
7777
self.rightFollowMotor.configure(
7878
self.rightFollowerConfig,
79-
rev.SparkBase.ResetMode.kResetSafeParameters,
80-
rev.SparkBase.PersistMode.kPersistParameters,
79+
rev.ResetMode.kResetSafeParameters,
80+
rev.PersistMode.kPersistParameters,
8181
)
8282

8383
def teleopPeriodic(self):

examples/can-tank-drive/robot.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,13 @@ def robotInit(self):
3333
self.rightConfig = self.globalConfig.inverted(True)
3434
self.leftMotor.configure(
3535
self.globalConfig,
36-
rev.SparkBase.ResetMode.kResetSafeParameters,
37-
rev.SparkBase.PersistMode.kPersistParameters,
36+
rev.ResetMode.kResetSafeParameters,
37+
rev.PersistMode.kPersistParameters,
3838
)
3939
self.rightMotor.configure(
4040
self.rightConfig,
41-
rev.SparkBase.ResetMode.kResetSafeParameters,
42-
rev.SparkBase.PersistMode.kPersistParameters,
41+
rev.ResetMode.kResetSafeParameters,
42+
rev.PersistMode.kPersistParameters,
4343
)
4444

4545
self.driveTrain = DifferentialDrive(self.leftMotor, self.rightMotor)

examples/limit-switch/robot.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@ def robotInit(self):
4141
)
4242
self.motor.configure(
4343
self.limitConfig,
44-
rev.SparkBase.ResetMode.kResetSafeParameters,
45-
rev.SparkBase.PersistMode.kNoPersistParameters,
44+
rev.ResetMode.kResetSafeParameters,
45+
rev.PersistMode.kNoPersistParameters,
4646
)
4747

4848
self.prevForwardLimitEnabled = (
@@ -75,8 +75,8 @@ def teleopPeriodic(self):
7575
)
7676
self.motor.configure(
7777
self.limitConfig,
78-
rev.SparkBase.ResetMode.kResetSafeParameters,
79-
rev.SparkBase.PersistMode.kNoPersistParameters,
78+
rev.ResetMode.kResetSafeParameters,
79+
rev.PersistMode.kNoPersistParameters,
8080
)
8181
if self.prevReverseLimitEnabled != wpilib.SmartDashboard.getBoolean(
8282
"Reverse Limit Enabled", False
@@ -89,8 +89,8 @@ def teleopPeriodic(self):
8989
)
9090
self.motor.configure(
9191
self.limitConfig,
92-
rev.SparkBase.ResetMode.kResetSafeParameters,
93-
rev.SparkBase.PersistMode.kNoPersistParameters,
92+
rev.ResetMode.kResetSafeParameters,
93+
rev.PersistMode.kNoPersistParameters,
9494
)
9595

9696
# The get() method can be used on a SparkLimitSwitch object to read the

examples/maxswerve/subsystems/maxswervemodule.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
# the WPILib BSD license file in the root directory of this project.
55
#
66

7-
from rev import SparkMax, SparkMaxConfig, ClosedLoopConfig, SparkBase
7+
from rev import SparkMax, SparkMaxConfig, ClosedLoopConfig, ResetMode, PersistMode
88
from wpimath.geometry import Rotation2d
99
from wpimath.kinematics import SwerveModuleState, SwerveModulePosition
1010

@@ -108,13 +108,13 @@ def __init__(
108108
# operation, it will maintain the above configurations.
109109
self.drivingSparkMax.configure(
110110
self.drivingConfig,
111-
SparkBase.ResetMode.kResetSafeParameters,
112-
SparkBase.PersistMode.kPersistParameters,
111+
ResetMode.kResetSafeParameters,
112+
PersistMode.kPersistParameters,
113113
)
114114
self.turningSparkMax.configure(
115115
self.turningConfig,
116-
SparkBase.ResetMode.kResetSafeParameters,
117-
SparkBase.PersistMode.kPersistParameters,
116+
ResetMode.kResetSafeParameters,
117+
PersistMode.kPersistParameters,
118118
)
119119

120120
self.chassisAngularOffset = chassisAngularOffset

pyproject.toml

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ requires = [
66
"semiwrap~=0.2.1",
77
"hatch-meson~=0.1.0",
88
"hatch-robotpy~=0.2.1",
9-
"wpilib~=2026.1.1b1",
9+
"wpilib~=2026.1.1",
1010
]
1111

1212

@@ -16,7 +16,7 @@ dynamic = ["version"]
1616
description = "REVLib for RobotPy"
1717
license = "BSD-3-Clause"
1818
dependencies = [
19-
"wpilib~=2026.1.1b1",
19+
"wpilib>=2026.1.1,<2027",
2020
]
2121

2222
[[project.authors]]
@@ -44,23 +44,23 @@ packages = ["rev"]
4444
artifact_id = "REVLib-cpp"
4545
group_id = "com.revrobotics.frc"
4646
repo_url = "https://maven.revrobotics.com"
47-
version = "2026.0.0-beta-1"
47+
version = "2026.0.0"
4848
staticlibs = ["REVLib"]
4949
extract_to = "lib"
5050

5151
[[tool.hatch.build.hooks.robotpy.maven_lib_download]]
5252
artifact_id = "REVLib-driver"
5353
group_id = "com.revrobotics.frc"
5454
repo_url = "https://maven.revrobotics.com"
55-
version = "2026.0.0-beta-1"
55+
version = "2026.0.0"
5656
staticlibs = [ "REVLibDriver"]
5757
extract_to = "lib"
5858

5959
[[tool.hatch.build.hooks.robotpy.maven_lib_download]]
6060
artifact_id = "RevLibBackendDriver"
6161
group_id = "com.revrobotics.frc"
6262
repo_url = "https://maven.revrobotics.com"
63-
version = "2026.0.0-beta-1"
63+
version = "2026.0.0"
6464
staticlibs = [
6565
"BackendDriver",
6666
]
@@ -71,7 +71,7 @@ use_headers = false
7171
artifact_id = "RevLibWpiBackendDriver"
7272
group_id = "com.revrobotics.frc"
7373
repo_url = "https://maven.revrobotics.com"
74-
version = "2026.0.0-beta-1"
74+
version = "2026.0.0"
7575
staticlibs = [
7676
"REVLibWpi",
7777
]
@@ -94,6 +94,9 @@ update_init = ["rev"]
9494
scan_headers_ignore = [
9595
# rev
9696
"rev/CANCommonParameters.h",
97+
"rev/CANDetachedEncoderDriver.h",
98+
"rev/CANDetachedEncoderFrames.h",
99+
"rev/CANDetachedEncoderParameters.h",
97100
"rev/CANDeviceScanner.h",
98101
"rev/CANDriverPrivate.h",
99102
"rev/CANServoHubDriver.h",
@@ -112,10 +115,14 @@ scan_headers_ignore = [
112115
"rev/canupdate/CANSparkSWDL.h",
113116
"rev/canupdate/DfuSeFile.h",
114117

118+
# rev/config
119+
"rev/config/DetachedEncoderParameters.h",
120+
115121
# rev/rev
116122
"rev/rev/REVLibVersion.h",
117123

118124
# rev/sim
125+
"rev/sim/CANDetachedEncoder.h",
119126
"rev/sim/CANServoHub.h",
120127
"rev/sim/CANSpark.h",
121128
"rev/sim/MAXMotion.h",
@@ -148,6 +155,9 @@ CIEColor = "rev/CIEColor.h"
148155
ClosedLoopTypes = "rev/ClosedLoopTypes.h"
149156
ColorMatch = "rev/ColorMatch.h"
150157
ColorSensorV3 = "rev/ColorSensorV3.h"
158+
ConfigureTypes = "rev/ConfigureTypes.h"
159+
DetachedEncoder = "rev/DetachedEncoder.h"
160+
DetachedEncoderLowLevel = "rev/DetachedEncoderLowLevel.h"
151161
REVLibError = "rev/REVLibError.h"
152162
RelativeEncoder = "rev/RelativeEncoder.h"
153163
ServoChannel = "rev/ServoChannel.h"
@@ -167,6 +177,7 @@ SparkMaxAlternateEncoder = "rev/SparkMaxAlternateEncoder.h"
167177
SparkRelativeEncoder = "rev/SparkRelativeEncoder.h"
168178
SparkSim = "rev/SparkSim.h"
169179
SparkSoftLimit = "rev/SparkSoftLimit.h"
180+
SplineEncoder = "rev/SplineEncoder.h"
170181

171182
# rev/config
172183
AbsoluteEncoderConfig = "rev/config/AbsoluteEncoderConfig.h"
@@ -178,6 +189,9 @@ AnalogSensorConfigAccessor = "rev/config/AnalogSensorConfigAccessor.h"
178189
BaseConfig = "rev/config/BaseConfig.h"
179190
ClosedLoopConfig = "rev/config/ClosedLoopConfig.h"
180191
ClosedLoopConfigAccessor = "rev/config/ClosedLoopConfigAccessor.h"
192+
DetachedEncoderConfig = "rev/config/DetachedEncoderConfig.h"
193+
DetachedEncoderConfigAccessor = "rev/config/DetachedEncoderConfigAccessor.h"
194+
DetachedSignalsConfig = "rev/config/DetachedSignalsConfig.h"
181195
EncoderConfig = "rev/config/EncoderConfig.h"
182196
EncoderConfigAccessor = "rev/config/EncoderConfigAccessor.h"
183197
ExternalEncoderConfig = "rev/config/ExternalEncoderConfig.h"
@@ -206,6 +220,7 @@ SparkMaxConfigAccessor = "rev/config/SparkMaxConfigAccessor.h"
206220
SparkParameters = "rev/config/SparkParameters.h"
207221

208222
# rev/sim
223+
DetachedEncoderSim = "rev/sim/DetachedEncoderSim.h"
209224
MovingAverageFilterSim = "rev/sim/MovingAverageFilterSim.h"
210225
NoiseGenerator = "rev/sim/NoiseGenerator.h"
211226
ServoHubSimFaultManager = "rev/sim/ServoHubSimFaultManager.h"
@@ -220,4 +235,4 @@ SparkRelativeEncoderSim = "rev/sim/SparkRelativeEncoderSim.h"
220235
SparkSimFaultManager = "rev/sim/SparkSimFaultManager.h"
221236

222237
# rev/util
223-
StatusLogger = "rev/util/StatusLogger.h"
238+
StatusLogger = "rev/util/StatusLogger.h"

rev/__init__.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,12 @@
1919
ClosedLoopSlot,
2020
ColorMatch,
2121
ColorSensorV3,
22+
DetachedEncoder,
23+
DetachedEncoderConfig,
24+
DetachedEncoderConfigAccessor,
25+
DetachedEncoderLowLevel,
26+
DetachedEncoderSim,
27+
DetachedSignalsConfig,
2228
EncoderConfig,
2329
EncoderConfigAccessor,
2430
ExternalEncoderConfig,
@@ -32,8 +38,10 @@
3238
MAXMotionConfigAccessor,
3339
MovingAverageFilterSim,
3440
NoiseGenerator,
41+
PersistMode,
3542
REVLibError,
3643
RelativeEncoder,
44+
ResetMode,
3745
ServoChannel,
3846
ServoChannelConfig,
3947
ServoChannelConfigAccessor,
@@ -77,6 +85,7 @@
7785
SparkSim,
7886
SparkSimFaultManager,
7987
SparkSoftLimit,
88+
SplineEncoder,
8089
StatusLogger,
8190
)
8291

@@ -96,6 +105,12 @@
96105
"ClosedLoopSlot",
97106
"ColorMatch",
98107
"ColorSensorV3",
108+
"DetachedEncoder",
109+
"DetachedEncoderConfig",
110+
"DetachedEncoderConfigAccessor",
111+
"DetachedEncoderLowLevel",
112+
"DetachedEncoderSim",
113+
"DetachedSignalsConfig",
99114
"EncoderConfig",
100115
"EncoderConfigAccessor",
101116
"ExternalEncoderConfig",
@@ -109,8 +124,10 @@
109124
"MAXMotionConfigAccessor",
110125
"MovingAverageFilterSim",
111126
"NoiseGenerator",
127+
"PersistMode",
112128
"REVLibError",
113129
"RelativeEncoder",
130+
"ResetMode",
114131
"ServoChannel",
115132
"ServoChannelConfig",
116133
"ServoChannelConfigAccessor",
@@ -154,5 +171,6 @@
154171
"SparkSim",
155172
"SparkSimFaultManager",
156173
"SparkSoftLimit",
174+
"SplineEncoder",
157175
"StatusLogger",
158176
]

semiwrap/AbsoluteEncoderConfig.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,8 @@ classes:
1414
StartPulseUs:
1515
EndPulseUs:
1616
ZeroCentered:
17+
rev::spark::AbsoluteEncoderConfig::Presets:
18+
methods:
19+
REV_ThroughBoreEncoder:
20+
REV_ThroughBoreEncoderV2:
21+
REV_SplineEncoder:

semiwrap/AlternateEncoderConfig.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,8 @@ classes:
1515
VelocityConversionFactor:
1616
AverageDepth:
1717
MeasurementPeriod:
18+
rev::spark::AlternateEncoderConfig::Presets:
19+
methods:
20+
REV_ThroughBoreEncoder:
21+
REV_ThroughBoreEncoderV2:
22+
REV_SplineEncoder:

semiwrap/ClosedLoopConfig.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
extra_includes:
2+
- rev/DetachedEncoder.h
3+
14
classes:
25
rev::spark::ClosedLoopConfig:
36
base_qualnames:
@@ -29,5 +32,9 @@ classes:
2932
PositionWrappingMaxInput:
3033
PositionWrappingInputRange:
3134
SetFeedbackSensor:
35+
overloads:
36+
FeedbackSensor:
37+
FeedbackSensor, int:
38+
FeedbackSensor, rev::detached::DetachedEncoder&:
3239
Flatten:
3340
AllowedClosedLoopError:

semiwrap/ConfigureTypes.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
enums:
2+
ResetMode:
3+
PersistMode:

0 commit comments

Comments
 (0)