Telemetry
The basics of telemetry
Using DataLog will increase your storage on the RIO and could have negative consequences. Please review WPILib for more information.
By default telemetry is sent to NetworkTables via NT4 entries. This is not the only way telemetry can be logged! If you set a DataLogName inside of SmartMotorControllerTelemetryConfig with SmartMotorControllerTelemetryConfig.withDataLogName(entry) it will log everything that is sent to NT4 in that log. However this can pollute your telemetry quite alot! We recommend pruning your telemetry so that only things you absolutely want in the file will appear.
You can disable NetworkTables logging with SmartMotorControllerTelemetryConfig.withoutNetworkTable() !
You should set a DataLogName for competition matches to ensure you have enough data to see what happened on the field and make real time adjustments. This will dramatically improve your season and is very easy to do!
NetworkTables
Every Mechanism has a Tuning table and a display table on the robot. Mechanism tables contain the SmartMotorControllers used in that mechanism.
All Mechanism tables are stored under NT:/Mechanisms NOT NT:/SmartDashboard however NT:/SmartDashboard does contain some useful Mechanism2d's that can be shown in your dashboard, and commands like "Live Tuning"
The image below has the Telemetry output of an Elevator with the Telemetry name of Elevator and the SmartMotorController TelemetryName of ElevatorMotor

Simulation vs Reality
The simulation view of each mechanism is done with Mechanism2d's. These windows could be outputted while on the actual robot but that is not necessary as all of the data from the Mechanism2d is in the Telemetry fields and accessible to the user.
Mechanism Telemetry
Mechanism Telemetry is basically only a holder table for SmartMotorController Telemetry allowing for an easier time finding the values.

Smart Motor Controller Telemetry
SmartMotorController Telemetry is highly configurable in fact your could enable and disable whatever telemetry you like with the example below.

Colors
You may notice there are different colors in the Mechanism windows displayed for simulation. These are there to provide you with reference points of your Soft and Hard Limits.
Green is the upper hard limit
Red is the lower hard limit
Pink is the upper soft limit
Yellow is the lower soft limit
These are provided to you so you can identify relative motion easily between the simulation and reality.
Telemetry Units
All telemetry values in YAMS are logged with specific units. Understanding these units helps you interpret data correctly and configure your visualization tools.
Standard Telemetry Units
MechanismPosition
Rotations (rot)
Position of the mechanism output shaft
RotorPosition
Rotations (rot)
Position of the motor rotor (before gearing)
MechanismVelocity
Rotations per Second (rot/s)
Velocity of the mechanism output shaft
RotorVelocity
Rotations per Second (rot/s)
Velocity of the motor rotor
MechanismLowerLimit
Rotations (rot)
Lower soft limit position
MechanismUpperLimit
Rotations (rot)
Upper soft limit position
ClosedLoopTarget
Rotations (rot) or rot/s
Target position or velocity depending on control mode
ClosedLoopError
Rotations (rot) or rot/s
Error from target (same unit as target)
AppliedVoltage
Volts (V)
Voltage currently being applied to the motor
SupplyCurrent
Amps (A)
Current drawn from the battery
StatorCurrent
Amps (A)
Current through the motor windings
Temperature
Celsius (°C)
Motor controller temperature
Linear Mechanism Units
When you configure a mechanism with a circumference (using .withCircumference()), linear telemetry fields become available:
LinearPosition
Meters (m)
Linear position of the mechanism
LinearVelocity
Meters per Second (m/s)
Linear velocity of the mechanism
LinearLowerLimit
Meters (m)
Lower soft limit in linear units
LinearUpperLimit
Meters (m)
Upper soft limit in linear units
YAMS logs rotational units by default. Linear units are calculated from rotational units using your configured circumference: linear = rotational × circumference
Using AdvantageScope for Unit Conversion
AdvantageScope provides powerful unit conversion capabilities that let you view telemetry data in whatever units make sense for your analysis—without changing your robot code.
Changing Display Units
To change how a value is displayed in AdvantageScope:
Add the telemetry field to a graph (Line Graph, Discrete, etc.)
Right-click on the field in the legend
Select "Convert Units..."
Choose your desired output unit from the list
For example, you can convert:
Rotations → Degrees, Radians, or custom mechanism units
Rotations per Second → RPM, Degrees per Second, Radians per Second
Meters → Inches, Feet, Centimeters
Meters per Second → Feet per Second, Inches per Second
Multiple Units on the Same Axis
AdvantageScope allows you to plot values with different units on the same axis, which is incredibly useful for comparing related measurements:
Example: Comparing Position and Velocity You can plot both MechanismPosition (in degrees) and MechanismVelocity (in degrees/second) on the same graph to see how velocity changes relative to position during a motion profile.
Example: Comparing Setpoint vs Actual Plot ClosedLoopTarget and MechanismPosition with the same unit conversion to directly compare your target trajectory against actual mechanism movement.
Example: Analyzing Current Draw Plot SupplyCurrent and StatorCurrent together to understand the relationship between battery load and motor torque output.
Setting Up Unit Conversion in AdvantageScope
Open Line Graph: Drag fields from the sidebar to a Line Graph tab
Access Unit Settings: Right-click on any field in the graph legend
Select Convert Units: Choose the conversion you want
Apply to Multiple Fields: Each field can have its own conversion, allowing mixed-unit comparisons
Pro Tip: When tuning a mechanism, convert position to your natural units (degrees for arms, inches for elevators) and plot alongside velocity. This helps you visualize how your motion profile executes and identify where the mechanism accelerates, cruises, and decelerates.
Common Unit Conversions for FRC
Rotations
Degrees, Radians
Arm angles, turret position
Rotations
Inches, Centimeters
Elevator height (with circumference)
rot/s
RPM
Flywheel speed
rot/s
deg/s, rad/s
Arm angular velocity
Meters
Inches, Feet
Elevator/linear mechanism position
m/s
ft/s, in/s
Linear mechanism velocity
Exporting Data with Units
When exporting data from AdvantageScope, the exported values use the converted units you have selected in the display. This makes it easy to:
Share data with team members in familiar units
Import into spreadsheets for further analysis
Create documentation with consistent unit conventions
Last updated