diff --git a/obsw_tmtc_client.py b/obsw_tmtc_client.py
index 7a6cb3da69a33c685677b87cd3ac5280362408ce..c5405fc9f869a8b73e2d1784f2ddb11084e44745 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_binary_upload(self.communication_interface)
+            perform_binary_upload(self.communication_interface, self.tmtc_printer)
             self.command_received = True
             self.mode = g.ModeList.ListenerMode
 
diff --git a/tc/obsw_tc_service23.py b/tc/obsw_tc_service23.py
index b4cd8502aa98ccc453381f6254fcf865b45d45fe..513c87d7f3f42acf5b89eec0a21e32a8d332cc81 100644
--- a/tc/obsw_tc_service23.py
+++ b/tc/obsw_tc_service23.py
@@ -165,6 +165,7 @@ class FileTransferHelper:
         packet_sequence_number = 0
 
         for i in range(number_of_packets):
+            print("appending split")
             header.append(packet_sequence_number >> 8)
             header.append(0xFF & packet_sequence_number)
             header += data[i * size_of_data_blocks:(i + 1) * size_of_data_blocks]
diff --git a/tmtc_core b/tmtc_core
index 5313a6e1fbc3e15d3b5145c6c7a1b741b843b2f9..156030a9485ee7607b1b82711f37cf5bf91d25a3 160000
--- a/tmtc_core
+++ b/tmtc_core
@@ -1 +1 @@
-Subproject commit 5313a6e1fbc3e15d3b5145c6c7a1b741b843b2f9
+Subproject commit 156030a9485ee7607b1b82711f37cf5bf91d25a3
diff --git a/utility/obsw_binary_uploader.py b/utility/obsw_binary_uploader.py
index 2af1725191e073d05a78a218bec15ede2b04d52e..c489847206e65d2852a4115111de26a9ba92f1ba 100644
--- a/utility/obsw_binary_uploader.py
+++ b/utility/obsw_binary_uploader.py
@@ -15,12 +15,13 @@ from tmtc_core.comIF.obsw_com_interface import CommunicationInterface
 from tc.obsw_tc_service23 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
 
 LOGGER = get_logger()
 
 
-def perform_binary_upload(com_if: CommunicationInterface):
+def perform_binary_upload(com_if: CommunicationInterface, tmtc_printer: TmTcPrinter):
     print("Please select file to upload")
     root = tk.Tk()
     root.withdraw()
@@ -54,30 +55,44 @@ def perform_binary_upload(com_if: CommunicationInterface):
 
     print("Generating folder structure..")
     tc_queue = deque()
-    generate_generic_folder_structure(tc_queue, 0)
+
+    # generate_generic_folder_structure(tc_queue, 0)
+    # while tc_queue:
+    #     (tc_packet, tc_info) = tc_queue.pop()
+    #     if not isinstance(tc_packet, str):
+    #         com_if.send_telecommand(tc_packet, tc_info)
+    #     elif tc_packet == "print":
+    #         LOGGER.info(tc_info)
+    #
+    #     time.sleep(0.5)
+    #     tm_list = com_if.receive_telemetry()
+    #     LOGGER.info(str(len(tm_list)) + " TM packets received..")
+
+    # Delete existing binary file first, otherwise data might be appended to otherwise
+    # valid file which already exists.
+    file_transfer_helper = FileTransferHelper(
+        tc_queue=tc_queue, max_size_of_app_data=1500, target_repository="BIN/AT91/BL",
+        target_filename="bl.bin")
+
+    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)
+
+    idx = 1
     while tc_queue:
         (tc_packet, tc_info) = tc_queue.pop()
         if not isinstance(tc_packet, str):
+            print_string = "Sending packet " + str(idx)
+            LOGGER.info(print_string)
             com_if.send_telecommand(tc_packet, tc_info)
         elif tc_packet == "print":
             LOGGER.info(tc_info)
 
-        time.sleep(0.2)
+        time.sleep(5.0)
         tm_list = com_if.receive_telemetry()
-        LOGGER.info(str(len(tm_list)) + " TM packets received..")
-
-    # Delete existing binary file first, otherwise data might be appended to otherwise
-    # valid file which already exists.
-    # file_transfer_helper = FileTransferHelper(
-    #     tc_queue=tc_queue, max_size_of_app_data=1500, target_repository="BIN/AT91/BL",
-    #     target_filename="bl.bin")
-    #
-    # file_transfer_helper.generate_packets(1)
-    # file_transfer_helper.set_to_delete_old_file()
-    # # We have to split the binary here first
-    # # generate_append_to_file_packets_automatically(tc_queue, ,, 1024, data_to_read)
-    # while tc_queue:
-    #     (tc_packet, tc_info) = tc_queue.pop()
-    #     com_if.send_telecommand(tc_packet, tc_info)
-    #     print("Sending..")
-    #     time.sleep(30.0)
+        for tm_packet in tm_list:
+            # gotta configure tm listener for this to work..
+            tmtc_printer.print_telemetry(tm_packet)
+    LOGGER.info("All binary packets sent!")