# YAMS

## Home

- [Yet Another Mechanism System](https://yams.yassrobotics.com/readme.md): Welcome to Yet Another Mechanism System! A modern and easy solution to mechanism programming!

## Documentation

- [Welcome](https://yams.yassrobotics.com/documentation/readme.md)
- [Why YAMS?](https://yams.yassrobotics.com/documentation/why-yams.md)
- [Upgrading from 2026 to 2027](https://yams.yassrobotics.com/documentation/upgrading-from-2026-to-2027.md)
- [Arm](https://yams.yassrobotics.com/documentation/tutorials/arm.md): We will learn how to program an Arm!
- [Elevator](https://yams.yassrobotics.com/documentation/tutorials/elevator.md): We will learn how to program an Elevator!
- [Shooter/FlyWheels](https://yams.yassrobotics.com/documentation/tutorials/shooter-flywheels.md): We will learn how to program an Shooter!
- [Double FlyWheel](https://yams.yassrobotics.com/documentation/tutorials/double-flywheel.md): We will learn how to program a Double FlyWheel shooter!
- [Swerve Drive](https://yams.yassrobotics.com/documentation/tutorials/swerve-drive.md): We will learn how to program a Swerve Drive!
- [How do I use a vendor hardware config?](https://yams.yassrobotics.com/documentation/explanation/how-do-i-use-a-vendor-hardware-config.md)
- [How to set an Arm's target Angle?](https://yams.yassrobotics.com/documentation/explanation/how-to-set-an-arms-target-angle.md)
- [How to set an Elevator's target Height?](https://yams.yassrobotics.com/documentation/explanation/how-to-set-an-elevators-target-height.md)
- [How to find your mechanism circumference?](https://yams.yassrobotics.com/documentation/explanation/how-to-find-your-mechanism-circumference.md)
- [How to shoot with a Shooter?](https://yams.yassrobotics.com/documentation/explanation/how-to-shoot-with-a-shooter.md)
- [How do I control a Mechanism without a Mechanism Class?](https://yams.yassrobotics.com/documentation/explanation/how-do-i-control-a-mechanism-without-a-mechanism-class.md): Sometimes you have "loosely mechanically coupled" design which requires you to control both motors independently instead of using one as a follower.
- [How do I sense activity based off of the current?](https://yams.yassrobotics.com/documentation/explanation/how-do-i-sense-activity-based-off-of-the-current.md)
- [How do I use a DCMotor that isn't in WPILib?](https://yams.yassrobotics.com/documentation/explanation/how-do-i-use-a-dcmotor-that-isnt-in-wpilib.md)
- [How do I use exponential profiles?](https://yams.yassrobotics.com/documentation/explanation/how-do-i-use-exponential-profiles.md)
- [How do I enable battery discharge simulation?](https://yams.yassrobotics.com/documentation/explanation/how-do-i-enable-battery-discharge-simulation.md)
- [How do I use absolute encoders on my Arm?](https://yams.yassrobotics.com/documentation/explanation/how-do-i-use-absolute-encoders-on-my-arm.md)
- [How to disable linear closed loop control?](https://yams.yassrobotics.com/documentation/explanation/how-to-disable-linear-closed-loop-control.md)
- [How do I view my DataLog in AdvantageScope?](https://yams.yassrobotics.com/documentation/explanation/how-do-i-view-my-datalog-in-advantagescope.md)
- [AdvantageKit Integration](https://yams.yassrobotics.com/documentation/understanding/advantagekit-integration.md)
- [Organizing configs in constants](https://yams.yassrobotics.com/documentation/understanding/config-organization.md)
- [Battery simulation](https://yams.yassrobotics.com/documentation/understanding/battery-simulation.md)
- [Smart motor controllers](https://yams.yassrobotics.com/documentation/understanding/editor.md)
- [Motor controller feature matrix](https://yams.yassrobotics.com/documentation/understanding/editor/feature-matrix.md)
- [Simulation-only PID + feedforward](https://yams.yassrobotics.com/documentation/understanding/editor/simulation-only-pid-+-feedforward.md)
- [Limiting power consumption](https://yams.yassrobotics.com/documentation/understanding/editor/limiting-power-consumption.md)
- [Exponential profiles](https://yams.yassrobotics.com/documentation/understanding/editor/exponential-profiles.md)
- [LQR controllers](https://yams.yassrobotics.com/documentation/understanding/editor/lqr-controllers.md)
- [Sensors](https://yams.yassrobotics.com/documentation/understanding/sensors.md): YAMS Supports simulation really well, but my sensors don't.
- [Arms](https://yams.yassrobotics.com/documentation/understanding/arms.md)
- [Elevators](https://yams.yassrobotics.com/documentation/understanding/elevators.md)
- [Turrets/Wrists](https://yams.yassrobotics.com/documentation/understanding/turrets-wrists.md)
- [Shooters](https://yams.yassrobotics.com/documentation/understanding/shooters.md)
- [Swerve Drive](https://yams.yassrobotics.com/documentation/understanding/swerve-drive.md)
- [Swerve Module](https://yams.yassrobotics.com/documentation/understanding/swerve-drive/swerve-module.md)
- [Swerve Input Stream](https://yams.yassrobotics.com/documentation/understanding/swerve-drive/swerve-input-stream.md)
- [run() vs runTo() Commands](https://yams.yassrobotics.com/documentation/understanding/run-vs-runto.md)
- [Setpoint Methods vs Command Helpers](https://yams.yassrobotics.com/documentation/understanding/setpoint-methods.md)
- [Telemetry](https://yams.yassrobotics.com/documentation/understanding/telemetry.md)
- [DataLog best practices](https://yams.yassrobotics.com/documentation/understanding/datalog-best-practices.md)
- [Live tuning](https://yams.yassrobotics.com/documentation/understanding/integrations.md)
- [EasyCRT](https://yams.yassrobotics.com/documentation/understanding/easycrt.md): Chinese Remainder Theorem! Made easy by 6911

## API Reference

- [Overview](https://yams.yassrobotics.com/api-reference/readme.md)
- [Getting Started](https://yams.yassrobotics.com/api-reference/getting-started.md)
- [Overview](https://yams.yassrobotics.com/api-reference/java-reference/java.md)
- [Mechanisms](https://yams.yassrobotics.com/api-reference/java-reference/mechanisms.md)
- [Arm](https://yams.yassrobotics.com/api-reference/java-reference/mechanisms/arm.md)
- [Elevator](https://yams.yassrobotics.com/api-reference/java-reference/mechanisms/elevator.md)
- [Pivot](https://yams.yassrobotics.com/api-reference/java-reference/mechanisms/pivot.md)
- [FlyWheel](https://yams.yassrobotics.com/api-reference/java-reference/mechanisms/flywheel.md)
- [DoubleJointedArm](https://yams.yassrobotics.com/api-reference/java-reference/mechanisms/double-jointed-arm.md)
- [DifferentialMechanism](https://yams.yassrobotics.com/api-reference/java-reference/mechanisms/differential-mechanism.md)
- [Configuration](https://yams.yassrobotics.com/api-reference/java-reference/config.md)
- [ArmConfig](https://yams.yassrobotics.com/api-reference/java-reference/config/arm-config.md)
- [ElevatorConfig](https://yams.yassrobotics.com/api-reference/java-reference/config/elevator-config.md)
- [PivotConfig](https://yams.yassrobotics.com/api-reference/java-reference/config/pivot-config.md)
- [FlyWheelConfig](https://yams.yassrobotics.com/api-reference/java-reference/config/flywheel-config.md)
- [DifferentialMechanismConfig](https://yams.yassrobotics.com/api-reference/java-reference/config/differential-mechanism-config.md)
- [SensorConfig](https://yams.yassrobotics.com/api-reference/java-reference/config/sensor-config.md)
- [Motor Controllers](https://yams.yassrobotics.com/api-reference/java-reference/motor-controllers.md)
- [SmartMotorController](https://yams.yassrobotics.com/api-reference/java-reference/motor-controllers/smart-motor-controller.md)
- [SmartMotorControllerConfig](https://yams.yassrobotics.com/api-reference/java-reference/motor-controllers/smart-motor-controller-config.md)
- [SmartMotorControllerTelemetryConfig](https://yams.yassrobotics.com/api-reference/java-reference/motor-controllers/smart-motor-controller-telemetry-config.md)
- [SparkWrapper](https://yams.yassrobotics.com/api-reference/java-reference/motor-controllers/spark-wrapper.md)
- [Talon Wrapper](https://yams.yassrobotics.com/api-reference/java-reference/motor-controllers/talonfx-wrapper.md)
- [Swerve Drive](https://yams.yassrobotics.com/api-reference/java-reference/swerve.md)
- [SwerveDrive](https://yams.yassrobotics.com/api-reference/java-reference/swerve/swerve-drive.md)
- [SwerveModule](https://yams.yassrobotics.com/api-reference/java-reference/swerve/swerve-module.md)
- [SwerveDriveConfig](https://yams.yassrobotics.com/api-reference/java-reference/swerve/swerve-drive-config.md)
- [SwerveModuleConfig](https://yams.yassrobotics.com/api-reference/java-reference/swerve/swerve-module-config.md)
- [SwerveInputStream](https://yams.yassrobotics.com/api-reference/java-reference/swerve/swerve-input-stream.md)
- [Gearing](https://yams.yassrobotics.com/api-reference/java-reference/gearing.md)
- [GearBox](https://yams.yassrobotics.com/api-reference/java-reference/gearing/gearbox.md)
- [Sprocket](https://yams.yassrobotics.com/api-reference/java-reference/gearing/sprocket.md)
- [MechanismGearing](https://yams.yassrobotics.com/api-reference/java-reference/gearing/mechanism-gearing.md)
- [Math & Control](https://yams.yassrobotics.com/api-reference/java-reference/math.md)
- [SmartMath](https://yams.yassrobotics.com/api-reference/java-reference/math/smart-math.md)
- [ExponentialProfilePIDController](https://yams.yassrobotics.com/api-reference/java-reference/math/exponential-profile-pid-controller.md)
- [LQRConfig](https://yams.yassrobotics.com/api-reference/java-reference/math/lqr-config.md)
- [LQRController](https://yams.yassrobotics.com/api-reference/java-reference/math/lqr-controller.md)
- [DerivativeTimeFilter](https://yams.yassrobotics.com/api-reference/java-reference/math/derivative-time-filter.md)
- [Units & Utilities](https://yams.yassrobotics.com/api-reference/java-reference/units.md)
- [YUnits](https://yams.yassrobotics.com/api-reference/java-reference/units/yunits.md)
- [EasyCRT](https://yams.yassrobotics.com/api-reference/java-reference/units/easy-crt.md)
- [Simulation](https://yams.yassrobotics.com/api-reference/java-reference/sensor.md)
- [BatterySim](https://yams.yassrobotics.com/api-reference/java-reference/sensor/battery-sim.md)
- [Exceptions](https://yams.yassrobotics.com/api-reference/java-reference/exceptions.md)
- [Overview](https://yams.yassrobotics.com/api-reference/c++-reference/cpp.md)
- [Mechanisms](https://yams.yassrobotics.com/api-reference/c++-reference/mechanisms.md)
- [Arm](https://yams.yassrobotics.com/api-reference/c++-reference/mechanisms/arm.md)
- [Elevator](https://yams.yassrobotics.com/api-reference/c++-reference/mechanisms/elevator.md)
- [Pivot](https://yams.yassrobotics.com/api-reference/c++-reference/mechanisms/pivot.md)
- [FlyWheel](https://yams.yassrobotics.com/api-reference/c++-reference/mechanisms/flywheel.md)
- [Configuration](https://yams.yassrobotics.com/api-reference/c++-reference/config.md)
- [ArmConfig](https://yams.yassrobotics.com/api-reference/c++-reference/config/arm-config.md)
- [ElevatorConfig](https://yams.yassrobotics.com/api-reference/c++-reference/config/elevator-config.md)
- [PivotConfig](https://yams.yassrobotics.com/api-reference/c++-reference/config/pivot-config.md)
- [FlyWheelConfig](https://yams.yassrobotics.com/api-reference/c++-reference/config/flywheel-config.md)
- [SensorConfig](https://yams.yassrobotics.com/api-reference/c++-reference/config/sensorconfig.md)
- [SimSensorConfig](https://yams.yassrobotics.com/api-reference/c++-reference/config/sim-sensor-config.md)
- [Motor Controllers](https://yams.yassrobotics.com/api-reference/c++-reference/motor-controllers.md)
- [SmartMotorController](https://yams.yassrobotics.com/api-reference/c++-reference/motor-controllers/smart-motor-controller.md)
- [SmartMotorControllerConfig](https://yams.yassrobotics.com/api-reference/c++-reference/motor-controllers/smart-motor-controller-config.md)
- [SmartMotorControllerTelemetryConfig](https://yams.yassrobotics.com/api-reference/c++-reference/motor-controllers/smart-motor-controller-telemetry-config.md)
- [TalonFXWrapper / TalonFXSWrapper](https://yams.yassrobotics.com/api-reference/c++-reference/motor-controllers/talonfx-wrapper.md)
- [Swerve Drive](https://yams.yassrobotics.com/api-reference/c++-reference/swerve.md)
- [SwerveDrive](https://yams.yassrobotics.com/api-reference/c++-reference/swerve/swerve-drive.md)
- [SwerveModule](https://yams.yassrobotics.com/api-reference/c++-reference/swerve/swerve-module.md)
- [SwerveDriveConfig](https://yams.yassrobotics.com/api-reference/c++-reference/swerve/swerve-drive-config.md)
- [SwerveModuleConfig](https://yams.yassrobotics.com/api-reference/c++-reference/swerve/swerve-module-config.md)
- [SwerveInputStream](https://yams.yassrobotics.com/api-reference/c++-reference/swerve/swerve-input-stream.md)
- [Gearing](https://yams.yassrobotics.com/api-reference/c++-reference/gearing.md)
- [GearBox](https://yams.yassrobotics.com/api-reference/c++-reference/gearing/gearbox.md)
- [Sprocket](https://yams.yassrobotics.com/api-reference/c++-reference/gearing/sprocket.md)
- [MechanismGearing](https://yams.yassrobotics.com/api-reference/c++-reference/gearing/mechanism-gearing.md)
- [Math & Control](https://yams.yassrobotics.com/api-reference/c++-reference/math.md)
- [LQRConfig](https://yams.yassrobotics.com/api-reference/c++-reference/math/lqr-config.md)
- [LQRController](https://yams.yassrobotics.com/api-reference/c++-reference/math/lqr-controller.md)
- [DerivativeTimeFilter](https://yams.yassrobotics.com/api-reference/c++-reference/math/derivative-time-filter.md)
- [Units & Utilities](https://yams.yassrobotics.com/api-reference/c++-reference/units.md)
- [EasyCRT](https://yams.yassrobotics.com/api-reference/c++-reference/units/easy-crt.md)
- [Simulation](https://yams.yassrobotics.com/api-reference/c++-reference/sensor.md)
- [BatterySim](https://yams.yassrobotics.com/api-reference/c++-reference/sensor/battery-sim.md)
- [Exceptions](https://yams.yassrobotics.com/api-reference/c++-reference/exceptions.md)
- [Overview](https://yams.yassrobotics.com/api-reference/guides/guides.md)
- [Configuring a Motor Controller](https://yams.yassrobotics.com/api-reference/guides/configuring-a-motor.md)
- [Building an Arm Subsystem](https://yams.yassrobotics.com/api-reference/guides/building-an-arm.md)
- [Building an Elevator Subsystem](https://yams.yassrobotics.com/api-reference/guides/building-an-elevator.md)
- [Building a Flywheel Subsystem](https://yams.yassrobotics.com/api-reference/guides/building-a-flywheel.md)
- [Setting Up Swerve Drive](https://yams.yassrobotics.com/api-reference/guides/setting-up-swerve.md)
- [Building Positional Mechanisms (C++)](https://yams.yassrobotics.com/api-reference/guides/building-mechanisms-cpp.md)
- [Building a Flywheel Subsystem (C++)](https://yams.yassrobotics.com/api-reference/guides/building-a-flywheel-cpp.md)
- [Setting Up Swerve Drive (C++)](https://yams.yassrobotics.com/api-reference/guides/setting-up-swerve-cpp.md)
- [Using YAMS Sensors](https://yams.yassrobotics.com/api-reference/guides/using-yams-sensors.md)
- [Simulation](https://yams.yassrobotics.com/api-reference/guides/simulation.md)

## Changelog

- [Changelog](https://yams.yassrobotics.com/changelog/readme.md): New updates and improvements
