Table of contents Welcome to Yet Another Swerve Document Overview What we do Our Features Telemetry Simulation Lock Pose Max Speed Chassis Speed Discretization Vision Odometry Heading Correction Auto-centering Modules Offset Offloading Cosine Compensation Module Auto-synchronization Angular Velocity Compensation Changelog Java API Example Code Config Generator 💸 Donations Discord Fundamentals Swerve Drive Swerve Modules Bringing up swerve Preface Swerve Information Check your gyroscope Check your motors Creating your first configuration Configuring YAGSL Getting to know your robot Gear Ratio Dependency Installation Configuration Swerve Drive Configuration Physical Properties Configuration PIDF Properties Configuration PIDF Swerve Module Configuration Controller Properties Configuration Device Configuration Code Setup Standard Conversion Factors How to tune PIDF When to invert? Flowcharts The eight steps Swerve Drive Drift SparkMAX Common Problems Verifying your Module Locations Devices Gyroscope NavX Pigeon Pigeon 2.0 ADXRS450 ADIS16448 ADIS16470 Motor Controllers SparkMAX SparkFlex TalonFX Absolute Encoders Analytics and Debugging FRC Web Components Advantage Scope Product Guides Java API PathPlanner ❌ Tuning PID with REV Hardware Client ❌ Drive Code Legacy Documentation Documentation JSON Swerve Drive Swerve Module Swerve Module Physical Properties Swerve Module PIDF Properties Controller Properties Tested configurations