From 6d1c1113eb2e17bcc94c6752abbd65824025be78 Mon Sep 17 00:00:00 2001 From: Jatanimo <98921217+Jatanimo@users.noreply.github.com> Date: Tue, 11 Aug 2026 20:44:46 -0400 Subject: [PATCH 1/2] Initialize turn zero from preferences in periodic method --- .../java/frc/robot/subsystems/drive/Module.java | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/main/java/frc/robot/subsystems/drive/Module.java b/src/main/java/frc/robot/subsystems/drive/Module.java index 578e9e8..016dae8 100644 --- a/src/main/java/frc/robot/subsystems/drive/Module.java +++ b/src/main/java/frc/robot/subsystems/drive/Module.java @@ -25,7 +25,7 @@ public class Module { private final ModuleIO io; private final ModuleIOInputsAutoLogged inputs = new ModuleIOInputsAutoLogged(); private final String name; - + private boolean initialized = false; private final Alert driveDisconnectedAlert; private final Alert turnDisconnectedAlert; private SwerveModulePosition[] odometryPositions = new SwerveModulePosition[] {}; @@ -51,12 +51,25 @@ public Module(ModuleIO io, String name) { } public void periodic() { + long t0 = FeatureFlags.PROFILING_ENABLED ? System.nanoTime() : 0; io.updateInputs(inputs); long t1 = FeatureFlags.PROFILING_ENABLED ? System.nanoTime() : 0; Logger.processInputs("Drive/Module" + name, inputs); long t2 = FeatureFlags.PROFILING_ENABLED ? System.nanoTime() : 0; - + if(!initialized) { + // Set turn zero from preferences + Rotation2d turnZeroFromCancoder = inputs.turnZero; + Preferences.initDouble(ZERO_ROTATION_KEY + "/" + name, turnZeroFromCancoder.getRadians()); + Rotation2d turnZeroFromPreferences = + new Rotation2d( + Preferences.getDouble( + ZERO_ROTATION_KEY + "/" + name, turnZeroFromCancoder.getRadians())); + io.setTurnZero(turnZeroFromPreferences); + Logger.recordOutput( + "Drive/Module" + name + "/TurnZeroRad", turnZeroFromPreferences.getRadians()); + initialized = true; + } // Calculate positions for odometry int sampleCount = inputs.odometryTimestamps.length; // All signals are sampled together odometryPositions = new SwerveModulePosition[sampleCount]; From 1a4e76326c6ded924cd53bfc448af42e0c79ea68 Mon Sep 17 00:00:00 2001 From: Jatanimo <98921217+Jatanimo@users.noreply.github.com> Date: Tue, 11 Aug 2026 20:44:57 -0400 Subject: [PATCH 2/2] Refactor turn zero initialization in Module class for clarity and consistency --- .../frc/robot/subsystems/drive/Module.java | 25 ++++++------------- 1 file changed, 7 insertions(+), 18 deletions(-) diff --git a/src/main/java/frc/robot/subsystems/drive/Module.java b/src/main/java/frc/robot/subsystems/drive/Module.java index 016dae8..29d305b 100644 --- a/src/main/java/frc/robot/subsystems/drive/Module.java +++ b/src/main/java/frc/robot/subsystems/drive/Module.java @@ -37,37 +37,26 @@ public Module(ModuleIO io, String name) { new Alert("Disconnected drive motor on module " + name + ".", AlertType.kError); turnDisconnectedAlert = new Alert("Disconnected turn motor on module " + name + ".", AlertType.kError); - - // Set turn zero from preferences - Rotation2d turnZeroFromCancoder = inputs.turnZero; - Preferences.initDouble(ZERO_ROTATION_KEY + "/" + name, turnZeroFromCancoder.getRadians()); - Rotation2d turnZeroFromPreferences = - new Rotation2d( - Preferences.getDouble( - ZERO_ROTATION_KEY + "/" + name, turnZeroFromCancoder.getRadians())); - io.setTurnZero(turnZeroFromPreferences); - Logger.recordOutput( - "Drive/Module" + name + "/TurnZeroRad", turnZeroFromPreferences.getRadians()); } public void periodic() { - + long t0 = FeatureFlags.PROFILING_ENABLED ? System.nanoTime() : 0; io.updateInputs(inputs); long t1 = FeatureFlags.PROFILING_ENABLED ? System.nanoTime() : 0; Logger.processInputs("Drive/Module" + name, inputs); long t2 = FeatureFlags.PROFILING_ENABLED ? System.nanoTime() : 0; - if(!initialized) { - // Set turn zero from preferences + if (!initialized) { + // Set turn zero from preferences Rotation2d turnZeroFromCancoder = inputs.turnZero; Preferences.initDouble(ZERO_ROTATION_KEY + "/" + name, turnZeroFromCancoder.getRadians()); Rotation2d turnZeroFromPreferences = - new Rotation2d( - Preferences.getDouble( - ZERO_ROTATION_KEY + "/" + name, turnZeroFromCancoder.getRadians())); + new Rotation2d( + Preferences.getDouble( + ZERO_ROTATION_KEY + "/" + name, turnZeroFromCancoder.getRadians())); io.setTurnZero(turnZeroFromPreferences); Logger.recordOutput( - "Drive/Module" + name + "/TurnZeroRad", turnZeroFromPreferences.getRadians()); + "Drive/Module" + name + "/TurnZeroRad", turnZeroFromPreferences.getRadians()); initialized = true; } // Calculate positions for odometry