Claw now zeros, though slowly.  Not sure about high speeds yet and the constants seem wrong.
diff --git a/frc971/control_loops/hall_effect_tracker.h b/frc971/control_loops/hall_effect_tracker.h
index 79d14af..7e6617c 100644
--- a/frc971/control_loops/hall_effect_tracker.h
+++ b/frc971/control_loops/hall_effect_tracker.h
@@ -7,6 +7,7 @@
 
 namespace frc971 {
 
+// TODO(brians): Have a Reset() for when the cape resets.
 class HallEffectTracker {
  public:
   int32_t get_posedges() const { return posedges_.count(); }
@@ -26,23 +27,38 @@
     negedges_.update(position.negedge_count);
   }
 
+  void Reset() {
+    posedges_.Reset();
+    negedges_.Reset();
+  }
+
+  bool ready() { return posedges_.ready() && negedges_.ready(); }
+
  private:
   class {
    public:
     void update(int32_t count) {
+      if (first_) {
+        count_ = count;
+        LOG(DEBUG, "First time through the hall effect, resetting\n");
+      }
       previous_count_ = count_;
       count_ = count;
+      first_ = false;
     }
 
-    bool count_changed() const {
-      return previous_count_ != count_;
-    }
+    void Reset() { first_ = true; }
+
+    bool count_changed() const { return !first_ && previous_count_ != count_; }
 
     int32_t count() const { return count_; }
 
+    bool ready() { return !first_; }
+
    private:
     int32_t count_ = 0;
     int32_t previous_count_ = 0;
+    bool first_ = true;
   } posedges_, negedges_;
   bool value_ = false;
 };