diff --git a/src/boards/HeliTest/ScreenManager.cpp b/src/boards/HeliTest/ScreenManager.cpp
index 641a6b48b3808f2818f719d6273a657d87f5d088..5e46acb7848f441e349d7d53c3d4016171d78490 100644
--- a/src/boards/HeliTest/ScreenManager.cpp
+++ b/src/boards/HeliTest/ScreenManager.cpp
@@ -45,9 +45,10 @@ static char buffer[256];
 namespace RogallinaBoard
 {
 
-ScreenManager::ScreenManager(SensorManager* sm)
+ScreenManager::ScreenManager(SensorManager* sm, HeliFMM* heli_fmm,
+                             PinObserverWrapper* pinobs)
     : display(DisplayManager::instance().getDisplay()), dc(display), dw(dc),
-      sm(sm)
+      sm(sm), heli_fmm(heli_fmm), pin_obs(pinobs)
 {
     D(printf("Screenmanager constructor\n"));
     clearScreen();
@@ -73,7 +74,9 @@ void ScreenManager::fetchData()
         sensorData      = sm->getSensorData();
         logging_sensors = sm->loggingSensors();
 
-        status_fmm = sHeliFMM->getStatus();
+        status_fmm = heli_fmm->getStatus();
+
+        pin_status = pin_obs->getPinStatus();
     }
 
     cpu_usage = sSystemDiagnostics->getCpuUsage();
@@ -155,6 +158,28 @@ void ScreenManager::drawRogallinaFMM()
     sprintf(buffer, "State: %-20s", state.c_str());
     writeLine(1, 0, "STATE MACHINE");
     writeLine(2, 0, buffer, fgcolor, bgcolor);
+
+    string pin_state;
+    if (pin_status.state == 1)
+    {
+        bgcolor   = green;
+        fgcolor = black;
+        pin_state = "CONNECTED   ";
+    }
+    else
+    {
+        bgcolor   = red;
+        fgcolor = white;
+        pin_state = "DISCONNECTED";
+    }
+
+    float last_change =
+        -(pin_status.last_state_change - miosix::getTick()) / 1000.0f;
+    sprintf(buffer, "PIN1: %s", pin_state.c_str());
+    writeLine(21, 0, buffer, fgcolor, bgcolor);
+    sprintf(buffer, "Num: %3d   (%-5.1fs ago)", pin_status.num_state_changes,
+            last_change);
+    writeLine(21, 115, buffer);
 }
 
 void ScreenManager::drawLoggerStatus()
@@ -326,7 +351,7 @@ void ScreenManager::drawSensorSamples()
 void ScreenManager::drawSystemStats()
 {
 #ifdef DEBUG
-    writeLine(21, 0, "DEBUG BUILD. DO NOT FLY.", white, red);
+    writeLine(22, 0, "DEBUG BUILD. DO NOT FLY.", white, red);
 #endif
     sprintf(buffer, "CpuUsage: %4.1f    Worst stack:%2d   %6d bytes", cpu_usage,
             min_stack.thread_id, min_stack.abs_free_stack);
diff --git a/src/boards/HeliTest/ScreenManager.h b/src/boards/HeliTest/ScreenManager.h
index b5a4990438748e9c3c20394647a3ccb25f0e5c2a..df32ca2d5392923d57db31f7e579cf6f979f1232 100644
--- a/src/boards/HeliTest/ScreenManager.h
+++ b/src/boards/HeliTest/ScreenManager.h
@@ -30,6 +30,7 @@
 #include "config.h"
 #include "display/displayWrapper.h"
 #include "logger/Logger.h"
+#include "PinObserverWrapper.h"
 
 // class RogallinaFMM;
 // Type definitions
@@ -41,7 +42,7 @@ class ScreenManager
 {
 
 public:
-    ScreenManager(SensorManager* sm);
+    ScreenManager(SensorManager* sm, HeliFMM* heli_fmm, PinObserverWrapper* pinobs);
     ~ScreenManager();
 
     void update();
@@ -77,7 +78,8 @@ private:
     string logger_file   = "";
 
     SensorData sensorData;
-
+    PinStatus pin_status;
+    
     float cpu_usage;
     StackData min_stack;
 
@@ -90,6 +92,8 @@ private:
     Logger& logger = Logger::instance();
 
     SensorManager* sm;
+    HeliFMM* heli_fmm;
+    PinObserverWrapper* pin_obs;
 };
 }  // namespace RogallinaBoard
 #endif /* SRC_SCREENMANAGER_H */