Skip to main content

The 2026 version of AdvantageKit is now available! Check the installation docs and full changelog for details. In addition to adding support for WPILib 2026, this release includes several major new features and documentation improvements. The most notable features in this release are documented below.

We value your feedback! Feedback, feature requests, and bug reports are welcome on the issues page.

๐Ÿงฎ Unit Loggingโ€‹

All logging interfaces now support specifying unit metadata compatible with unit-aware graphing in AdvantageScope. Several examples of unit metadata logging are shown in the code block below. For more details, check the documentation here.

Logger.recordOutput("MyAngle", 3.141, "radians");
Logger.recordOutput("MyDistance", Meters.of(63.28));
Logger.recordOutput("MyCurrent", 42.0, Amps);

@AutoLog
public class Inputs {
public Current current = Amps.of(63.28);
}

public class Outputs {
@AutoLogOutput(unit = "inches")
private double setpoint = 44600.0;

@AutoLogOutput
private Voltage volts = Volts.of(12.6);
}

๐Ÿ›œ NetworkTables Client Loggingโ€‹

The SystemStats table now tracks which clients are connected to the NetworkTables server, including dashboards and vision coprocessors. This makes it easy to check when devices are online with no additional logging in user code. For each client, AdvantageKit automatically logs the connection status, IP address, remote port, and protocol version.

Example of NetworkTables client logging

๐Ÿ’ฌ Improved Console Loggingโ€‹

AdvantageKit's automatic console logging has been improved to capture exceptions thrown during robot code execution. This makes it easier to debug code crashes without needing to reference the Driver Station log file.

In addition, console output is now displayed during Replay Watch to make it easier to debug robot programs when rapidly iterating on code.

Exception in console log

๐Ÿ“ฆ Log Mechanisms as 3D Componentsโ€‹

AdvantageKit now offers an easier method of visualizing simple articulated components in AdvantageScope. The LoggedMechanism2d.generate3dMechanism method can be used to automatically generate a set of 3D poses for visualizing full 3D components in AdvantageScope. No need to manually transform 3D poses when creating an array of components!

๐ŸŽจ Color Loggingโ€‹

WPILib includes a color library that can be used to simplify color operations. These objects can now be logged as inputs or outputs, and will be stored in the log as a string formatted in Hex Triplet color notation.

...

Rainbow

๐Ÿ“’ Online Documentationโ€‹

The AdvantageKit documentation has been significantly improved:

  • Online API documentation is now available.
  • Page organization has been improved, including the additional of a new theory section.
  • Video case studies from previous FIRST Championship conference are catalogged here.

API documentation

๐Ÿฆ‹ All-New Log Replay Comparisonโ€‹

The log replay comparison page has been rewritten to be more clear, accurate, and data-driven. This includes deeper analysis of the effects of determinism on replay, real-world examples of the impact of rapid code iteration, and sample code exploring different subsystem code structures.

info

These updates bring the AdvantageKit documentation up-to-date with the 2026 release of CTRE's Hoot Replay.

Data on the accuracy of non-deterministic replay

The graph above compares data produced on a real FRC robot to data produced by non-deterministic replay. See here for details.

๐Ÿฆค New TalonFX(S) Swerve Templateโ€‹

The TalonFX swerve template has been updated with an alternative module implementation for the TalonFXS and CANdi. Check the documentation for more details on configuring the template for any hardware setup, including a mix of devices from different vendors.

๐Ÿ Bonus: Third-Party Replay in Pythonโ€‹

While AdvantageKit is only available in Java, FRC teams developing in Python should consider using PyKit instead. This library was developed by Team 1757 and supports deterministic log replay in Python.

note

Littleton Robotics is not involved in the development of PyKit. All questions should be directed to Team 1757.