         if (this_change != 0) {
           if (this_change * last_brightness_change_direction == -1) {
             last_brightness_reach_end_time = last_brightness_change_time;
+            /*
+            if (this_change == -1) {
+              Serial.print(" +");
+            } else {
+              Serial.print(" -");
+            }
+            Serial.print(last_unchanged_brightness_value);
+            Serial.print("->");
+            Serial.print(brightness);
+            Serial.print("\n");
+            */
           }
           last_unchanged_brightness_value = brightness;
           last_brightness_change_direction = this_change;

    tracking_axis = NULL;
    state = S_CALIBRATE;
  }
  
  switch (state) {
    // Wait for a period where there is no motion above

        }
  
        if (last_gyroscope_settling_time != 0) {
          //Serial.print("Stopped\n");
          
          // We have dropped to a stop, so we need to set the trigger for
          // moving fast again and make sure we actually move before the
          // last gyro value registers a move.
          have_moved_fast = false;
          last_gyroscope_value = 0;

          // Flush the change status so that we have to get a brightness change
          // in one direction followed by a change in the other starting now.
          last_brightness_reach_end_time = 0;
          last_brightness_change_direction = 0;
          state = S_REVERSE_BRIGHTNESS;
