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 c0d7cc24..8bdf0228 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
@@ -21,6 +21,7 @@
import org.wpilib.hardware.imu.OnboardIMU;
import org.wpilib.hardware.imu.OnboardIMU.MountOrientation;
+// [CheckUpDrivetrain]
public class Drivetrain implements Mechanism {
private static final int leftLeaderID = 0, rightLeaderID = 2;
private final TalonFX leftLeader = new TalonFX(leftLeaderID, new CANBus(CANPort.CAN_S0));
@@ -76,3 +77,4 @@ public void periodic() {
}
}
}
+// [/CheckUpDrivetrain]
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 b3c39f5d..b9330653 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
@@ -13,6 +13,7 @@
import org.wpilib.framework.RobotBase;
import org.wpilib.hardware.bus.CANPort;
+// [CheckupFeeder]
public class Feeder implements Mechanism {
private final TalonFX motor = new TalonFX(5, new CANBus(CANPort.CAN_S0));
private final SingleFlywheelSim sim = SingleFlywheelSim.forFeeder(motor);
@@ -67,3 +68,4 @@ public void periodic() {
}
}
}
+// [/CheckupFeeder]
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 3ffb476e..6162ce60 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
@@ -15,6 +15,7 @@
import org.wpilib.framework.RobotBase;
import org.wpilib.hardware.bus.CANPort;
+// [CheckupIntake]
public class IntakeLauncher implements Mechanism {
private final TalonFX motor = new TalonFX(4, new CANBus(CANPort.CAN_S0));
private final SingleFlywheelSim sim = SingleFlywheelSim.forIntakeLauncher(motor);
@@ -70,3 +71,4 @@ public void periodic() {
}
}
}
+// [/CheckupIntake]
diff --git a/examples/stage1/stage1b/solutions/rev/src/main/java/first/robot/mechanisms/Drivetrain.java b/examples/stage1/stage1b/solutions/rev/src/main/java/first/robot/mechanisms/Drivetrain.java
index 9ab48923..f2e37f7a 100644
--- a/examples/stage1/stage1b/solutions/rev/src/main/java/first/robot/mechanisms/Drivetrain.java
+++ b/examples/stage1/stage1b/solutions/rev/src/main/java/first/robot/mechanisms/Drivetrain.java
@@ -20,6 +20,7 @@
import org.wpilib.hardware.imu.OnboardIMU;
import org.wpilib.hardware.imu.OnboardIMU.MountOrientation;
+// [CheckUpDrivetrain]
public class Drivetrain implements Mechanism {
private final SparkMax leftLeader = new SparkMax(CANPort.CAN_S0, 0, MotorType.kBrushless);
private final SparkMax leftFollower = new SparkMax(CANPort.CAN_S0, 1, MotorType.kBrushless);
@@ -79,3 +80,4 @@ public void periodic() {
}
}
}
+// [/CheckUpDrivetrain]
diff --git a/examples/stage1/stage1b/solutions/rev/src/main/java/first/robot/mechanisms/Feeder.java b/examples/stage1/stage1b/solutions/rev/src/main/java/first/robot/mechanisms/Feeder.java
index cf17fa39..dff58572 100644
--- a/examples/stage1/stage1b/solutions/rev/src/main/java/first/robot/mechanisms/Feeder.java
+++ b/examples/stage1/stage1b/solutions/rev/src/main/java/first/robot/mechanisms/Feeder.java
@@ -13,6 +13,7 @@
import org.wpilib.framework.RobotBase;
import org.wpilib.hardware.bus.CANPort;
+// [CheckupFeeder]
public class Feeder implements Mechanism {
private final SparkMax motor = new SparkMax(CANPort.CAN_S0, 5, MotorType.kBrushless);
private final SingleFlywheelSim sim = SingleFlywheelSim.forFeeder(motor);
@@ -67,3 +68,4 @@ public void periodic() {
}
}
}
+// [/CheckupFeeder]
diff --git a/examples/stage1/stage1b/solutions/rev/src/main/java/first/robot/mechanisms/IntakeLauncher.java b/examples/stage1/stage1b/solutions/rev/src/main/java/first/robot/mechanisms/IntakeLauncher.java
index 1c8de3db..86ffae52 100644
--- a/examples/stage1/stage1b/solutions/rev/src/main/java/first/robot/mechanisms/IntakeLauncher.java
+++ b/examples/stage1/stage1b/solutions/rev/src/main/java/first/robot/mechanisms/IntakeLauncher.java
@@ -15,6 +15,7 @@
import org.wpilib.framework.RobotBase;
import org.wpilib.hardware.bus.CANPort;
+// [CheckupIntake]
public class IntakeLauncher implements Mechanism {
private final SparkMax motor = new SparkMax(CANPort.CAN_S0, 4, MotorType.kBrushless);
private final SingleFlywheelSim sim = SingleFlywheelSim.forIntakeLauncher(motor);
@@ -70,3 +71,4 @@ public void periodic() {
}
}
}
+// [/CheckupIntake]
diff --git a/src/content/docs/learning-course/stage1/stage1b/command-based-kitbot-pt2.mdx b/src/content/docs/learning-course/stage1/stage1b/command-based-kitbot-pt2.mdx
index 83861f66..66e4f334 100644
--- a/src/content/docs/learning-course/stage1/stage1b/command-based-kitbot-pt2.mdx
+++ b/src/content/docs/learning-course/stage1/stage1b/command-based-kitbot-pt2.mdx
@@ -3,9 +3,13 @@ title: Exercise - Kitbot Rewrite, Pt. 2
description: Rewriting the kitbot code in stage 1A to command-based
codeRegionSources:
default: stage1/stage1b/snippets/src/main/java/sources/CommandBasedKitbotPt2.java
+ checkUpDrivetrainCTRE: stage1/stage1b/solutions/ctre/src/main/java/first/robot/mechanisms/Drivetrain.java
+ checkUpDrivetrainREV: stage1/stage1b/solutions/rev/src/main/java/first/robot/mechanisms/Drivetrain.java
---
import Aside from '@components/Aside.astro';
+import { REV_CTRE_CHOOSER_KEY } from '@data/tabsSyncKeys.ts';
+import { TabItem, Tabs } from '@astrojs/starlight/components';
### What You'll Accomplish
@@ -91,6 +95,26 @@ Now that we have a `Drivetrain` class, we need to set it up to be used in our ro
command set in the constructor (`idle()`) will apply.
+### Check Up
+
+By now your Drivetrain mechanism should look like this and VS code should not be giving you any errors.
+
+
+
### Task 4: Create Auto Mode Files
We need to create two new files to define our autonomous OpModes.
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 ae16deb4..31f66629 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
@@ -3,6 +3,10 @@ title: Exercise - Kitbot Rewrite, Pt. 1
description: Rewriting the kitbot code in stage 1A to command-based
codeRegionSources:
default: stage1/stage1b/snippets/src/main/java/sources/CommandBasedKitbot.java
+ checkUpFeederCTRE: stage1/stage1b/solutions/ctre/src/main/java/first/robot/mechanisms/Feeder.java
+ checkUpFeederREV: stage1/stage1b/solutions/rev/src/main/java/first/robot/mechanisms/Feeder.java
+ checkUpIntakeCTRE: stage1/stage1b/solutions/ctre/src/main/java/first/robot/mechanisms/IntakeLauncher.java
+ checkUpIntakeREV: stage1/stage1b/solutions/rev/src/main/java/first/robot/mechanisms/IntakeLauncher.java
---
import Aside from '@components/Aside.astro';
@@ -42,7 +46,7 @@ Then, navigate to the `Robot` class under `src/main/java/first/robot`.
For commands to function, you must call `Scheduler.getDefault().run()` in
the robot class' `robotPeriodic()` method.
-```java #robotDef
+```java {default}#robotDef
```
@@ -64,7 +68,7 @@ The `Feeder` class should implement `Mechanism`.
+### Check Up
+
+By now your Feeder and IntakeLauncher mechanisms should look like this and VS code should not be giving you any errors.
+
+
+
+
+
### Task 5: Finish the teleop OpMode
In the constructor of the teleop OpMode (it should be in `MyTeleop.java`),