diff --git a/y2012/control_loops/accessories/BUILD b/y2012/control_loops/accessories/BUILD
index 63f02dd..65a6d1d 100644
--- a/y2012/control_loops/accessories/BUILD
+++ b/y2012/control_loops/accessories/BUILD
@@ -1,25 +1,23 @@
-package(default_visibility = ['//visibility:public'])
+package(default_visibility = ["//visibility:public"])
 
-load('//aos/build:queues.bzl', 'queue_library')
+load("@com_github_google_flatbuffers//:build_defs.bzl", "flatbuffer_cc_library")
 
 cc_binary(
-  name = 'accessories',
-  srcs = [
-    'accessories.cc',
-  ],
-  deps = [
-    ':accessories_queue',
-    '//aos:init',
-    '//aos/controls:control_loop',
-  ],
+    name = "accessories",
+    srcs = [
+        "accessories.cc",
+    ],
+    deps = [
+        ":accessories_fbs",
+        "//aos:init",
+        "//aos/controls:control_loop",
+        "//aos/controls:control_loop_fbs",
+    ],
 )
 
-queue_library(
-  name = 'accessories_queue',
-  srcs = [
-    'accessories.q',
-  ],
-  deps = [
-    '//aos/controls:control_loop_queues',
-  ],
+flatbuffer_cc_library(
+    name = "accessories_fbs",
+    srcs = [
+        "accessories.fbs",
+    ],
 )
diff --git a/y2012/control_loops/accessories/accessories.cc b/y2012/control_loops/accessories/accessories.cc
index 9d96840..726aede 100644
--- a/y2012/control_loops/accessories/accessories.cc
+++ b/y2012/control_loops/accessories/accessories.cc
@@ -1,28 +1,43 @@
-#include "y2012/control_loops/accessories/accessories.q.h"
+#include "y2012/control_loops/accessories/accessories_generated.h"
 
+#include "aos/events/shm_event_loop.h"
 #include "aos/init.h"
 #include "aos/controls/control_loop.h"
+#include "aos/controls/control_loops_generated.h"
 
 namespace y2012 {
 namespace control_loops {
 namespace accessories {
 
 class AccessoriesLoop : public ::aos::controls::ControlLoop<
-                            ::y2012::control_loops::AccessoriesQueue> {
+                            Message, ::aos::control_loops::Position,
+                            ::aos::control_loops::Status, Message> {
  public:
   explicit AccessoriesLoop(
       ::aos::EventLoop *event_loop,
       const ::std::string &name = ".y2012.control_loops.accessories_queue")
-      : ::aos::controls::ControlLoop<::y2012::control_loops::AccessoriesQueue>(
+      : ::aos::controls::ControlLoop<Message, ::aos::control_loops::Position,
+                                     ::aos::control_loops::Status, Message>(
             event_loop, name) {}
 
   void RunIteration(
-      const ::y2012::control_loops::AccessoriesQueue::Message *goal,
+      const Message *goal,
       const ::aos::control_loops::Position * /*position*/,
-      ::y2012::control_loops::AccessoriesQueue::Message *output,
-      ::aos::control_loops::Status * /*status*/) override {
+      ::aos::Sender<Message>::Builder *output,
+      ::aos::Sender<::aos::control_loops::Status>::Builder * /*status*/) override {
     if (output) {
-      *output = *goal;
+      //*output = *goal;
+      Message::Builder output_builder = output->MakeBuilder<Message>();
+      flatbuffers::Offset<flatbuffers::Vector<uint8_t>> solenoid_offset =
+          output->fbb()->template CreateVector<uint8_t>(
+              goal->solenoids()->data(), 3);
+      output_builder.add_solenoids(solenoid_offset);
+      flatbuffers::Offset<flatbuffers::Vector<double>> stick_offset =
+          output->fbb()->template CreateVector<double>(
+              goal->sticks()->data(), 2);
+      output_builder.add_sticks(stick_offset);
+
+      output_builder.Finish();
     }
   }
 };
@@ -34,7 +49,10 @@
 int main() {
   ::aos::InitNRT(true);
 
-  ::aos::ShmEventLoop event_loop;
+  aos::FlatbufferDetachedBuffer<aos::Configuration> config =
+      aos::configuration::ReadConfig("config.json");
+
+  ::aos::ShmEventLoop event_loop(&config.message());
   ::y2012::control_loops::accessories::AccessoriesLoop accessories(&event_loop);
 
   event_loop.Run();
diff --git a/y2012/control_loops/accessories/accessories.fbs b/y2012/control_loops/accessories/accessories.fbs
new file mode 100644
index 0000000..1174b55
--- /dev/null
+++ b/y2012/control_loops/accessories/accessories.fbs
@@ -0,0 +1,8 @@
+namespace y2012.control_loops.accessories;
+
+table Message {
+  solenoids:[bool]; // Exactly 3 values
+  sticks:[double]; // Exactly 2 values
+}
+
+root_type Message;
diff --git a/y2012/control_loops/accessories/accessories.q b/y2012/control_loops/accessories/accessories.q
deleted file mode 100644
index 6427d49..0000000
--- a/y2012/control_loops/accessories/accessories.q
+++ /dev/null
@@ -1,17 +0,0 @@
-package y2012.control_loops;
-
-import "aos/controls/control_loops.q";
-
-// Published on ".y2012.control_loops.accessories_queue"
-queue_group AccessoriesQueue {
-  implements aos.control_loops.ControlLoop;
-  message Message {
-    bool[3] solenoids;
-    double[2] sticks;
-  };
-
-  queue Message goal;
-  queue .aos.control_loops.Position position;
-  queue Message output;
-  queue .aos.control_loops.Status status;
-};
diff --git a/y2012/control_loops/drivetrain/BUILD b/y2012/control_loops/drivetrain/BUILD
index 3be1e9a..35d596a 100644
--- a/y2012/control_loops/drivetrain/BUILD
+++ b/y2012/control_loops/drivetrain/BUILD
@@ -1,7 +1,5 @@
 package(default_visibility = ["//visibility:public"])
 
-load("//aos/build:queues.bzl", "queue_library")
-
 genrule(
     name = "genrule_drivetrain",
     outs = [
@@ -78,7 +76,7 @@
     deps = [
         ":drivetrain_base",
         "//aos:init",
-        "//aos/events:shm-event-loop",
+        "//aos/events:shm_event_loop",
         "//frc971/control_loops/drivetrain:drivetrain_lib",
     ],
 )
diff --git a/y2012/control_loops/drivetrain/drivetrain_main.cc b/y2012/control_loops/drivetrain/drivetrain_main.cc
index 75153cd..735f13f 100644
--- a/y2012/control_loops/drivetrain/drivetrain_main.cc
+++ b/y2012/control_loops/drivetrain/drivetrain_main.cc
@@ -1,6 +1,6 @@
 #include "aos/init.h"
 
-#include "aos/events/shm-event-loop.h"
+#include "aos/events/shm_event_loop.h"
 #include "frc971/control_loops/drivetrain/drivetrain.h"
 #include "y2012/control_loops/drivetrain/drivetrain_base.h"
 
@@ -9,7 +9,10 @@
 int main() {
   ::aos::InitNRT(true);
 
-  ::aos::ShmEventLoop event_loop;
+  aos::FlatbufferDetachedBuffer<aos::Configuration> config =
+      aos::configuration::ReadConfig("config.json");
+
+  ::aos::ShmEventLoop event_loop(&config.message());
   ::frc971::control_loops::drivetrain::DeadReckonEkf localizer(
       &event_loop, ::y2012::control_loops::drivetrain::GetDrivetrainConfig());
   DrivetrainLoop drivetrain(
