diff --git a/aos/util/BUILD b/aos/util/BUILD
index 2f10a70..b46cd14 100644
--- a/aos/util/BUILD
+++ b/aos/util/BUILD
@@ -528,3 +528,13 @@
         "@com_github_gflags_gflags//:gflags",
     ],
 )
+
+cc_library(
+    name = "simulation_logger",
+    srcs = ["simulation_logger.cc"],
+    hdrs = ["simulation_logger.h"],
+    deps = [
+        "//aos/events:simulated_event_loop",
+        "//aos/events/logging:log_writer",
+    ],
+)
diff --git a/aos/util/simulation_logger.cc b/aos/util/simulation_logger.cc
new file mode 100644
index 0000000..e459978
--- /dev/null
+++ b/aos/util/simulation_logger.cc
@@ -0,0 +1,39 @@
+#include "aos/util/simulation_logger.h"
+
+namespace aos::util {
+LoggerState::LoggerState(aos::SimulatedEventLoopFactory *factory,
+                         const aos::Node *node, std::string_view output_folder)
+    : event_loop_(factory->MakeEventLoop("logger", node)),
+      namer_(std::make_unique<aos::logger::MultiNodeFilesLogNamer>(
+          absl::StrCat(output_folder, "/", node->name()->string_view(), "/"),
+          event_loop_.get())),
+      logger_(std::make_unique<aos::logger::Logger>(event_loop_.get())) {
+  event_loop_->SkipTimingReport();
+  event_loop_->SkipAosLog();
+  event_loop_->OnRun([this]() { logger_->StartLogging(std::move(namer_)); });
+}
+
+std::vector<std::unique_ptr<LoggerState>> MakeLoggersForNodes(
+    aos::SimulatedEventLoopFactory *factory,
+    const std::vector<std::string> &nodes_to_log,
+    std::string_view output_folder) {
+  std::vector<std::unique_ptr<LoggerState>> loggers;
+  for (const std::string &node : nodes_to_log) {
+    loggers.emplace_back(std::make_unique<LoggerState>(
+        factory, aos::configuration::GetNode(factory->configuration(), node),
+        output_folder));
+  }
+  return loggers;
+}
+
+std::vector<std::unique_ptr<LoggerState>> MakeLoggersForAllNodes(
+    aos::SimulatedEventLoopFactory *factory, std::string_view output_folder) {
+  std::vector<std::unique_ptr<LoggerState>> loggers;
+  for (const aos::Node *node : configuration::GetNodes(factory->configuration())) {
+    loggers.emplace_back(
+        std::make_unique<LoggerState>(factory, node, output_folder));
+  }
+  return loggers;
+}
+
+}  // namespace aos::util
diff --git a/aos/util/simulation_logger.h b/aos/util/simulation_logger.h
new file mode 100644
index 0000000..f431b4c
--- /dev/null
+++ b/aos/util/simulation_logger.h
@@ -0,0 +1,33 @@
+#ifndef AOS_UTIL_SIMULATION_LOGGER_H_
+#define AOS_UTIL_SIMULATION_LOGGER_H_
+#include <string_view>
+
+#include "aos/events/logging/log_writer.h"
+#include "aos/events/simulated_event_loop.h"
+namespace aos::util {
+
+class LoggerState {
+ public:
+  LoggerState(aos::SimulatedEventLoopFactory *factory, const aos::Node *node,
+              std::string_view output_folder);
+
+ private:
+  std::unique_ptr<aos::EventLoop> event_loop_;
+  std::unique_ptr<aos::logger::LogNamer> namer_;
+  std::unique_ptr<aos::logger::Logger> logger_;
+};
+
+// Creates a logger for each of the specified nodes. This makes it so that you
+// can easily setup some number of loggers in simulation or log replay without
+// needing to redo all the boilerplate every time.
+std::vector<std::unique_ptr<LoggerState>> MakeLoggersForNodes(
+    aos::SimulatedEventLoopFactory *factory,
+    const std::vector<std::string> &nodes_to_log,
+    std::string_view output_folder);
+
+// Creates loggers for all of the nodes.
+std::vector<std::unique_ptr<LoggerState>> MakeLoggersForAllNodes(
+    aos::SimulatedEventLoopFactory *factory, std::string_view output_folder);
+
+}  // namespace aos::util
+#endif  // AOS_UTIL_SIMULATION_LOGGER_H_
diff --git a/y2020/control_loops/drivetrain/BUILD b/y2020/control_loops/drivetrain/BUILD
index fa153f0..8191404 100644
--- a/y2020/control_loops/drivetrain/BUILD
+++ b/y2020/control_loops/drivetrain/BUILD
@@ -207,6 +207,7 @@
         "//aos/events:simulated_event_loop",
         "//aos/events/logging:log_reader",
         "//aos/events/logging:log_writer",
