From 3a61d9e0a97212d21326c9aab2aee39df6eac82a Mon Sep 17 00:00:00 2001 From: Spaceman 11 <135277197+Spaceman113138@users.noreply.github.com> Date: Mon, 7 Sep 2026 22:37:32 -0500 Subject: [PATCH 1/3] ctre stuff and docs --- .../snippets/src/main/java/sources/CommandBasedKitbot.java | 4 +++- .../src/main/java/first/robot/mechanisms/Drivetrain.java | 5 ++++- .../ctre/src/main/java/first/robot/mechanisms/Feeder.java | 5 ++++- .../src/main/java/first/robot/mechanisms/IntakeLauncher.java | 5 ++++- .../learning-course/stage1/stage1b/command-based-kitbot.mdx | 1 + 5 files changed, 16 insertions(+), 4 deletions(-) diff --git a/examples/stage1/stage1b/snippets/src/main/java/sources/CommandBasedKitbot.java b/examples/stage1/stage1b/snippets/src/main/java/sources/CommandBasedKitbot.java index 196a2c4f..8e6fb314 100644 --- a/examples/stage1/stage1b/snippets/src/main/java/sources/CommandBasedKitbot.java +++ b/examples/stage1/stage1b/snippets/src/main/java/sources/CommandBasedKitbot.java @@ -48,7 +48,9 @@ public MyTeleop(Robot robot) { private final SingleFlywheelSim sim = new SingleFlywheelSim(motor, "Feeder"); // Create a flywheel simulation public void periodic() { // Update the simulation - sim.periodic(); + if (RobotBase.isSimulation()) { + sim.periodic(); + } } // [/feederSim] diff --git a/examples/stage1/stage1b/solutions/ctre/src/main/java/first/robot/mechanisms/Drivetrain.java b/examples/stage1/stage1b/solutions/ctre/src/main/java/first/robot/mechanisms/Drivetrain.java index 33be5508..b754d478 100644 --- a/examples/stage1/stage1b/solutions/ctre/src/main/java/first/robot/mechanisms/Drivetrain.java +++ b/examples/stage1/stage1b/solutions/ctre/src/main/java/first/robot/mechanisms/Drivetrain.java @@ -16,6 +16,7 @@ import org.wpilib.command3.Command; import org.wpilib.command3.Mechanism; import org.wpilib.drive.DifferentialDrive; +import org.wpilib.framework.RobotBase; import org.wpilib.hardware.imu.OnboardIMU; import org.wpilib.hardware.imu.OnboardIMU.MountOrientation; @@ -69,6 +70,8 @@ public Command arcadeDrive(DoubleSupplier forwardThrottle, DoubleSupplier rotati } public void periodic() { - drivetrainSim.periodic(); + if (RobotBase.isSimulation()) { + drivetrainSim.periodic(); + } } } diff --git a/examples/stage1/stage1b/solutions/ctre/src/main/java/first/robot/mechanisms/Feeder.java b/examples/stage1/stage1b/solutions/ctre/src/main/java/first/robot/mechanisms/Feeder.java index 4e687920..cdfdcd81 100644 --- a/examples/stage1/stage1b/solutions/ctre/src/main/java/first/robot/mechanisms/Feeder.java +++ b/examples/stage1/stage1b/solutions/ctre/src/main/java/first/robot/mechanisms/Feeder.java @@ -10,6 +10,7 @@ import first.robot.simulation.SingleFlywheelSim; import org.wpilib.command3.Command; import org.wpilib.command3.Mechanism; +import org.wpilib.framework.RobotBase; public class Feeder implements Mechanism { private final TalonFX motor = new TalonFX(5, CANBus.systemcore(0)); @@ -60,6 +61,8 @@ public Command idle() { } public void periodic() { - sim.periodic(); + if (RobotBase.isSimulation()) { + sim.periodic(); + } } } diff --git a/examples/stage1/stage1b/solutions/ctre/src/main/java/first/robot/mechanisms/IntakeLauncher.java b/examples/stage1/stage1b/solutions/ctre/src/main/java/first/robot/mechanisms/IntakeLauncher.java index 7670eb00..6e977c06 100644 --- a/examples/stage1/stage1b/solutions/ctre/src/main/java/first/robot/mechanisms/IntakeLauncher.java +++ b/examples/stage1/stage1b/solutions/ctre/src/main/java/first/robot/mechanisms/IntakeLauncher.java @@ -12,6 +12,7 @@ import first.robot.simulation.SingleFlywheelSim; import org.wpilib.command3.Command; import org.wpilib.command3.Mechanism; +import org.wpilib.framework.RobotBase; public class IntakeLauncher implements Mechanism { private final TalonFX motor = new TalonFX(4, CANBus.systemcore(0)); @@ -63,6 +64,8 @@ public Command idle() { } public void periodic() { - sim.periodic(); + if (RobotBase.isSimulation()) { + sim.periodic(); + } } } diff --git a/src/content/docs/learning-course/stage1/stage1b/command-based-kitbot.mdx b/src/content/docs/learning-course/stage1/stage1b/command-based-kitbot.mdx index c6dcf3b2..e2a33281 100644 --- a/src/content/docs/learning-course/stage1/stage1b/command-based-kitbot.mdx +++ b/src/content/docs/learning-course/stage1/stage1b/command-based-kitbot.mdx @@ -160,6 +160,7 @@ to allow for simulation to work: ``` This code creates a `SingleFlywheelSim` object named `sim` that simulates the feeder by representing it as a single spinning flywheel, then updates the simulation in `sim.periodic()`. +The code checks if it is being simulated before updating the sim so the simulation code is not run when the robot is real. ### Task 3: The IntakeLauncher Mechanism From 2ef5ac31d45dbcab6ab97cbcd3c6ba24ea83f337 Mon Sep 17 00:00:00 2001 From: Spaceman 11 <135277197+Spaceman113138@users.noreply.github.com> Date: Mon, 7 Sep 2026 22:44:06 -0500 Subject: [PATCH 2/3] add missing import --- .../snippets/src/main/java/sources/CommandBasedKitbot.java | 1 + 1 file changed, 1 insertion(+) diff --git a/examples/stage1/stage1b/snippets/src/main/java/sources/CommandBasedKitbot.java b/examples/stage1/stage1b/snippets/src/main/java/sources/CommandBasedKitbot.java index 8e6fb314..9494e41c 100644 --- a/examples/stage1/stage1b/snippets/src/main/java/sources/CommandBasedKitbot.java +++ b/examples/stage1/stage1b/snippets/src/main/java/sources/CommandBasedKitbot.java @@ -11,6 +11,7 @@ import org.wpilib.command3.button.CommandXboxController; import org.wpilib.framework.OpModeRobot; import org.wpilib.opmode.PeriodicOpMode; +import org.wpilib.framework.RobotBase; class CommandBasedKitbot { // [feederDef] From 498ddc1fe72ecf77f7fdc2a9da8f8b114499414c Mon Sep 17 00:00:00 2001 From: Spaceman 11 <135277197+Spaceman113138@users.noreply.github.com> Date: Mon, 7 Sep 2026 22:51:07 -0500 Subject: [PATCH 3/3] fix --- .../snippets/src/main/java/sources/CommandBasedKitbot.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/stage1/stage1b/snippets/src/main/java/sources/CommandBasedKitbot.java b/examples/stage1/stage1b/snippets/src/main/java/sources/CommandBasedKitbot.java index 9494e41c..2ccc9080 100644 --- a/examples/stage1/stage1b/snippets/src/main/java/sources/CommandBasedKitbot.java +++ b/examples/stage1/stage1b/snippets/src/main/java/sources/CommandBasedKitbot.java @@ -10,8 +10,8 @@ import org.wpilib.command3.Scheduler; import org.wpilib.command3.button.CommandXboxController; import org.wpilib.framework.OpModeRobot; -import org.wpilib.opmode.PeriodicOpMode; import org.wpilib.framework.RobotBase; +import org.wpilib.opmode.PeriodicOpMode; class CommandBasedKitbot { // [feederDef]