diff --git a/frc971/control_loops/claw/claw.cc b/frc971/control_loops/claw/claw.cc
index 057c323..5b78a80 100644
--- a/frc971/control_loops/claw/claw.cc
+++ b/frc971/control_loops/claw/claw.cc
@@ -249,6 +249,7 @@
   status->zeroed = state_ == RUNNING;
   status->estopped = state_ == ESTOP;
   status->state = state_;
+  zeroing::PopulateEstimatorState(claw_estimator_, &status->zeroing_state);
 
   status->angle = claw_loop_->X_hat(0, 0);
   if (output) {
diff --git a/frc971/control_loops/claw/claw.q b/frc971/control_loops/claw/claw.q
index 00c38c4..0105441 100644
--- a/frc971/control_loops/claw/claw.q
+++ b/frc971/control_loops/claw/claw.q
@@ -45,6 +45,7 @@
     bool estopped;
     // The internal state of the claw state machine.
     uint32_t state;
+    EstimatorState zeroing_state;
 
     // Angle of wrist joint.
     double angle;
diff --git a/frc971/control_loops/control_loops.q b/frc971/control_loops/control_loops.q
index 03929a2..bf2b27a 100644
--- a/frc971/control_loops/control_loops.q
+++ b/frc971/control_loops/control_loops.q
@@ -21,6 +21,16 @@
   uint32_t index_pulses;
 };
 
+// The internal state of a zeroing estimator.
+struct EstimatorState {
+  // If true, there has been a fatal error for the estimator.
+  bool error;
+  // If the joint has seen an index pulse and is zeroed.
+  bool zeroed;
+  // The estimated position of the joint.
+  double position;
+};
+
 // A left/right pair of PotAndIndexPositions.
 struct PotAndIndexPair {
   PotAndIndexPosition left;
diff --git a/frc971/control_loops/fridge/fridge.cc b/frc971/control_loops/fridge/fridge.cc
index b0ee642..7596a75 100644
--- a/frc971/control_loops/fridge/fridge.cc
+++ b/frc971/control_loops/fridge/fridge.cc
@@ -218,15 +218,6 @@
   return arm_zeroing_velocity_;
 }
 
-namespace {
-void PopulateEstimatorState(const zeroing::ZeroingEstimator &estimator,
-                            EstimatorState *state) {
-  state->error = estimator.error();
-  state->zeroed = estimator.zeroed();
-  state->position = estimator.position();
-}
-}  // namespace
-
 void Fridge::RunIteration(const control_loops::FridgeQueue::Goal *unsafe_goal,
                           const control_loops::FridgeQueue::Position *position,
                           control_loops::FridgeQueue::Output *output,
@@ -518,11 +509,13 @@
     status->grabbers.bottom_front = false;
     status->grabbers.bottom_back = false;
   }
-  PopulateEstimatorState(left_arm_estimator_, &status->left_arm_state);
-  PopulateEstimatorState(right_arm_estimator_, &status->right_arm_state);
-  PopulateEstimatorState(left_elevator_estimator_,
+  zeroing::PopulateEstimatorState(left_arm_estimator_,
+                                  &status->left_arm_state);
+  zeroing::PopulateEstimatorState(right_arm_estimator_,
+                                  &status->right_arm_state);
+  zeroing::PopulateEstimatorState(left_elevator_estimator_,
                          &status->left_elevator_state);
-  PopulateEstimatorState(right_elevator_estimator_,
+  zeroing::PopulateEstimatorState(right_elevator_estimator_,
                          &status->right_elevator_state);
   status->estopped = (state_ == ESTOP);
   status->state = state_;
diff --git a/frc971/control_loops/fridge/fridge.q b/frc971/control_loops/fridge/fridge.q
index cf69efc..09d2a42 100644
--- a/frc971/control_loops/fridge/fridge.q
+++ b/frc971/control_loops/fridge/fridge.q
@@ -12,16 +12,6 @@
   bool bottom_back;
 };
 
-// The internal state of the zeroing estimator.
-struct EstimatorState {
-  // If true, there has been a fatal error for the estimator.
-  bool error;
-  // If the joint has seen an index pulse and is zeroed.
-  bool zeroed;
-  // The estimated position of the joint.
-  double position;
-};
-
 queue_group FridgeQueue {
   implements aos.control_loops.ControlLoop;
 
diff --git a/frc971/zeroing/zeroing.cc b/frc971/zeroing/zeroing.cc
index d45c49f..9b2347d 100644
--- a/frc971/zeroing/zeroing.cc
+++ b/frc971/zeroing/zeroing.cc
@@ -6,6 +6,13 @@
 namespace frc971 {
 namespace zeroing {
 
+void PopulateEstimatorState(const zeroing::ZeroingEstimator &estimator,
+                            EstimatorState *state) {
+  state->error = estimator.error();
+  state->zeroed = estimator.zeroed();
+  state->position = estimator.position();
+}
+
 ZeroingEstimator::ZeroingEstimator(
     const constants::Values::ZeroingConstants& constants) {
   index_diff_ = constants.index_difference;
diff --git a/frc971/zeroing/zeroing.h b/frc971/zeroing/zeroing.h
index 9f9329a..7fa2262 100644
--- a/frc971/zeroing/zeroing.h
+++ b/frc971/zeroing/zeroing.h
@@ -104,6 +104,11 @@
   bool error_;
 };
 
+// Populates an EstimatorState struct with information from the zeroing
+// estimator.
+void PopulateEstimatorState(const ZeroingEstimator &estimator,
+                            EstimatorState *state);
+
 }  // namespace zeroing
 }  // namespace frc971
 
