diff --git a/kuka/reader.py b/kuka/reader.py
index 33e2648ecd120d18d3a0f4642648632bb682f428..8374db385043b7cea7b261c1628fd43137ffc257 100644
--- a/kuka/reader.py
+++ b/kuka/reader.py
@@ -4,6 +4,7 @@ import pandas as pd
 from typing import Callable, List, Tuple
 from threading import Semaphore
 from datetime import datetime
+import numpy as np
 
 from .handler import KUKA_Handler
 from .trace import KUKA_Trace
@@ -352,6 +353,11 @@ class KUKA_DataReader:
         
         data_trace['Load'] = [load] * dataset_length
 
+        sampling = sampling / 1000
+        print(sampling, sampling_offset * sampling)
+
+        # data_trace["Sample_time"] += (sampling_offset * sampling)
+
         return (pd.DataFrame(data_trace), dataset_length)
 
     def acquire (
@@ -419,7 +425,7 @@ class KUKA_DataReader:
             # KUKA Trace
             if self.tracing:
                 # self.trace.Trace_Stop()
-                # sleep(5)
+                sleep(1)
                 data_trace, _ = self.get_trace_data(speed, load, trace_sampling, temp_dir)
 
             # Indicating the end of this run
@@ -468,7 +474,7 @@ class KUKA_DataReader:
             # KUKA Trace
             if self.tracing:
                 self.trace.Trace_Stop()
-                sleep(0.1)
+                sleep(1)
                 data_trace, size = self.get_trace_data(start, load, trace_sampling, temp_dir, trace_offset)
                 
                 # Updating the offset
@@ -486,6 +492,10 @@ class KUKA_DataReader:
             start += step 
 
         # Merging the results for each speed into one monolithic DataFrame for each method
-        return pd.concat(dataframes), pd.concat(trace_dataframes)
+        sys_data = pd.concat(dataframes)
+        trace_data = pd.concat(trace_dataframes)
+        trace_data["Sample_time"] = np.arange(len(trace_data["Sample_time"])) * (trace_sampling / 1000)
+
+        return sys_data, trace_data 
     
         ## --------------------------------- ##
diff --git a/kuka/trace.py b/kuka/trace.py
index 20f9226ef795bee777ab62cbad4de253ce8b9cbd..ea3f1847b04a5865a617c77f25fcc315331e7b55 100644
--- a/kuka/trace.py
+++ b/kuka/trace.py
@@ -138,6 +138,8 @@ class KUKA_Trace:
             self.rob_instance.KUKA_WriteVar('$TRACE.MODE', '#T_STOP')
         if self.rob_instance.KUKA_ReadVar('$TRACE.STATE') in [b'#T_END', b'#T_WRITING']:
             print('Trace stopped')
+        else:
+            print("Failed to stop the trace")
 
     def Trace_State(self):
         """
@@ -172,7 +174,6 @@ class KUKA_Trace:
 
         return result
 
-
     def translate (self, value: str) -> str:
 
         if value in self.translations:
@@ -204,7 +205,6 @@ class KUKA_Trace:
                 shutil.copyfile(src, dest)
                 src.unlink()
 
-
     def find_pairs (self, name: str):
 
         extensions = ['.dat', '.r64', ".trc"]
@@ -344,17 +344,15 @@ class KUKA_Trace:
             data.append((dat, r64))
 
         min_sampling = data[0][0].sampling
-        max_sampling = data[0][0].sampling
-        min_length = data[0][0].length
         for d in data:
             min_sampling = min(d[0].sampling, min_sampling)
-            max_sampling = max(d[0].sampling, max_sampling)
-            min_length = min(d[0].length, min_length)
 
-        ratio = int(max_sampling // min_sampling)
-        length = min_length * ratio
+        min_length = 12e9
+        for d in data:
+            ratio = int(d[0].sampling // min_sampling)
+            min_length = min(d[0].length * ratio, min_length)
 
-        print(length, ratio, min_sampling, max_sampling, min_length)
+        length = min_length
 
         dataframe = pd.DataFrame()
 
diff --git a/test_trace.py b/test_trace.py
new file mode 100644
index 0000000000000000000000000000000000000000..e7ceb3a136adb27259b9ff671c60dee6079647ee
--- /dev/null
+++ b/test_trace.py
@@ -0,0 +1,28 @@
+from kuka import KUKA_Trace, KUKA_Handler
+
+h = KUKA_Handler("192.168.1.153", 7000)
+trace = KUKA_Trace(h)
+
+trace.name = "2024-05-27_16-06-53[70]_R2"
+
+pairs = trace.find_pairs(trace.name)
+
+dats = []
+
+for pair in pairs:
+
+    dat_path = trace.temp_folder.joinpath(trace.name).joinpath(pair[0])
+    dat = trace.read_dat(dat_path)
+
+    dats.append(dat)
+
+min_sampling = 1
+for dat in dats:
+    min_sampling = min(min_sampling, dat.sampling)
+
+min_len = 1e9
+for dat in dats:
+    ratio = int(dat.sampling // min_sampling)
+    min_len = min(min_len, dat.length * ratio)
+
+print(min_len)
\ No newline at end of file