Heads up: WPILib 2027 is still in alpha. These pages are changing quickly and aren't stable or finished yet — expect edits as the APIs settle.
Gray Matter LogoGray Matter Workshop

Running Program

KEY CONCEPT

Running Program: Hardware Simulation Testing

WPILib's Hardware Simulation lets you run your code in the simulator while driving real motors connected to the CANivore.

A CANivore also lets you build robot applications that run directly on Windows or Linux machines.

↳ TAKEAWAY

Hardware simulation eliminates the need for a robot controller (roboRIO or SystemCore) during testing, while still letting you drive real motors over a CANivore.

Important: CANivore USB Setting

Before running Hardware Simulation code, you must turn OFFthe "CANivore USB" setting in Tuner X. This prevents conflicts between the simulation environment and physical hardware communication.

Steps

Open Tuner X → Go to CANivore settings → Disable "CANivore USB"

Hardware Simulation Setup

Running on the 2027 stack: OpModes + the simulator

Start the simulator, or deploy to the robot. The driver station then lists every mode class by name: each @Teleop, @Autonomous, and @Utility class you wrote. Pick one, and that OpMode is constructed: built fresh, right then, along with its button bindings. Underneath, the scheduler (Scheduler.getDefault().run()) keeps ticking every loop no matter which mode is active.

NOTE

Where the code actually runs

The stack runs on Java 25 and deploys to SystemCore (./gradlew deploy targets /home/systemcore). The mode list comes straight from your code: a missing OpMode is nota compile error. If your mode doesn't show up on the driver station, check that the class:

  • is public and not abstract
  • has its annotation with a name (like @Teleop(name = "Teleop"))
  • lives in frc.robot or a subpackage
  • has a public constructor that takes a Robot
NOTE · API STATUS

This is the WPILib 2027 alpha

The code on this page targets the WPILib 2027 alpha stack — Commands v3 + OpModes (GradleRIO 2027.0.0-alpha-6, Phoenix 6 26.50.0-alpha-1) on Java 25 and SystemCore — so exact APIs may still shift between alpha builds. This page was last verified against alpha-6 in July 2026.
CHECKPOINT · 5 ITEMS