diff --git a/frc971/control_loops/drivetrain/drivetrain.cc b/frc971/control_loops/drivetrain/drivetrain.cc
index e7cfae6..b45f016 100644
--- a/frc971/control_loops/drivetrain/drivetrain.cc
+++ b/frc971/control_loops/drivetrain/drivetrain.cc
@@ -20,7 +20,6 @@
 #include "frc971/shifter_hall_effect.h"
 #include "frc971/wpilib/imu.q.h"
 
-using frc971::sensors::gyro_reading;
 using ::aos::monotonic_clock;
 namespace chrono = ::std::chrono;
 
@@ -39,6 +38,9 @@
           ".frc971.control_loops.drivetrain.localizer_control")),
       imu_values_fetcher_(
           event_loop->MakeFetcher<::frc971::IMUValues>(".frc971.imu_values")),
+      gyro_reading_fetcher_(
+          event_loop->MakeFetcher<::frc971::sensors::GyroReading>(
+              ".frc971.sensors.gyro_reading")),
       localizer_(localizer),
       kf_(dt_config_.make_kf_drivetrain_loop()),
       dt_openloop_(dt_config_, &kf_),
@@ -209,16 +211,16 @@
       }
       break;
     case GyroType::SPARTAN_GYRO:
-      if (gyro_reading.FetchLatest()) {
-        LOG_STRUCT(DEBUG, "using", *gyro_reading.get());
-        last_gyro_rate_ = gyro_reading->velocity;
+      if (gyro_reading_fetcher_.Fetch()) {
+        LOG_STRUCT(DEBUG, "using", *gyro_reading_fetcher_.get());
+        last_gyro_rate_ = gyro_reading_fetcher_->velocity;
         last_gyro_time_ = monotonic_now;
       }
       break;
     case GyroType::FLIPPED_SPARTAN_GYRO:
-      if (gyro_reading.FetchLatest()) {
-        LOG_STRUCT(DEBUG, "using", *gyro_reading.get());
-        last_gyro_rate_ = -gyro_reading->velocity;
+      if (gyro_reading_fetcher_.Fetch()) {
+        LOG_STRUCT(DEBUG, "using", *gyro_reading_fetcher_.get());
+        last_gyro_rate_ = -gyro_reading_fetcher_->velocity;
         last_gyro_time_ = monotonic_now;
       }
       break;
diff --git a/frc971/control_loops/drivetrain/drivetrain.h b/frc971/control_loops/drivetrain/drivetrain.h
index 39d7054..33ff770 100644
--- a/frc971/control_loops/drivetrain/drivetrain.h
+++ b/frc971/control_loops/drivetrain/drivetrain.h
@@ -15,6 +15,7 @@
 #include "frc971/control_loops/drivetrain/polydrivetrain.h"
 #include "frc971/control_loops/drivetrain/splinedrivetrain.h"
 #include "frc971/control_loops/drivetrain/ssdrivetrain.h"
+#include "frc971/queues/gyro.q.h"
 #include "frc971/wpilib/imu.q.h"
 
 namespace frc971 {
@@ -49,6 +50,7 @@
 
   ::aos::Fetcher<LocalizerControl> localizer_control_fetcher_;
   ::aos::Fetcher<::frc971::IMUValues> imu_values_fetcher_;
+  ::aos::Fetcher<::frc971::sensors::GyroReading> gyro_reading_fetcher_;
   LocalizerInterface *localizer_;
 
   StateFeedbackLoop<7, 2, 4> kf_;
diff --git a/frc971/control_loops/drivetrain/drivetrain_lib_test.cc b/frc971/control_loops/drivetrain/drivetrain_lib_test.cc
index 412b783..3f20554 100644
--- a/frc971/control_loops/drivetrain/drivetrain_lib_test.cc
+++ b/frc971/control_loops/drivetrain/drivetrain_lib_test.cc
@@ -57,7 +57,6 @@
         localizer_(dt_config_),
         drivetrain_motor_(dt_config_, &event_loop_, &localizer_),
         drivetrain_motor_plant_(&simulation_event_loop_, dt_config_) {
-    ::frc971::sensors::gyro_reading.Clear();
     set_battery_voltage(12.0);
   }
 
@@ -142,7 +141,7 @@
     } while (!my_drivetrain_queue_.status->trajectory_logging.is_executed);
   }
 
-  virtual ~DrivetrainTest() { ::frc971::sensors::gyro_reading.Clear(); }
+  virtual ~DrivetrainTest() {}
 
  private:
   ::std::vector<double> actual_x_;
diff --git a/frc971/control_loops/drivetrain/drivetrain_test_lib.cc b/frc971/control_loops/drivetrain/drivetrain_test_lib.cc
index 5df1666..a5cf6af 100644
--- a/frc971/control_loops/drivetrain/drivetrain_test_lib.cc
+++ b/frc971/control_loops/drivetrain/drivetrain_test_lib.cc
@@ -93,7 +93,9 @@
                            ".frc971.control_loops.drivetrain_queue.position",
                            ".frc971.control_loops.drivetrain_queue.output",
                            ".frc971.control_loops.drivetrain_queue.status"),
-      gyro_reading_(::frc971::sensors::gyro_reading.name()),
+      gyro_reading_sender_(
+          event_loop->MakeSender<::frc971::sensors::GyroReading>(
+              ".frc971.sensors.gyro_reading")),
       velocity_drivetrain_(
           ::std::unique_ptr<StateFeedbackLoop<2, 2, 2, double,
                                               StateFeedbackHybridPlant<2, 2, 2>,
@@ -131,8 +133,7 @@
   }
 
   {
-    ::aos::ScopedMessagePtr<::frc971::sensors::GyroReading> gyro =
-        gyro_reading_.MakeMessage();
+    auto gyro = gyro_reading_sender_.MakeMessage();
     gyro->angle =
         (right_encoder - left_encoder) / (dt_config_.robot_radius * 2.0);
     gyro->velocity = (drivetrain_plant_.X(3, 0) - drivetrain_plant_.X(1, 0)) /
diff --git a/frc971/control_loops/drivetrain/drivetrain_test_lib.h b/frc971/control_loops/drivetrain/drivetrain_test_lib.h
index 7914b50..cdde176 100644
--- a/frc971/control_loops/drivetrain/drivetrain_test_lib.h
+++ b/frc971/control_loops/drivetrain/drivetrain_test_lib.h
@@ -82,7 +82,7 @@
   DrivetrainPlant drivetrain_plant_;
 
   ::frc971::control_loops::DrivetrainQueue my_drivetrain_queue_;
-  ::aos::Queue<::frc971::sensors::GyroReading> gyro_reading_;
+  ::aos::Sender<::frc971::sensors::GyroReading> gyro_reading_sender_;
 
   // This state is [x, y, theta, left_velocity, right_velocity].
   ::Eigen::Matrix<double, 5, 1> state_ = ::Eigen::Matrix<double, 5, 1>::Zero();
diff --git a/frc971/control_loops/drivetrain/replay_drivetrain.cc b/frc971/control_loops/drivetrain/replay_drivetrain.cc
index db058b8..6749329 100644
--- a/frc971/control_loops/drivetrain/replay_drivetrain.cc
+++ b/frc971/control_loops/drivetrain/replay_drivetrain.cc
@@ -26,7 +26,6 @@
       replayer.ProcessFile(argv[i]);
     }
   }
-  ::frc971::sensors::gyro_reading.Clear();
   ::frc971::control_loops::drivetrain_queue.goal.Clear();
   ::frc971::control_loops::drivetrain_queue.status.Clear();
   ::frc971::control_loops::drivetrain_queue.position.Clear();
