diff --git a/y2022/control_loops/superstructure/BUILD b/y2022/control_loops/superstructure/BUILD
index 669e691..601be56 100644
--- a/y2022/control_loops/superstructure/BUILD
+++ b/y2022/control_loops/superstructure/BUILD
@@ -172,6 +172,7 @@
         ":superstructure_output_fbs",
         ":superstructure_status_fbs",
         "//aos/events:event_loop",
+        "//aos/network:message_bridge_client_fbs",
         "//aos/network:message_bridge_server_fbs",
         "//frc971/control_loops:control_loop",
         "//frc971/control_loops:control_loops_fbs",
diff --git a/y2022/control_loops/superstructure/led_indicator.cc b/y2022/control_loops/superstructure/led_indicator.cc
index 4ec934d..77d06fd 100644
--- a/y2022/control_loops/superstructure/led_indicator.cc
+++ b/y2022/control_loops/superstructure/led_indicator.cc
@@ -30,9 +30,20 @@
 }
 
 namespace {
-bool DisconnectedPi(const aos::message_bridge::ServerStatistics &server_stats) {
-  for (const auto *pi_status : *server_stats.connections()) {
-    if (pi_status->state() == aos::message_bridge::State::DISCONNECTED) {
+bool DisconnectedPiServer(
+    const aos::message_bridge::ServerStatistics &server_stats) {
+  for (const auto *pi_server_status : *server_stats.connections()) {
+    if (pi_server_status->state() == aos::message_bridge::State::DISCONNECTED) {
+      return true;
+    }
+  }
+  return false;
+}
+
+bool DisconnectedPiClient(
+    const aos::message_bridge::ClientStatistics &client_stats) {
+  for (const auto *pi_client_status : *client_stats.connections()) {
+    if (pi_client_status->state() == aos::message_bridge::State::DISCONNECTED) {
       return true;
     }
   }
@@ -50,6 +61,7 @@
   superstructure_status_fetcher_.Fetch();
   server_statistics_fetcher_.Fetch();
   drivetrain_output_fetcher_.Fetch();
+  client_statistics_fetcher_.Fetch();
 
   // Estopped
   if (superstructure_status_fetcher_.get() &&
@@ -66,12 +78,14 @@
   }
 
   // Pi disconnected
-  if (server_statistics_fetcher_.get() &&
-      DisconnectedPi(*server_statistics_fetcher_)) {
+  if ((server_statistics_fetcher_.get() &&
+       DisconnectedPiServer(*server_statistics_fetcher_)) ||
+      (client_statistics_fetcher_.get() &&
+       DisconnectedPiClient(*client_statistics_fetcher_))) {
     if (disconnected_flash_) {
       DisplayLed(255, 0, 0);
     } else {
-      DisplayLed(0, 0, 255);
+      DisplayLed(0, 255, 0);
     }
 
     if (disconnected_counter_ % kFlashIterations == 0) {
diff --git a/y2022/control_loops/superstructure/led_indicator.h b/y2022/control_loops/superstructure/led_indicator.h
index bdcee6c..680b875 100644
--- a/y2022/control_loops/superstructure/led_indicator.h
+++ b/y2022/control_loops/superstructure/led_indicator.h
@@ -2,6 +2,7 @@
 #define Y2022_CONTROL_LOOPS_SUPERSTRUCTURE_LED_INDICATOR_H_
 
 #include "aos/events/event_loop.h"
+#include "aos/network/message_bridge_client_generated.h"
 #include "aos/network/message_bridge_server_generated.h"
 #include "ctre/phoenix/led/CANdle.h"
 #include "frc971/control_loops/control_loop.h"
@@ -21,7 +22,7 @@
   //
   // Red: estopped
   // Yellow: not zeroed
-  // Flash blue/red: pi disconnected
+  // Flash red/green: pi disconnected
   // Purple: driving fast
   //
   // Statemachine:
@@ -52,6 +53,8 @@
   aos::Fetcher<Status> superstructure_status_fetcher_;
   aos::Fetcher<aos::message_bridge::ServerStatistics>
       server_statistics_fetcher_;
+  aos::Fetcher<aos::message_bridge::ClientStatistics>
+      client_statistics_fetcher_;
 
   size_t disconnected_counter_ = 0;
   bool disconnected_flash_ = false;
