View your DataLog in AdvantageScope
Pull the .wpilog off your robot and look at what actually happened during a match or test run.
This is not "Log Replay." AdvantageKit's Log Replay re-runs your robot code against a recorded log to deterministically reproduce a match in simulation, and requires the AdvantageKit IO-interface pattern. What this page covers is simpler and works with every YAGSL robot, AdvantageKit or not: opening the .wpilog file your robot already wrote and looking at the recorded values in AdvantageScope. Nothing re-executes — you're just viewing a file.
Every field SwerveParser publishes to NetworkTables is also written to a WPILib DataLog automatically — no JSON field or code needed to opt in. See Telemetry, Simulation & Vision for the live NetworkTables tree; this page is the practical walkthrough for looking at a recorded run afterward.
Step 1: Make sure a DataLog is actually being written
DataLogManager owns the actual file on disk. Start it once, early, in Robot.java:
@Override
public void robotInit() {
DataLogManager.start();
DriverStation.startDataLog(DataLogManager.getLog()); // optional: also logs joystick/DS data
}On the real robot, .wpilog files are written to a USB drive if one is plugged in, otherwise to /home/lvuser/logs on the roboRIO's internal storage. In simulation, they land in your project's logs/ folder next to build.gradle. WPILib initially names the file FRC_TBD_<random>.wpilog and renames it to a timestamp (e.g. FRC_20260817_010558.wpilog) once it has a real time source.
Step 2: Nothing to configure — YAGSL logs automatically
Unlike hand-building a SwerveDriveConfig/SwerveModuleConfig yourself, SwerveParser already wires up a DataLog name for the drive and every module, at every level, for you:
Swerve— the drive itself (pose, gyro, chassis speeds, module states).Swerve/modules/<name>— that module's absolute encoder.Swerve/modules/<name>/drive— that module's drive motor.Swerve/modules/<name>/azimuth— that module's angle/steering motor.
Note the DataLog tree uses a top-level Swerve (capitalized, no Mechanisms prefix) — a different root than the live NetworkTables tree covered in Telemetry, Simulation & Vision (Mechanisms/swerve, lowercase). Both describe the same data; AdvantageScope shows them as two separate branches in the field tree (Swerve for the DataLog-only entries, NT for the live/mirrored NetworkTables ones) — see the sidebar in the screenshots below.
There's no granular per-field opt-in and no way to disable this — if you're using SwerveParser, you already have a full DataLog recording of your swerve drive every time you run the robot.
Step 3: Run it and record
Deploy or simulate the robot, enable it, and drive around for a bit — every field above writes to both NetworkTables and the DataLog continuously while enabled.
Step 4: Pull the file and open it in AdvantageScope
Grab the
.wpilogoff the RIO (USB drive, orscp lvuser@10.TE.AM.2:/home/lvuser/logs/*.wpilog .) — or straight from your sim project'slogs/folder.Open AdvantageScope, then File → Open File... (or drag the
.wpilogonto the window). Do not use "Connect to Robot/Simulator" — that connects live over NetworkTables, which shows current values, not the recorded run.
Step 5: Explore the data
Add a tab to visualize the data:
2D Field tab — drag
Swerve/posein to see the robot's recorded path.

Swerve tab — AdvantageScope's built-in module visualizer. Drag
Swerve/states/current(and optionallySwerve/states/desiredandSwerve/chassis/current/desired) into the Sources list to see wheel vectors animate over the timeline.

Line Graph tab — drag any numeric field to plot it over time. A useful pairing while debugging: each module's
Swerve/modules/<name>/azimuth/mechanism/position(the angle motor's own relative encoder, from the DataLog) againstMechanisms/swerve/modules/<name>/encoder(the raw absolute encoder, from the live NT mirror also present in the file) — if the two drift apart over a run, the relative encoder seeded from the wrong absolute offset.

Scrub the timeline at the top of the window to step through the run, or hit play to watch it back at normal speed.
Because this is just a file, you can open the same .wpilog in as many tabs/windows as you want, compare two different matches side by side, or hand the file to a teammate to look at independently — none of that requires the robot, the simulator, or AdvantageKit replay to be running.
Related pages
Last updated
Was this helpful?