diff --git a/y2017/control_loops/turret/BUILD b/y2017/control_loops/turret/BUILD
new file mode 100644
index 0000000..9f36909
--- /dev/null
+++ b/y2017/control_loops/turret/BUILD
@@ -0,0 +1,13 @@
+load('/aos/build/queues', 'queue_library')
+
+queue_library(
+  name = 'turret_queue',
+  srcs = [
+    'turret.q',
+  ],
+  deps = [
+    '//aos/common/controls:control_loop_queues',
+    '//frc971/control_loops:queues',
+  ],
+  visibility = ['//visibility:public'],
+)
diff --git a/y2017/control_loops/turret/turret.q b/y2017/control_loops/turret/turret.q
new file mode 100644
index 0000000..0de50c6
--- /dev/null
+++ b/y2017/control_loops/turret/turret.q
@@ -0,0 +1,85 @@
+package y2017.control_loops;
+
+import "aos/common/controls/control_loops.q";
+import "frc971/control_loops/control_loops.q";
+
+struct JointState {
+  // Angle of the joint in radians.
+  float angle;
+  // Angular velocity of the joint in radians/second.
+  float angular_velocity;
+  // Profiled goal angle of the joint in radians.
+  float goal_angle;
+  // Profiled goal angular velocity of the joint in radians/second.
+  float goal_angular_velocity;
+  // Unprofiled goal angle of the joint in radians.
+  float unprofiled_goal_angle;
+  // Unprofiled goal angular velocity of the joint in radians/second.
+  float unprofiled_goal_angular_velocity;
+
+  // The estimated voltage error.
+  float voltage_error;
+
+  // The calculated velocity with delta x/delta t
+  float calculated_velocity;
+
+  // Components of the control loop output
+  float position_power;
+  float velocity_power;
+  float feedforwards_power;
+
+  // State of the estimator.
+  .frc971.EstimatorState estimator_state;
+};
+
+queue_group TurretQueue {
+  implements aos.control_loops.ControlLoop;
+
+  message Goal {
+    // An azimuth angle of zero means the turrent faces toward the front of the
+    // robot where the intake is located. The angle increases when the turret
+    // turns clockwise, and decreases when the turrent turns counter-clockwise.
+    // These are from a top view above the robot.
+    double angle_azimuth;
+
+    // TODO(phil): Define how we control the vertical angle of the turret: is
+    // it a distance or an angle, etc.
+    double angle_altitude;
+
+    // Caps on velocity/acceleration for profiling. 0 for the default.
+    .frc971.ProfileParameters profile_params_turret;
+  };
+
+  message Status {
+    // Is the turret zeroed?
+    bool zeroed;
+
+    // If true, we have aborted.
+    bool estopped;
+
+    // Estimate angles and angular velocities.
+    JointState azimuth;
+    JointState altitude;
+  };
+
+  message Position {
+    // The sensor readings for the azimuth. The units and sign are defined the
+    // same as what's in the Goal message.
+    .frc971.PotAndAbsolutePosition azimuth;
+
+    // TODO(phil): How are we measuring that other aspect of the turret (i.e.
+    // the "altitude") ?
+  };
+
+  message Output {
+    float voltage_azimuth;
+    float voltage_altitude;
+  };
+
+  queue Goal goal;
+  queue Position position;
+  queue Output output;
+  queue Status status;
+};
+
+queue_group TurretQueue turret_queue;
