diff --git a/y2023/vision/camera_reader.cc b/y2023/vision/camera_reader.cc
index 7004225..5105e86 100644
--- a/y2023/vision/camera_reader.cc
+++ b/y2023/vision/camera_reader.cc
@@ -23,31 +23,20 @@
 
   media_device->Reset();
 
-  media_device->Enable(
-      media_device->FindLink("ov5647 4-0036", 0, "rkisp1_csi", 0));
-  media_device->Enable(
-      media_device->FindLink("rkisp1_csi", 1, "rkisp1_isp", 0));
-  media_device->Enable(
-      media_device->FindLink("rkisp1_isp", 2, "rkisp1_resizer_selfpath", 0));
-  media_device->Enable(
-      media_device->FindLink("rkisp1_isp", 2, "rkisp1_resizer_mainpath", 0));
-
-  media_device->FindEntity("ov5647 4-0036")
-      ->pads()[0]
-      ->SetSubdevFormat(1296, 972, MEDIA_BUS_FMT_SBGGR10_1X10);
+  Entity *ov5647 = media_device->FindEntity("ov5647 4-0036");
+  ov5647->pads()[0]->SetSubdevFormat(1296, 972, MEDIA_BUS_FMT_SBGGR10_1X10);
 
   Entity *rkisp1_csi = media_device->FindEntity("rkisp1_csi");
   rkisp1_csi->pads()[0]->SetSubdevFormat(1296, 972, MEDIA_BUS_FMT_SBGGR10_1X10);
   rkisp1_csi->pads()[1]->SetSubdevFormat(1296, 972, MEDIA_BUS_FMT_SBGGR10_1X10);
 
   // TODO(austin): Should we set this on the link?
-  // TODO(austin): Need to update crop too.
   Entity *rkisp1_isp = media_device->FindEntity("rkisp1_isp");
-  rkisp1_isp->pads(0)->SetSubdevCrop(1296, 972);
   rkisp1_isp->pads(0)->SetSubdevFormat(1296, 972, MEDIA_BUS_FMT_SBGGR10_1X10);
+  rkisp1_isp->pads(0)->SetSubdevCrop(1296, 972);
 
-  rkisp1_isp->pads(2)->SetSubdevCrop(1296, 972);
   rkisp1_isp->pads(2)->SetSubdevFormat(1296, 972, MEDIA_BUS_FMT_YUYV8_2X8);
+  rkisp1_isp->pads(2)->SetSubdevCrop(1296, 972);
 
   Entity *rkisp1_resizer_selfpath =
       media_device->FindEntity("rkisp1_resizer_selfpath");
@@ -61,9 +50,10 @@
       media_device->FindEntity("rkisp1_resizer_mainpath");
   rkisp1_resizer_mainpath->pads(0)->SetSubdevFormat(1296, 972,
                                                     MEDIA_BUS_FMT_YUYV8_2X8);
+  rkisp1_resizer_mainpath->pads(0)->SetSubdevCrop(1296, 972);
+
   rkisp1_resizer_mainpath->pads(1)->SetSubdevFormat(1296 / 2, 972 / 2,
                                                     MEDIA_BUS_FMT_YUYV8_2X8);
-  rkisp1_resizer_mainpath->pads(0)->SetSubdevCrop(1296 / 2, 972 / 2);
 
   Entity *rkisp1_mainpath = media_device->FindEntity("rkisp1_mainpath");
   rkisp1_mainpath->SetFormat(1296 / 2, 972 / 2, V4L2_PIX_FMT_YUV422P);
@@ -71,6 +61,15 @@
   Entity *rkisp1_selfpath = media_device->FindEntity("rkisp1_selfpath");
   rkisp1_selfpath->SetFormat(1296, 972, V4L2_PIX_FMT_YUYV);
 
+  media_device->Enable(
+      media_device->FindLink("ov5647 4-0036", 0, "rkisp1_csi", 0));
+  media_device->Enable(
+      media_device->FindLink("rkisp1_csi", 1, "rkisp1_isp", 0));
+  media_device->Enable(
+      media_device->FindLink("rkisp1_isp", 2, "rkisp1_resizer_selfpath", 0));
+  media_device->Enable(
+      media_device->FindLink("rkisp1_isp", 2, "rkisp1_resizer_mainpath", 0));
+
   aos::FlatbufferDetachedBuffer<aos::Configuration> config =
       aos::configuration::ReadConfig(FLAGS_config);
 
@@ -79,23 +78,12 @@
   event_loop.SetRuntimeRealtimePriority(55);
   event_loop.SetRuntimeAffinity(aos::MakeCpusetFromCpus({2}));
 
-  RockchipV4L2Reader v4l2_reader(&event_loop, event_loop.epoll(),
-                                 rkisp1_selfpath->device());
 
-  // TODO(austin): Figure out exposure and stuff.
-  /*
-  const uint32_t exposure =
-      (FLAGS_use_outdoors ? FLAGS_outdoors_exposure : FLAGS_exposure);
-  if (exposure > 0) {
-    LOG(INFO) << "Setting camera to Manual Exposure mode with exposure = "
-              << exposure << " or " << static_cast<double>(exposure) / 10.0
-              << " ms";
-    v4l2_reader.SetExposure(exposure);
-  } else {
-    LOG(INFO) << "Setting camera to use Auto Exposure";
-    v4l2_reader.UseAutoExposure();
-  }
-  */
+  RockchipV4L2Reader v4l2_reader(&event_loop, event_loop.epoll(),
+                                 rkisp1_selfpath->device(), ov5647->device());
+
+  v4l2_reader.SetGain(1000);
+  v4l2_reader.SetExposure(1000);
 
   event_loop.Run();
 }