+        "//aos/util:simulation_logger",
         "//frc971/control_loops/drivetrain:drivetrain_lib",
         "//frc971/control_loops/drivetrain:trajectory_generator",
         "//y2020:constants",
diff --git a/y2020/control_loops/drivetrain/drivetrain_replay.cc b/y2020/control_loops/drivetrain/drivetrain_replay.cc
index 57feabb..8373258 100644
--- a/y2020/control_loops/drivetrain/drivetrain_replay.cc
+++ b/y2020/control_loops/drivetrain/drivetrain_replay.cc
@@ -11,6 +11,7 @@
 #include "aos/init.h"
 #include "aos/json_to_flatbuffer.h"
 #include "aos/network/team_number.h"
+#include "aos/util/simulation_logger.h"
 #include "frc971/control_loops/drivetrain/drivetrain.h"
 #include "frc971/control_loops/drivetrain/trajectory_generator.h"
 #include "gflags/gflags.h"
@@ -26,27 +27,6 @@
 DEFINE_int32(team, 971, "Team number to use for logfile replay.");
 DEFINE_bool(log_all_nodes, false, "Whether to rerun the logger on every node.");
 
-class LoggerState {
- public:
-  LoggerState(aos::logger::LogReader *reader, const aos::Node *node)
-      : event_loop_(
-            reader->event_loop_factory()->MakeEventLoop("logger", node)),
-        namer_(std::make_unique<aos::logger::MultiNodeFilesLogNamer>(
-            absl::StrCat(FLAGS_output_folder, "/", node->name()->string_view(),
-                         "/"),
-            event_loop_.get())),
-        logger_(std::make_unique<aos::logger::Logger>(event_loop_.get())) {
-    event_loop_->SkipTimingReport();
-    event_loop_->SkipAosLog();
-    event_loop_->OnRun([this]() { logger_->StartLogging(std::move(namer_)); });
-  }
-
- private:
-  std::unique_ptr<aos::EventLoop> event_loop_;
-  std::unique_ptr<aos::logger::LogNamer> namer_;
-  std::unique_ptr<aos::logger::Logger> logger_;
-};
-
 // TODO(james): Currently, this replay produces logfiles that can't be read due
 // to time estimation issues. Pending the active refactorings of the
 // timestamp-related code, fix this.
@@ -82,21 +62,17 @@
                             "y2020.control_loops.superstructure.Output");
   reader.Register();
 
