Add a can_logger for the orin

Signed-off-by: Maxwell Henderson <mxwhenderson@gmail.com>
Change-Id: I3e3f0d5acacafb4f4d26e2c0ba50c03ace9716dc
diff --git a/y2024/BUILD b/y2024/BUILD
index 010b17c..7e28c19 100644
--- a/y2024/BUILD
+++ b/y2024/BUILD
@@ -71,6 +71,7 @@
         "//aos/starter:irq_affinity",
         "//y2024/vision:image_logger",
         "//aos/events/logging:logger_main",
+        "//y2024/orin:can_logger",
     ],
     target_compatible_with = ["//tools/platforms/hardware:raspberry_pi"],
     target_type = "orin",
@@ -102,6 +103,7 @@
         "//aos/network:message_bridge_client_fbs",
         "//aos/network:message_bridge_server_fbs",
         "//y2024/constants:constants_fbs",
+        "//frc971/can_logger:can_logging_fbs",
         "//aos/network:timestamp_fbs",
         "//aos/network:remote_message_fbs",
     ],
diff --git a/y2024/orin/BUILD b/y2024/orin/BUILD
new file mode 100644
index 0000000..b8ee2bc
--- /dev/null
+++ b/y2024/orin/BUILD
@@ -0,0 +1,15 @@
+cc_binary(
+    name = "can_logger",
+    srcs = [
+        "can_logger_main.cc",
+    ],
+    target_compatible_with = ["@platforms//cpu:arm64"],
+    visibility = ["//visibility:public"],
+    deps = [
+        "//aos:init",
+        "//aos/events:shm_event_loop",
+        "//aos/time",
+        "//frc971/can_logger:can_logger_lib",
+        "@com_github_google_glog//:glog",
+    ],
+)
diff --git a/y2024/orin/can_logger_main.cc b/y2024/orin/can_logger_main.cc
new file mode 100644
index 0000000..febed5f
--- /dev/null
+++ b/y2024/orin/can_logger_main.cc
@@ -0,0 +1,20 @@
+#include "aos/events/shm_event_loop.h"
+#include "aos/init.h"
+#include "frc971/can_logger/can_logger.h"
+
+int main(int argc, char **argv) {
+  ::aos::InitGoogle(&argc, &argv);
+
+  aos::FlatbufferDetachedBuffer<aos::Configuration> config =
+      aos::configuration::ReadConfig("aos_config.json");
+
+  ::aos::ShmEventLoop event_loop(&config.message());
+
+  frc971::can_logger::CanLogger cana_logger(&event_loop, "/can/cana", "cana");
+  frc971::can_logger::CanLogger canb_logger(&event_loop, "/can/canb", "canb");
+  frc971::can_logger::CanLogger canc_logger(&event_loop, "/can/canc", "canc");
+
+  event_loop.Run();
+
+  return 0;
+}
diff --git a/y2024/y2024_imu.json b/y2024/y2024_imu.json
index d2b5faa..5094d64 100644
--- a/y2024/y2024_imu.json
+++ b/y2024/y2024_imu.json
@@ -117,6 +117,30 @@
       "max_size": 200
     },
     {
+      "name": "/can/cana",
+      "type": "frc971.can_logger.CanFrame",
+      "source_node": "imu",
+      "frequency": 6000,
+      "num_senders": 2,
+      "max_size": 200
+    },
+    {
+      "name": "/can/canb",
+      "type": "frc971.can_logger.CanFrame",
+      "source_node": "imu",
+      "frequency": 6000,
+      "num_senders": 2,
+      "max_size": 200
+    },
+    {
+      "name": "/can/canc",
+      "type": "frc971.can_logger.CanFrame",
+      "source_node": "imu",
+      "frequency": 6000,
+      "num_senders": 2,
+      "max_size": 200
+    },
+    {
       "name": "/localizer",
       "type": "frc971.IMUValuesBatch",
       "source_node": "imu",
@@ -187,6 +211,13 @@
       ]
     },
     {
+      "name": "can_logger",
+      "executable_name": "can_logger",
+      "nodes": [
+        "imu"
+      ]
+    },
+    {
       "name": "web_proxy",
       "executable_name": "web_proxy_main",
       "args": [