diff --git a/y2023/control_loops/python/wrist.py b/y2023/control_loops/python/wrist.py
index fe2fcf6..3ad404c 100644
--- a/y2023/control_loops/python/wrist.py
+++ b/y2023/control_loops/python/wrist.py
@@ -41,13 +41,13 @@
         return
 
     # Write the generated constants out to a file.
-    if len(argv) != 5:
+    if len(argv) != 7:
         glog.fatal(
             'Expected .h file name and .cc file name for the wrist and integral wrist.'
         )
     else:
         namespaces = ['y2023', 'control_loops', 'superstructure', 'wrist']
-        angular_system.WriteAngularSystem(kWrist, argv[1:3], argv[3:5],
+        angular_system.WriteAngularSystem(kWrist, argv[1:4], argv[4:7],
                                           namespaces)
 
 
diff --git a/y2023/control_loops/superstructure/superstructure.cc b/y2023/control_loops/superstructure/superstructure.cc
index e11092a..0ee1061 100644
--- a/y2023/control_loops/superstructure/superstructure.cc
+++ b/y2023/control_loops/superstructure/superstructure.cc
@@ -34,7 +34,8 @@
           event_loop->MakeFetcher<aos::JoystickState>("/aos")),
       arm_(values_, arm_trajectories.message()),
       end_effector_(),
-      wrist_(values->wrist.subsystem_params) {
+      wrist_(constants_fetcher_.constants().wrist(),
+             constants_fetcher_.constants().robot()->wrist_zero()) {
   event_loop->SetRuntimeRealtimePriority(30);
 }
 
diff --git a/y2023/control_loops/superstructure/superstructure_lib_test.cc b/y2023/control_loops/superstructure/superstructure_lib_test.cc
index d4fa653..5973eee 100644
--- a/y2023/control_loops/superstructure/superstructure_lib_test.cc
+++ b/y2023/control_loops/superstructure/superstructure_lib_test.cc
@@ -175,15 +175,23 @@
                            chrono::nanoseconds dt)
       : event_loop_(event_loop),
         dt_(dt),
+        constants_fetcher_(event_loop),
         arm_(values->arm_proximal.zeroing, values->arm_distal.zeroing,
              values->roll_joint.zeroing, dt_),
         wrist_(new CappedTestPlant(wrist::MakeWristPlant()),
-               PositionSensorSimulator(
-                   values->wrist.subsystem_params.zeroing_constants
-                       .one_revolution_distance),
-               values->wrist, constants::Values::kCompWristRange(),
-               values->wrist.subsystem_params.zeroing_constants
-                   .measured_absolute_position,
+               PositionSensorSimulator(constants_fetcher_.constants()
+                                           .robot()
+                                           ->wrist_zero()
+                                           ->one_revolution_distance()),
+               {.subsystem_params =
+                    {constants_fetcher_.constants().wrist(),
+                     constants_fetcher_.constants().robot()->wrist_zero()}},
+               frc971::constants::Range::FromFlatbuffer(
+                   constants_fetcher_.constants().wrist()->range()),
+               constants_fetcher_.constants()
+                   .robot()
+                   ->wrist_zero()
+                   ->measured_absolute_position(),
                dt_),
         superstructure_position_sender_(
             event_loop_->MakeSender<Position>("/superstructure")),
@@ -257,6 +265,7 @@
   ::aos::EventLoop *event_loop_;
   const chrono::nanoseconds dt_;
   ::aos::PhasedLoopHandler *phased_loop_handle_ = nullptr;
+  frc971::constants::ConstantsFetcher<Constants> constants_fetcher_;
 
   ArmSimulation arm_;
   AbsoluteEncoderSimulator wrist_;
diff --git a/y2023/control_loops/superstructure/wrist/BUILD b/y2023/control_loops/superstructure/wrist/BUILD
index 694d95f..212c203 100644
--- a/y2023/control_loops/superstructure/wrist/BUILD
+++ b/y2023/control_loops/superstructure/wrist/BUILD
@@ -5,8 +5,10 @@
     outs = [
         "wrist_plant.h",
         "wrist_plant.cc",
+        "wrist_plant.json",
         "integral_wrist_plant.h",
         "integral_wrist_plant.cc",
+        "integral_wrist_plant.json",
     ],
     cmd = "$(location //y2023/control_loops/python:wrist) $(OUTS)",
     target_compatible_with = ["@platforms//os:linux"],
@@ -32,3 +34,9 @@
         "//frc971/control_loops:state_feedback_loop",
     ],
 )
+
+filegroup(
+    name = "wrist_json",
+    srcs = ["integral_wrist_plant.json"],
+    visibility = ["//visibility:public"],
+)
