diff --git a/obsw_tmtc_client.py b/obsw_tmtc_client.py
index 69eb88c247c081de3f119e9638f3e1b8139317d1..e502717fda8cd2ba2db5c963c394fec2eec3ea43 100755
--- a/obsw_tmtc_client.py
+++ b/obsw_tmtc_client.py
@@ -205,7 +205,7 @@ class TmTcHandler:
         elif self.mode == g.ModeList.BinaryUploadMode:
             # Upload binary, prompt user for input, in the end prompt for new mode and enter that
             # mode
-            perform_file_upload(self.communication_interface, self.tmtc_printer)
+            perform_file_upload(self.communication_interface, self.tmtc_printer, self.tm_listener)
             self.command_received = True
             self.mode = g.ModeList.ListenerMode
 
diff --git a/utility/obsw_binary_uploader.py b/utility/obsw_binary_uploader.py
index 2354ad2394200fc343cb0da73b2d014c1bbf2272..fbd00cc53c8f77f16b2c04aae66a3f6b07a075f5 100644
--- a/utility/obsw_binary_uploader.py
+++ b/utility/obsw_binary_uploader.py
@@ -14,14 +14,15 @@ from collections import deque
 from tmtc_core.comIF.obsw_com_interface import CommunicationInterface
 from tc.obsw_tc_service23_sdcard import FileTransferHelper, generate_generic_folder_structure
 import config.obsw_config as g
-from tmtc_core.tc.obsw_pus_tc_base import PusTelecommand
 from tmtc_core.utility.obsw_tmtc_printer import TmTcPrinter, DisplayMode
 from tmtc_core.utility.obsw_logger import get_logger
+from tmtc_core.sendreceive.obsw_tm_listener import TmListener
 
 LOGGER = get_logger()
 
 
-def perform_file_upload(com_if: CommunicationInterface, tmtc_printer: TmTcPrinter):
+def perform_file_upload(com_if: CommunicationInterface, tmtc_printer: TmTcPrinter,
+                        tm_listener: TmListener):
     # TODO: prompt whether this is a binary upload or a normal file upload. Or use op code
     #       two different commands to achieve the same.
     print("Please select file to upload")
@@ -95,9 +96,11 @@ def perform_file_upload(com_if: CommunicationInterface, tmtc_printer: TmTcPrinte
 
     init_ssc = 0
     tmtc_printer.set_display_mode(DisplayMode.SHORT)
+
     file_transfer_helper.set_data_from_file(file_path)
     file_transfer_helper.set_to_delete_old_file()
     file_transfer_helper.generate_packets(init_ssc)
+    tm_listener.set_listener_mode(TmListener.ListenerModes.MANUAL)
     print_string = "BinaryUploader: Detected file size: " + str(file_transfer_helper.file_size())
     LOGGER.info(print_string)
     print_string = "BinaryUploader: " + str(file_transfer_helper.number_of_packets) + \
@@ -117,9 +120,6 @@ def perform_file_upload(com_if: CommunicationInterface, tmtc_printer: TmTcPrinte
             LOGGER.info(tc_info)
 
         time.sleep(0.5)
-        tm_list = com_if.receive_telemetry()
-        for tm_packet in tm_list:
-            # gotta configure tm listener for this to work..
-            tmtc_printer.print_telemetry(tm_packet)
+        tmtc_printer.print_telemetry_queue(tm_listener.retrieve_tm_packet_queue())
     print_string = "BinaryUploader: All binary packets were sent!"
     LOGGER.info(print_string)