Merge "Turn the orin fan on full"
diff --git a/frc971/analysis/BUILD b/frc971/analysis/BUILD
index 9c236c8..b2d11f5 100644
--- a/frc971/analysis/BUILD
+++ b/frc971/analysis/BUILD
@@ -124,3 +124,18 @@
     ],
     deps = ["@RangeHTTPServer"],
 )
+
+cc_binary(
+    name = "pdp_values",
+    srcs = [
+        "pdp_values.cc",
+    ],
+    target_compatible_with = ["@platforms//os:linux"],
+    deps = [
+        "//aos:init",
+        "//aos/events:simulated_event_loop",
+        "//aos/events/logging:log_reader",
+        "//aos/util:simulation_logger",
+        "//frc971/wpilib:pdp_values_fbs",
+    ],
+)
diff --git a/frc971/analysis/pdp_values.cc b/frc971/analysis/pdp_values.cc
new file mode 100644
index 0000000..b314cc6
--- /dev/null
+++ b/frc971/analysis/pdp_values.cc
@@ -0,0 +1,57 @@
+#include <fstream>
+
+#include "gflags/gflags.h"
+#include "glog/logging.h"
+
+#include "aos/events/logging/log_reader.h"
+#include "aos/events/simulated_event_loop.h"
+#include "aos/init.h"
+#include "frc971/wpilib/pdp_values_generated.h"
+
+DEFINE_string(output_path, "/tmp/pdp_values.csv", "");
+
+int main(int argc, char **argv) {
+  aos::InitGoogle(&argc, &argv);
+
+  aos::logger::LogReader reader(
+      aos::logger::SortParts(aos::logger::FindLogs(argc, argv)));
+
+  aos::SimulatedEventLoopFactory event_loop_factory(reader.configuration());
+
+  reader.RegisterWithoutStarting(&event_loop_factory);
+
+  const aos::Node *roborio =
+      aos::configuration::GetNode(reader.configuration(), "roborio");
+
+  std::unique_ptr<aos::EventLoop> event_loop =
+      event_loop_factory.MakeEventLoop("roborio", roborio);
+
+  std::ofstream file_stream;
+  file_stream.open(FLAGS_output_path);
+  file_stream << "timestamp,currents,voltage\n";
+
+  event_loop->SkipAosLog();
+  event_loop->MakeWatcher(
+      "/roborio/aos",
+      [&file_stream, &event_loop](const frc971::PDPValues &pdp_values) {
+        file_stream << event_loop->context().monotonic_event_time << ","
+                    << "[";
+
+        for (uint i = 0; i < pdp_values.currents()->size(); i++) {
+          file_stream << pdp_values.currents()->Get(i);
+          if (i != pdp_values.currents()->size() - 1) {
+            file_stream << ", ";
+          }
+        }
+
+        file_stream << "]," << pdp_values.voltage() << "\n";
+      });
+
+  event_loop_factory.Run();
+
+  reader.Deregister();
+
+  file_stream.close();
+
+  return 0;
+}
diff --git a/y2024/y2024_roborio.json b/y2024/y2024_roborio.json
index 5ba882a..c7024f4 100644
--- a/y2024/y2024_roborio.json
+++ b/y2024/y2024_roborio.json
@@ -176,7 +176,7 @@
       "source_node": "roborio",
       "frequency": 220,
       "num_senders": 2,
-      "max_size": 424
+      "max_size": 1024
     },
     {
       "name": "/drivetrain",