diff --git a/tm/OBSW_TmService3.py b/tm/OBSW_TmService3.py
index 87440a9f49d1a7a913e665447ad18c1fa8b466ee..6a9e61002b0c8176c83f19ea88c0bfe148deb71c 100644
--- a/tm/OBSW_TmService3.py
+++ b/tm/OBSW_TmService3.py
@@ -88,7 +88,10 @@ class Service3TM(PUSTelemetry):
         self.hkContent = [fixMode, svInFix, gnssWeek, timeOfWeek, latitude, longitude, msa, positionX, positionY,
                           positionZ, vx, vy, vz]
         self.validityBuffer = self.byteArrayData[72:]
-        print("Validity Buffer Length: " + str(self.validityBuffer))
+        # print(self.validityBuffer)
+        # print(str(format(self.validityBuffer[0], '#010b')))
+        # print(str(format(self.validityBuffer[1], '#010b')))
+        # print("Validity Buffer Length: " + str(len(self.validityBuffer)))
 
     def handleTestHkData(self):
         self.numberOfParameters = 6
@@ -101,4 +104,8 @@ class Service3TM(PUSTelemetry):
         floatVector2 = struct.unpack('>f', self.byteArrayData[16:20])[0]
         self.hkContent = [testBool, testUint8, testUint16, testUint32, floatVector1, floatVector2]
         self.validityBuffer = self.byteArrayData[20:]
-        print("Validity Buffer Length: " + str(self.validityBuffer))
+        # print(self.validityBuffer)
+        # print(str(format(self.validityBuffer[0], '#010b')))
+        # print("Validity Buffer Length: " + str(len(self.validityBuffer)))
+
+
diff --git a/utility/OBSW_TmTcPrinter.py b/utility/OBSW_TmTcPrinter.py
index 513f0d638969d7701391f4671ac0e04a5ebff610..489c20ef59f6898261ffb7c4e1ce4282d229982a 100644
--- a/utility/OBSW_TmTcPrinter.py
+++ b/utility/OBSW_TmTcPrinter.py
@@ -13,7 +13,6 @@ import os
 from config import OBSW_Config as g
 
 
-# TODO: Print everything in a file
 class TmtcPrinter:
     def __init__(self, displayMode="long", doPrintToFile=False, printTc=True):
         self.printBuffer = ""
@@ -71,6 +70,7 @@ class TmtcPrinter:
             self.printBuffer = "HK Data from SID "
             self.printBuffer = self.printBuffer + str(hex(packet.sid)) + " :"
             self.printHk(packet)
+            self.printValidityBuffer(packet)
 
     def handleHkDefinitionPrint(self, packet):
         if g.printHkData:
@@ -87,7 +87,31 @@ class TmtcPrinter:
         self.printBuffer = str(packet.hkContent)
         print(self.printBuffer)
         self.addPrintBufferToFileBuffer()
-        
+
+    def printValidityBuffer(self, packet):
+        self.printBuffer = "Valid: "
+        print(self.printBuffer)
+        self.addPrintBufferToFileBuffer()
+        self.handleValidityBufferPrint(packet.validityBuffer, packet.numberOfParameters)
+
+    def handleValidityBufferPrint(self, validityBuffer, numberOfParameters):
+        self.printBuffer = "["
+        parameterCount = 0
+        for count in range(len(validityBuffer)):
+            for bit in range(1, 9):
+                if self.bitExtractor(validityBuffer[count], bit) == 1:
+                    self.printBuffer = self.printBuffer + "Yes"
+                else:
+                    self.printBuffer = self.printBuffer + "No"
+                parameterCount = parameterCount + 1
+                if parameterCount == numberOfParameters:
+                    self.printBuffer = self.printBuffer + "]"
+                    break
+                else:
+                    self.printBuffer = self.printBuffer + ", "
+        print(self.printBuffer)
+        self.addPrintBufferToFileBuffer()
+
     def handleWiretappingPacket(self, packet):
         if packet.getService() == 2 and (packet.getSubservice() == 131 or packet.getSubservice() == 130):
             self.printBuffer = "Wiretapping Packet or Raw Reply from TM [" + \
@@ -102,36 +126,6 @@ class TmtcPrinter:
                                + self.returnDataString(packet.data)
             print(self.printBuffer)
 
-    # This function handles the printing of Telecommands
-    def printTelecommand(self, pusPacket, pusPacketInfo=""):
-        if self.printTc:
-            if len(pusPacket) == 0:
-                print("TMTC Printer: Empty packet was sent, configuration error")
-                exit()
-            if pusPacketInfo == "":
-                print("TMTC Printer: No packet info supplied to print")
-                return
-            if self.displayMode == "short":
-                self.handleShortTcPrint(pusPacketInfo)
-            else:
-                self.handleLongTcPrint(pusPacketInfo)
-
-    def handleShortTcPrint(self, pusPacketInfo):
-        self.printBuffer = "Sent TC[" + str(pusPacketInfo["service"]) + "," + str(pusPacketInfo["subservice"]) \
-                            + "] " + " with SSC " + str(pusPacketInfo["ssc"])
-        print(self.printBuffer)
-        self.addPrintBufferToFileBuffer()
-
-    def handleLongTcPrint(self, pusPacketInfo):
-        try:
-            self.printBuffer = "Telecommand TC[" + str(pusPacketInfo["service"]) + "," + str(pusPacketInfo["subservice"]) \
-                            + "] with SSC " + str(pusPacketInfo["ssc"]) + " sent with data " \
-                            + self.returnDataString(pusPacketInfo["data"])
-            print(self.printBuffer)
-            self.addPrintBufferToFileBuffer()
-        except TypeError:
-            print("TMTC Printer: Type Error !")
-
     def printData(self, byteArray):
         string = self.returnDataString(byteArray)
         print(string)
@@ -168,3 +162,38 @@ class TmtcPrinter:
         print("Log file written to " + logName)
         file.close()
 
+    @staticmethod
+    def bitExtractor(byte, position):
+        shiftNumber = position + (6 - 2 * (position - 1))
+        return (byte >> shiftNumber) & 1
+
+    # This function handles the printing of Telecommands
+    def printTelecommand(self, pusPacket, pusPacketInfo=""):
+        if self.printTc:
+            if len(pusPacket) == 0:
+                print("TMTC Printer: Empty packet was sent, configuration error")
+                exit()
+            if pusPacketInfo == "":
+                print("TMTC Printer: No packet info supplied to print")
+                return
+            if self.displayMode == "short":
+                self.handleShortTcPrint(pusPacketInfo)
+            else:
+                self.handleLongTcPrint(pusPacketInfo)
+
+    def handleShortTcPrint(self, pusPacketInfo):
+        self.printBuffer = "Sent TC[" + str(pusPacketInfo["service"]) + "," + str(pusPacketInfo["subservice"]) \
+                            + "] " + " with SSC " + str(pusPacketInfo["ssc"])
+        print(self.printBuffer)
+        self.addPrintBufferToFileBuffer()
+
+    def handleLongTcPrint(self, pusPacketInfo):
+        try:
+            self.printBuffer = "Telecommand TC[" + str(pusPacketInfo["service"]) + "," + str(
+                pusPacketInfo["subservice"]) \
+                                + "] with SSC " + str(pusPacketInfo["ssc"]) + " sent with data " \
+                                + self.returnDataString(pusPacketInfo["data"])
+            print(self.printBuffer)
+            self.addPrintBufferToFileBuffer()
+        except TypeError:
+            print("TMTC Printer: Type Error !")