-  std::vector<std::unique_ptr<LoggerState>> loggers;
+  std::vector<std::unique_ptr<aos::util::LoggerState>> loggers;
   if (FLAGS_log_all_nodes) {
-    for (const aos::Node *node :
-         aos::configuration::GetNodes(reader.configuration())) {
-      loggers.emplace_back(std::make_unique<LoggerState>(&reader, node));
-    }
+    loggers = aos::util::MakeLoggersForAllNodes(reader.event_loop_factory(),
+                                                FLAGS_output_folder);
   } else {
     // List of nodes to create loggers for (note: currently just roborio; this
     // code was refactored to allow easily adding new loggers to accommodate
     // debugging and potential future changes).
     const std::vector<std::string> nodes_to_log = {"roborio"};
-    for (const std::string &node : nodes_to_log) {
-      loggers.emplace_back(std::make_unique<LoggerState>(
-          &reader, aos::configuration::GetNode(reader.configuration(), node)));
-    }
+    loggers = aos::util::MakeLoggersForNodes(reader.event_loop_factory(),
+                                             nodes_to_log, FLAGS_output_folder);
   }
 
   const aos::Node *node = nullptr;
diff --git a/y2020/y2020_pi_template.json b/y2020/y2020_pi_template.json
index cf54c23..c609632 100644
--- a/y2020/y2020_pi_template.json
+++ b/y2020/y2020_pi_template.json
@@ -92,12 +92,19 @@
           "time_to_live": 5000000,
           "timestamp_logger": "LOCAL_AND_REMOTE_LOGGER",
           "timestamp_logger_nodes": [
-            "roborio"
+            "pi{{ NUM }}"
           ]
         }
       ]
     },
     {
+      "name": "/pi{{ NUM }}/aos/remote_timestamps/roborio/pi{{ NUM }}/aos/aos-message_bridge-Timestamp",
+      "type": "aos.message_bridge.RemoteMessage",
+      "frequency": 20,
+      "source_node": "pi{{ NUM }}",
+      "max_size": 208
+    },
+    {
       "name": "/pi{{ NUM }}/camera",
       "type": "frc971.vision.CameraImage",
       "source_node": "pi{{ NUM }}",
diff --git a/y2022/localizer/BUILD b/y2022/localizer/BUILD
index dd0fb67..7f076e8 100644
--- a/y2022/localizer/BUILD
+++ b/y2022/localizer/BUILD
@@ -150,6 +150,7 @@
         "//aos/events:simulated_event_loop",
         "//aos/events/logging:log_reader",
         "//aos/events/logging:log_writer",
+        "//aos/util:simulation_logger",
         "//y2022/control_loops/drivetrain:drivetrain_base",
     ],
 )
diff --git a/y2022/localizer/localizer_replay.cc b/y2022/localizer/localizer_replay.cc
index 0c09535..6dcbb1e 100644
--- a/y2022/localizer/localizer_replay.cc
+++ b/y2022/localizer/localizer_replay.cc
@@ -1,6 +1,7 @@
 #include "aos/configuration.h"
 #include "aos/events/logging/log_reader.h"
 #include "aos/events/logging/log_writer.h"
+#include "aos/util/simulation_logger.h"
 #include "aos/events/simulated_event_loop.h"
 #include "aos/init.h"
 #include "aos/json_to_flatbuffer.h"
@@ -16,27 +17,6 @@
 DEFINE_string(output_folder, "/tmp/replayed",
               "Name of the folder to write replayed logs to.");
 
-class LoggerState {
- public:
-  LoggerState(aos::logger::LogReader *reader, const aos::Node *node)
-      : event_loop_(
-            reader->event_loop_factory()->MakeEventLoop("logger", node)),
-        namer_(std::make_unique<aos::logger::MultiNodeFilesLogNamer>(
-            absl::StrCat(FLAGS_output_folder, "/", node->name()->string_view(),
-                         "/"),
-            event_loop_.get())),
-        logger_(std::make_unique<aos::logger::Logger>(event_loop_.get())) {
-    event_loop_->SkipTimingReport();
-    event_loop_->SkipAosLog();
-    event_loop_->OnRun([this]() { logger_->StartLogging(std::move(namer_)); });
-  }
-
- private:
-  std::unique_ptr<aos::EventLoop> event_loop_;
-  std::unique_ptr<aos::logger::LogNamer> namer_;
-  std::unique_ptr<aos::logger::Logger> logger_;
-};
-
 // TODO(james): Currently, this replay produces logfiles that can't be read due
 // to time estimation issues. Pending the active refactorings of the
 // timestamp-related code, fix this.
