diff --git a/src/classes/dac.py b/src/classes/dac.py
index 63bfa2ae32a02d81d31fcd71c918ea27af66ac90..5f1eb2a696ae69b27b40a55920fa17e1fb3558cc 100644
--- a/src/classes/dac.py
+++ b/src/classes/dac.py
@@ -8,6 +8,7 @@ class DAC():
     def __init__(self, addr):
         self.type = addr[:2]
         self.setup = False
+        self.addr = addr
         
         if self.type=="ao":
             try:
@@ -23,16 +24,21 @@ class DAC():
                 log.info("Seems like the DAC is inaccessible")
         
     def read(self):
+        output = -1
         if self.setup:
             if self.type=="ai":
-                return nidaqmx.Task().read()
+                with nidaqmx.Task() as task:
+                    task.ai_channels.add_ai_voltage_chan("Dev1/"+self.addr)
+                    output = task.read()
             else:
                 print("Cannot read from a analog output")
-        return -1
+        return output
         
     def write(self, value):
         if self.setup:
             if self.type=="ao":
-                nidaqmx.Task().write(value)
+                with nidaqmx.Task() as task:
+                    task.ao_channels.add_ao_voltage_chan("Dev1/"+self.addr)
+                    task.write(value)
             else:
                 print("Cannot write to a analog input")
\ No newline at end of file
diff --git a/src/procedures/b_sweep.py b/src/procedures/b_sweep.py
index 56bd29e6db1371eba91b30228e3a0e09df832ce7..e0b08b2e676c13c6cd75333529a7bd7be1a0dd69 100644
--- a/src/procedures/b_sweep.py
+++ b/src/procedures/b_sweep.py
@@ -53,12 +53,14 @@ class B_Sweep(Procedure):
             
             field.write(b_values[i])
 
-            average_voltage = np.arange(0, int(round(self.acq_time * self.freq)))
+            average_voltage = np.arange(0, int(round(self.acq_time * self.freq)), dtype='float64')
 
             for step in range(len(average_voltage)):
                 average_voltage[step] = voltage.read()
                 sleep(1/self.freq)
 
+            print(average_voltage)
+
             data = {
                 'Magnetic Field [V]': b_values[i],
                 'Voltage': np.mean(average_voltage)
diff --git a/src/procedures/x_sweep.py b/src/procedures/x_sweep.py
index 29a3046da6cca929957889e85dbb0b3a553fba67..74b059b17133d38c99d7458f6263a7a1f95749ac 100644
--- a/src/procedures/x_sweep.py
+++ b/src/procedures/x_sweep.py
@@ -52,7 +52,7 @@ class X_Sweep(Procedure):
         for i in range(len(x_positions)):
             stage.move_x_to(x_positions[i])
 
-            average_voltage = np.arange(0, int(round(self.acq_time * self.freq)))
+            average_voltage = np.arange(0, int(round(self.acq_time * self.freq)), dtype='float64')
 
             for step in range(len(average_voltage)):
                 average_voltage[step] = voltage.read()
diff --git a/src/procedures/y_sweep.py b/src/procedures/y_sweep.py
index 4e7b1ce98f00a103d4f0eb9443d042b9a3991d71..60628b45b38dfbee9ad26d7dee4e199dced455c1 100644
--- a/src/procedures/y_sweep.py
+++ b/src/procedures/y_sweep.py
@@ -52,7 +52,7 @@ class Y_Sweep(Procedure):
         for i in range(len(y_positions)):
             stage.move_y_to(y_positions[i])
 
-            average_voltage = np.arange(0, int(round(self.acq_time * self.freq)))
+            average_voltage = np.arange(0, int(round(self.acq_time * self.freq)), dtype='float64')
 
             for step in range(len(average_voltage)):
                 average_voltage[step] = voltage.read()