diff --git a/src/ui/livetab.py b/src/ui/livetab.py
index 3b2f47484723779fa189100295796fc000b2334d..3d9b755c135f7dc34225aa1192da67ec25812046 100644
--- a/src/ui/livetab.py
+++ b/src/ui/livetab.py
@@ -4,14 +4,13 @@ from pymeasure.display.widgets import TabWidget
 from ..classes.hall_sensor import HallSensor
 
 class LiveTab(TabWidget, QtWidgets.QWidget):
-
     def __init__(self, name, parent=None):
         super().__init__(parent)
         self.name = name
         self.hall_sensor = HallSensor()
 
         font = QtGui.QFont()
-        font.setPointSize(48)
+        font.setPointSize(32)
 
         layout = QtWidgets.QGridLayout()
 
@@ -27,14 +26,29 @@ class LiveTab(TabWidget, QtWidgets.QWidget):
 
         self.sensor_timer = QtCore.QTimer()
         self.sensor_timer.timeout.connect(self.update_sensor_value)
-        self.sensor_timer.start(500)
-
+        self.sensor_timer.start(100)  # Refresh every 0.1 seconds
 
     def update_sensor_value(self):
-        sensor_value = self.hall_sensor.read_mT()
-        self.sensor_value_label.setText(f"{sensor_value:.6f}mT")
+        # Create a worker thread for reading the sensor value
+        worker = SensorWorker(self.hall_sensor)
+        worker.sensor_value_updated.connect(self.update_sensor_label)
+        QtCore.QThreadPool.globalInstance().start(worker)
+
+    def update_sensor_label(self, sensor_value):
+        self.sensor_value_label.setText(str(sensor_value) + "mT")
 
     def zero_sensor_value(self):
         self.sensor_timer.stop()
         self.hall_sensor.zeroing()
         self.sensor_timer.start(100)
+
+class SensorWorker(QtCore.QRunnable):
+    sensor_value_updated = QtCore.pyqtSignal(float)
+
+    def __init__(self, hall_sensor):
+        super().__init__()
+        self.hall_sensor = hall_sensor
+
+    def run(self):
+        sensor_value = self.hall_sensor.read_mT()
+        self.sensor_value_updated.emit(sensor_value)
\ No newline at end of file