@@ -71,15 +51,13 @@
 
   reader.Register(factory.get());
 
-  std::vector<std::unique_ptr<LoggerState>> loggers;
   // List of nodes to create loggers for (note: currently just roborio; this
   // code was refactored to allow easily adding new loggers to accommodate
   // debugging and potential future changes).
   const std::vector<std::string> nodes_to_log = {"imu"};
-  for (const std::string &node : nodes_to_log) {
-    loggers.emplace_back(std::make_unique<LoggerState>(
-        &reader, aos::configuration::GetNode(reader.configuration(), node)));
-  }
+  std::vector<std::unique_ptr<aos::util::LoggerState>> loggers =
+      aos::util::MakeLoggersForNodes(reader.event_loop_factory(), nodes_to_log,
+                                     FLAGS_output_folder);
 
   const aos::Node *node = nullptr;
   if (aos::configuration::MultiNode(reader.configuration())) {
diff --git a/y2022/y2022_logger.json b/y2022/y2022_logger.json
index 01800bf..65a6e98 100644
--- a/y2022/y2022_logger.json
+++ b/y2022/y2022_logger.json
@@ -35,7 +35,7 @@
           "priority": 2,
           "timestamp_logger": "LOCAL_AND_REMOTE_LOGGER",
           "timestamp_logger_nodes": [
-            "roborio"
+            "logger"
           ],
           "time_to_live": 5000000
         }
@@ -46,7 +46,7 @@
       "type": "aos.message_bridge.RemoteMessage",
       "source_node": "logger",
       "logger": "NOT_LOGGED",
-      "frequency": 20,
+      "frequency": 200,
       "num_senders": 2,
       "max_size": 200
     },
diff --git a/y2022/y2022_pi_template.json b/y2022/y2022_pi_template.json
index 4d3c427..cb90fee 100644
--- a/y2022/y2022_pi_template.json
+++ b/y2022/y2022_pi_template.json
@@ -104,7 +104,7 @@
           "time_to_live": 5000000,
           "timestamp_logger": "LOCAL_AND_REMOTE_LOGGER",
           "timestamp_logger_nodes": [
-            "roborio"
+            "pi{{ NUM }}"
           ]
         },
         {
@@ -113,7 +113,7 @@
           "time_to_live": 5000000,
           "timestamp_logger": "LOCAL_AND_REMOTE_LOGGER",
           "timestamp_logger_nodes": [
-            "imu"
+            "pi{{ NUM }}"
           ]
         }
       ]
diff --git a/y2022/y2022_roborio.json b/y2022/y2022_roborio.json
index 068c543..d046568 100644
--- a/y2022/y2022_roborio.json
+++ b/y2022/y2022_roborio.json
@@ -459,7 +459,7 @@
           "priority": 5,
           "timestamp_logger": "LOCAL_AND_REMOTE_LOGGER",
           "timestamp_logger_nodes": [
-            "imu"
+            "roborio"
           ],
           "time_to_live": 0
         }
diff --git a/y2023/localizer/BUILD b/y2023/localizer/BUILD
index 3ef024c..f9d0d28 100644
--- a/y2023/localizer/BUILD
+++ b/y2023/localizer/BUILD
@@ -220,6 +220,7 @@
         "//aos/events:simulated_event_loop",
         "//aos/events/logging:log_reader",
         "//aos/events/logging:log_writer",
+        "//aos/util:simulation_logger",
         "//y2023/control_loops/drivetrain:drivetrain_base",
     ],
 )
diff --git a/y2023/localizer/localizer_replay.cc b/y2023/localizer/localizer_replay.cc
index c74b708..27f0d18 100644
--- a/y2023/localizer/localizer_replay.cc
+++ b/y2023/localizer/localizer_replay.cc
@@ -5,9 +5,10 @@
 #include "aos/init.h"
 #include "aos/json_to_flatbuffer.h"
 #include "aos/network/team_number.h"
