diff --git a/examples/test_with_captdev.py b/examples/test_with_captdev.py
index 360d3619e2b532917e8390e89b187bb7e10ba902..ae4787a1a50520d6b78fdebca366be663a7e00bc 100644
--- a/examples/test_with_captdev.py
+++ b/examples/test_with_captdev.py
@@ -20,7 +20,8 @@ if __name__ == "__main__":
         app = QApplication.instance()
 
     conf_capt_dev = captdev.Config()
-    #conf.load("config.yaml")
+    conf_capt_dev.load("CaptDeviceConfig.yaml")
+    conf_capt_dev.autosave()
 
     start_capture_flag = Value('i', 0)
     capt_dev_model = captdev.Model(conf_capt_dev)
diff --git a/pyproject.toml b/pyproject.toml
index 1159beacdcc970a155fda4db4fb7d05fee342a55..f1bcf3f30582ee78539c9c3286a8e830b7682f17 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,6 @@
 [project]
 name = "lasercontrol"
-version = "0.1.2"
+version = "0.1.3"
 authors = [
   { name="Christoph Schmidt", email="cschmidt.fs@gmail.com" },
 ]
diff --git a/src/LaserControl/controller/LaserControlController.py b/src/LaserControl/controller/LaserControlController.py
index ef10b4d6f6abd9204f382b2f573fbd194ffbfc14..452db943263ada9042ce46be35cd6e8e2ba7d2bb 100644
--- a/src/LaserControl/controller/LaserControlController.py
+++ b/src/LaserControl/controller/LaserControlController.py
@@ -9,6 +9,7 @@ from LaserControl.model.LaserControlModel import LaserControlModel
 
 import CaptDeviceControl as captdev
 
+
 class LaserControlController:
 
     def __init__(self, model: LaserControlModel, start_capture_flag: Value = None):
@@ -18,30 +19,30 @@ class LaserControlController:
         self.model = model
 
         # Multiprocess variables
-        #self.proc: Process = None
+        # self.proc: Process = None
         self.lock = Lock()
-        #self._laser_port = Value('i', 0, lock=self.lock)
-        #self._laser_connected_flag = Value('i', False, lock=self.lock)
+        # self._laser_port = Value('i', 0, lock=self.lock)
+        # self._laser_connected_flag = Value('i', False, lock=self.lock)
 
         self._laser_moving_flag = Value('i', False, lock=self.lock)
         self._laser_finished_flag = Value('i', False, lock=self.lock)
 
-        #if self.model.capturing_device is None or not self.model.capturing_device_connected:
+        # if self.model.capturing_device is None or not self.model.capturing_device_connected:
         if start_capture_flag is not None:
             self._start_capture_flag = start_capture_flag
         else:
             self._start_capture_flag = Value('i', False, lock=self.lock)
 
-        #self._current_wavelength = Value('f', 0.0, lock=self.lock)
+        # self._current_wavelength = Value('f', 0.0, lock=self.lock)
 
-        #self._laser_state = Value(LaserStateArray, (False, False, False, 0, 0, 0), lock=self.lock)
+        # self._laser_state = Value(LaserStateArray, (False, False, False, 0, 0, 0), lock=self.lock)
 
         # For the sweep
-        #self.laser_at_start_position_flag = Value('i', False, lock=self.lock)
-        #self.laser_at_end_position_flag = Value('i', False, lock=self.lock)
+        # self.laser_at_start_position_flag = Value('i', False, lock=self.lock)
+        # self.laser_at_end_position_flag = Value('i', False, lock=self.lock)
 
         # Threads for acquiring data from the process
-        #self.thread_manager = QThreadPool()
+        # self.thread_manager = QThreadPool()
         self.mp_laser_controller = MPLaserDeviceControl(None,
                                                         self._laser_moving_flag,
                                                         self._laser_finished_flag,
@@ -76,9 +77,9 @@ class LaserControlController:
 
         self.kill_thread = False
 
-
     def connect_capture_device(self, device: captdev.Controller):
-        self.logger.info("***********************************************Connecting to capture device..***********************************")
+        self.logger.info(
+            "***********************************************Connecting to capture device..***********************************")
         self.mp_laser_controller.mp_read_laser_settings(self.model.port)
         if isinstance(device, captdev.Controller):
             self.model.capturing_device = device
@@ -86,13 +87,10 @@ class LaserControlController:
                 lambda x: type(self.model).capturing_device_connected.fset(self.model, x)
             )
 
