diff --git a/src/CaptDeviceControl/controller/BaseAD2CaptDevice.py b/src/CaptDeviceControl/controller/BaseAD2CaptDevice.py
index 5a5793d395fbeae9ef08ae322a0175e0ab7c6956..773dc1a8466c4ab692c72a1f98ca860153400d56 100644
--- a/src/CaptDeviceControl/controller/BaseAD2CaptDevice.py
+++ b/src/CaptDeviceControl/controller/BaseAD2CaptDevice.py
@@ -154,18 +154,19 @@ class BaseAD2CaptDevice(cmp.CProcessControl):
         :param device_id:
         :return:
         """
+        self.set_sample_rate(self.model.capturing_information.sample_rate)
+        self.set_selected_ain_channel(self.model.analog_in.selected_ain_channel)
 
     def on_open_device_finished(self, device_handle: int):
         self.logger.info(f"Opening device finished with handle {device_handle}")
-        self.start_capturing_process(self.model.capturing_information.sample_rate,
-                                     self.model.analog_in.selected_ain_channel)
+        self.start_capturing_process()
 
     def close_device(self):
         pass
         # self.close_device()
 
     @cmp.CProcessControl.register_function(capture_process_state_changed)
-    def start_capturing_process(self, sample_rate: float, ain_channel: int):
+    def start_capturing_process(self):
         """
         Starts the capturing process.
         :param sample_rate:
diff --git a/src/CaptDeviceControl/controller/mp_AD2Capture/MPCaptDevice.py b/src/CaptDeviceControl/controller/mp_AD2Capture/MPCaptDevice.py
index cb47c2b4f294db66acaad0657cb1d2124c670336..621ec1c83ac29cbdc4b299a60a008eb5e653c324 100644
--- a/src/CaptDeviceControl/controller/mp_AD2Capture/MPCaptDevice.py
+++ b/src/CaptDeviceControl/controller/mp_AD2Capture/MPCaptDevice.py
@@ -55,14 +55,15 @@ class MPCaptDevice(cmp.CProcess, ):
         self._ain_channels = []
 
         # Capture data counters
-        self._selected_device_index = 0
-        self._selected_ain_channel = 0
+        self._selected_device_index: int = 0
+        self._selected_ain_channel: int = 0
         self._sample_rate = 0
         self._connected = False
         self._device_serial_number: str = ""
         self._device_name: str = ""
 
         self._device_capturing = False
+        self._ready_for_recording = False
 
         # ==============================================================================================================
         self._c_samples = None
@@ -137,6 +138,7 @@ class MPCaptDevice(cmp.CProcess, ):
     @CProperty
     def selected_ain_channel(self) -> int:
         return self._selected_ain_channel
+
     @selected_ain_channel.setter(emit_to='selected_ain_channel_changed')
     def selected_ain_channel(self, value: int):
         self.logger.debug(f"Setting selected ain channel to {value}.")
@@ -518,16 +520,13 @@ class MPCaptDevice(cmp.CProcess, ):
     #
     # ==================================================================================================================
     @cmp.CProcess.register_signal()
-    def start_capturing_process(self, sample_rate: float, ain_channel: int):
+    def start_capturing_process(self):
         """
         Captures data from the device and puts it into a queue.
         :param ain_channel:
         :param sample_rate:
         :return: None
         """
-        self.selected_ain_channel = ain_channel
-        self.sample_rate = sample_rate
-
         self.logger.info(f"Starting capture on channel {self.selected_ain_channel} with rate {self.sample_rate} Hz.")
         hdwf = self.hdwf
         self.device_state(AD2Constants.DeviceState.DEV_CAPT_SETUP())
@@ -535,7 +534,7 @@ class MPCaptDevice(cmp.CProcess, ):
 
         self.setup_sine_wave(self.selected_ain_channel)
 
-        self.setup_acquisition(sample_rate, self.selected_ain_channel)
+        self.setup_acquisition(self.sample_rate, self.selected_ain_channel)
 
         # Variable to receive the acquisition state
         # self.dwf.FDwfAnalogInStatus(self.hdwf, c_int(1), byref(self._ain_device_state))
@@ -566,6 +565,7 @@ class MPCaptDevice(cmp.CProcess, ):
         try:
             # self.dwf.FDwfAnalogOutReset(self.hdwf, c_int(0))
             self.device_state(AD2Constants.DeviceState.DEV_CAPT_STREAMING())
+            self.ready_for_recording = True
             while self.kill_capture_flag.value == int(False):
                 self.dwf.FDwfAnalogInStatus(hdwf, c_int(1), byref(sts))
                 # self._c_samples = 0
@@ -618,6 +618,7 @@ class MPCaptDevice(cmp.CProcess, ):
             self.logger.error(f"Error while capturing data from device: {e}")
             raise Exception(f"Error while capturing data from device: {e}")
         self.logger.info("Capture thread ended.")
+        self.ready_for_recording = False
         self.close_device()
 
     # ==================================================================================================================
diff --git a/src/CaptDeviceControl/view/AD2CaptDeviceView.py b/src/CaptDeviceControl/view/AD2CaptDeviceView.py
index a667149e6fadb93c8dd72e9e8158109235863e6b..a12c24ebac830541345bcbd003a03714d3fa6356 100644
--- a/src/CaptDeviceControl/view/AD2CaptDeviceView.py
+++ b/src/CaptDeviceControl/view/AD2CaptDeviceView.py
@@ -116,8 +116,7 @@ class ControlWindow(QMainWindow):
 
         # Connect the buttons
         self._ui.btn_play.clicked.connect(
-            lambda: self.controller.start_capturing_process(self.model.capturing_information.sample_rate,
-                                                            self.model.analog_in.selected_ain_channel)
+            lambda: self.controller.start_capturing_process()
         )
         self._ui.btn_stop.clicked.connect(self.controller.stop_capturing_process)
 
@@ -214,9 +213,6 @@ class ControlWindow(QMainWindow):
         #else:
         try:
             self.controller.open_device()
-            self.controller.start_capturing_process(
-                self.model.capturing_information.sample_rate
-            )
         except Exception as e:
             self.logger.error(f"Error: {e}")
         #self._ui.btn_connect.setText("Disconnect")