-#include "y2023/localizer/localizer.h"
+#include "aos/util/simulation_logger.h"
 #include "gflags/gflags.h"
 #include "y2023/control_loops/drivetrain/drivetrain_base.h"
+#include "y2023/localizer/localizer.h"
 
 DEFINE_string(config, "y2023/aos_config.json",
               "Name of the config file to replay using.");
@@ -15,27 +16,6 @@
 DEFINE_string(output_folder, "/tmp/replayed",
               "Name of the folder to write replayed logs to.");
 
-class LoggerState {
- public:
-  LoggerState(aos::logger::LogReader *reader, const aos::Node *node)
-      : event_loop_(
-            reader->event_loop_factory()->MakeEventLoop("logger", node)),
-        namer_(std::make_unique<aos::logger::MultiNodeFilesLogNamer>(
-            absl::StrCat(FLAGS_output_folder, "/", node->name()->string_view(),
-                         "/"),
-            event_loop_.get())),
-        logger_(std::make_unique<aos::logger::Logger>(event_loop_.get())) {
-    event_loop_->SkipTimingReport();
-    event_loop_->SkipAosLog();
-    event_loop_->OnRun([this]() { logger_->StartLogging(std::move(namer_)); });
-  }
-
- private:
-  std::unique_ptr<aos::EventLoop> event_loop_;
-  std::unique_ptr<aos::logger::LogNamer> namer_;
-  std::unique_ptr<aos::logger::Logger> logger_;
-};
-
 int main(int argc, char **argv) {
   aos::InitGoogle(&argc, &argv);
 
@@ -69,15 +49,13 @@
 
   reader.Register(factory.get());
 
-  std::vector<std::unique_ptr<LoggerState>> loggers;
   // List of nodes to create loggers for (note: currently just roborio; this
   // code was refactored to allow easily adding new loggers to accommodate
   // debugging and potential future changes).
   const std::vector<std::string> nodes_to_log = {"imu"};
-  for (const std::string &node : nodes_to_log) {
-    loggers.emplace_back(std::make_unique<LoggerState>(
-        &reader, aos::configuration::GetNode(reader.configuration(), node)));
-  }
+  std::vector<std::unique_ptr<aos::util::LoggerState>> loggers =
+      aos::util::MakeLoggersForNodes(reader.event_loop_factory(), nodes_to_log,
+                                     FLAGS_output_folder);
 
   const aos::Node *node = nullptr;
   if (aos::configuration::MultiNode(reader.configuration())) {
diff --git a/y2023/y2023_roborio.json b/y2023/y2023_roborio.json
index 8ed9d73..172d11c 100644
--- a/y2023/y2023_roborio.json
+++ b/y2023/y2023_roborio.json
@@ -18,15 +18,6 @@
       ]
     },
     {
-      "name": "/roborio/aos/remote_timestamps/imu/roborio/aos/aos-JoystickState",
-      "type": "aos.message_bridge.RemoteMessage",
-      "source_node": "roborio",
-      "logger": "NOT_LOGGED",
-      "frequency": 300,
-      "num_senders": 2,
-      "max_size": 200
-    },
-    {
       "name": "/roborio/aos",
       "type": "aos.RobotState",
       "source_node": "roborio",
@@ -234,15 +225,6 @@
       ]
     },
     {
-      "name": "/roborio/aos/remote_timestamps/imu/drivetrain/frc971-control_loops-drivetrain-Output",
-      "type": "aos.message_bridge.RemoteMessage",
-      "source_node": "roborio",
-      "logger": "NOT_LOGGED",
-      "frequency": 400,
-      "num_senders": 2,
-      "max_size": 200
-    },
-    {
       "name": "/drivetrain",
       "type": "frc971.control_loops.drivetrain.Status",
       "source_node": "roborio",
