diff --git a/y2019/wpilib_interface.cc b/y2019/wpilib_interface.cc
index 29f110a..b910a7f 100644
--- a/y2019/wpilib_interface.cc
+++ b/y2019/wpilib_interface.cc
@@ -20,6 +20,7 @@
 #undef ERROR
 
 #include "aos/commonmath.h"
+#include "aos/events/event-loop.h"
 #include "aos/events/shm-event-loop.h"
 #include "aos/init.h"
 #include "aos/logging/logging.h"
@@ -307,7 +308,12 @@
 
 class CameraReader {
  public:
-  CameraReader() = default;
+  CameraReader(::aos::EventLoop *event_loop)
+      : camera_frame_sender_(
+            event_loop
+                ->MakeSender<::y2019::control_loops::drivetrain::CameraFrame>(
+                    ".y2019.control_loops.drivetrain.camera_frames")) {}
+
   CameraReader(const CameraReader &) = delete;
   CameraReader &operator=(const CameraReader &) = delete;
 
@@ -366,7 +372,7 @@
 
     const auto now = aos::monotonic_clock::now();
     for (const auto &received : unpacked->frames) {
-      auto to_send = control_loops::drivetrain::camera_frames.MakeMessage();
+      auto to_send = camera_frame_sender_.MakeMessage();
       // Add an extra 10ms delay to account for unmodeled delays that Austin
       // thinks exists.
       to_send->timestamp =
@@ -420,6 +426,9 @@
   }
 
  private:
+  ::aos::Sender<::y2019::control_loops::drivetrain::CameraFrame>
+      camera_frame_sender_;
+
   frc::SPI *spi_ = nullptr;
   ::std::unique_ptr<frc::SPI> dummy_spi_;
 
@@ -709,7 +718,7 @@
 
     ::std::thread reader_thread(::std::ref(reader));
 
-    CameraReader camera_reader;
+    CameraReader camera_reader(&event_loop);
     frc::SPI camera_spi(frc::SPI::Port::kOnboardCS3);
     camera_reader.set_spi(&camera_spi);
     camera_reader.SetDummySPI(frc::SPI::Port::kOnboardCS2);
