diff --git a/pyrelacs/repros/repos.py b/pyrelacs/repros/repos.py
index 0de3d1b..2fc7c60 100644
--- a/pyrelacs/repros/repos.py
+++ b/pyrelacs/repros/repos.py
@@ -1,4 +1,6 @@
 from ctypes import Array, c_double
+from typing import Union
+import numpy.typing as npt
 import uldaq
 import numpy as np
 
@@ -51,11 +53,43 @@ class Repos:
             data=data_analog_input,
         )
         ai_device.scan_wait(uldaq.WaitType.WAIT_UNTIL_DONE, timeout=-1)
-        log.info(f"Sampled with {er}")
         log.debug("Scanning")
 
         return data_analog_input
 
+    def send_analog_dac(
+        self,
+        data: Union[list, npt.NDArray],
+        channels: list[int],
+        duration: int,
+        samplerate: float,
+        AiInputMode: uldaq.AiInputMode = uldaq.AiInputMode.SINGLE_ENDED,
+        Range: uldaq.Range = uldaq.Range.BIP10VOLTS,
+        ScanOption: uldaq.ScanOption = uldaq.ScanOption.DEFAULTIO,
+        AInScanFlag: uldaq.AOutScanFlag = uldaq.AOutScanFlag.DEFAULT,
+    ) -> Array[c_double]:
+
+        buffer = c_double * len(data)
+        data_analog_output = buffer(*data)
+
+        log.debug(f"Created C_double data {data_analog_output}")
+        ao_device = self.daq_device.get_ao_device()
+        ao_info = ao_device.get_info()
+
+        err = ao_device.a_out_scan(
+            channels[0],
+            channels[1],
+            Range,
+            int(len(data)),
+            samplerate,
+            ScanOption,
+            AInScanFlag,
+            data_analog_output,
+        )
+        ao_device.scan_wait(uldaq.WaitType.WAIT_UNTIL_DONE, 11)
+
+        return data_analog_output
+
     def disconnect_dac(self):
         self.daq_device.disconnect()
         self.daq_device.release()