-
-
     def connect_device(self):
         self.logger.info("Connecting to laser...")
         self.mp_laser_controller.mp_read_laser_settings(self.model.port)
 
-
     def _move_to_wavelength_finished(self, wavelength: float):
         self.logger.info(f"Move to wavelength finished. Current wavelength: {wavelength}")
 
@@ -106,7 +104,6 @@ class LaserControlController:
     def _laser_movement_finished(self, is_finished: bool):
         pass
 
-
     # def _monitor_laser_state(self):
     #     while not self.kill_thread:
     #         self.model.connected = bool(self._laser_connected_flag.value)
@@ -137,13 +134,30 @@ class LaserControlController:
         # self.capt_device.clear_data()
         # Reset the flag
         # self.capt_device.model.capturing_finished = False
+        self.logger.info(f"Starting wavelength sweep from {start_wavelength} to {stop_wavelength}")
         if self.model.capturing_device is not None:
             self.model.capturing_device.reset_capture()
-        if start_wavelength is None:
-            start_wavelength = self.model.sweep_start_wavelength
-        if stop_wavelength is None:
-            stop_wavelength = self.model.sweep_stop_wavelength
-        self.mp_laser_controller.wavelength_sweep(self.model.port, start_wavelength, stop_wavelength)
+            if not self.model.capturing_device.model.device_information.device_connected:
+                self.model.capturing_device.open_device()
+                self.model.capturing_device.ready_for_recording_changed.connect(
+                    lambda ready: self.start_wavelength_sweep_emitted(start_wavelength, stop_wavelength, ready=ready)
+                )
+            self.logger.info("Capturing device is connected.")
+
+            if self.model.capturing_device.model.capturing_information.ready_for_recording:
+                self.start_wavelength_sweep_emitted(start_wavelength, stop_wavelength)
+
+
+        else:
+            self.start_wavelength_sweep_emitted(start_wavelength, stop_wavelength)
+
+    def start_wavelength_sweep_emitted(self, start_wavelength: float = None, stop_wavelength: float = None, ready=True):
+        if ready:
+            if start_wavelength is None:
+                start_wavelength = self.model.sweep_start_wavelength
+            if stop_wavelength is None:
+                stop_wavelength = self.model.sweep_stop_wavelength
+            self.mp_laser_controller.wavelength_sweep(self.model.port, start_wavelength, stop_wavelength)
 
     def move_to_wavelength(self, wavelength: float) -> None:
         self.logger.info(f"Move to wavelength {wavelength}")
@@ -151,7 +165,7 @@ class LaserControlController:
 
     def stop_process(self):
         time_start = time.time()
-        #if self.proc is not None:
+        # if self.proc is not None:
         #    while self.proc.is_alive():
         #        time.sleep(0.1)
         #    self.logger.warning(f"Laser process exited after {time.time() - time_start}s")
diff --git a/src/LaserControl/controller/multiprocess/MPLaserDevice.py b/src/LaserControl/controller/multiprocess/MPLaserDevice.py
index 04a909cb1aef258d79a01e1711a4a2bf03ee0bcc..1f1e9e37c019ded968b3f8e9d56ab2a515b7f1e4 100644
--- a/src/LaserControl/controller/multiprocess/MPLaserDevice.py
+++ b/src/LaserControl/controller/multiprocess/MPLaserDevice.py
@@ -122,7 +122,7 @@ class MPLaserDevice(cmp.CProcess):
         self.laser_finished_flag.value = finished
         return self.laser_finished_flag.value
 
-    @cmp.CProcess.register_signal(postfix="_finsihed")
+    @cmp.CProcess.register_signal(postfix="_finished")
     def move_to_wavelength(self, usb_port: str = None, wavelength: float = None, capture: bool = False,
                            con: LaserCon = None, *args, **kwargs):
         # laser_moving_flag.value = False