diff --git a/ohmpi.py b/ohmpi.py
index bec82ec8d6c3cff9fc1e4a1a69809bf43801472b..bc5d6b8f5d327eec5b902fdb9f78f7885e72dc38 100644
--- a/ohmpi.py
+++ b/ohmpi.py
@@ -52,7 +52,7 @@ class OhmPi(object):
     """ OhmPi class.
     """
 
-    def __init__(self, settings=None, sequence=None, use_mux=False, mqtt=True, onpi=None, idps=False):
+    def __init__(self, settings=None, sequence=None, use_mux=None, mqtt=True, onpi=None, idps=None):
         """Constructs the ohmpi object
 
         Parameters
@@ -110,7 +110,16 @@ class OhmPi(object):
         if sequence is not None:
             self.load_sequence(sequence)
 
+        #Use MUX by default on mb.2023.0.0 version
+        if self.use_mux is None:
+            if self.board_version == "mb.2023.0.0":
+                self.use_mux = True
+
         self.idps = idps  # flag to use dps for injection or not
+        #Use IDPS by default on mb.2023.0.0 version
+        if self.idps is None:
+            if self.board_version == "mb.2023.0.0":
+                self.idps = True
 
         # connect to components on the OhmPi board
         if self.on_pi:
@@ -326,20 +335,18 @@ class OhmPi(object):
             vmn=0
             count=0
             while I < 3 or abs(vmn) < 20 :  #TODO: hardware related - place in config
-            
                 if count > 0 :
-                    print('o', volt)
                     volt = volt + 2
-                    print('>', volt)
-                count=count+1
+                count = count + 1
                 if volt > 50:
                     break
         
                 # set voltage for test
+                self.DPS.write_register(0x0000, volt, 2)
                 if count==1:
                     self.DPS.write_register(0x09, 1)  # DPS5005 on
-                    time.sleep(best_tx_injtime)  # inject for given tx time
-                self.DPS.write_register(0x0000, volt, 2)
+                time.sleep(best_tx_injtime)  # inject for given tx time
+
                 # autogain
                 self.ads_current = ads.ADS1115(self.i2c, gain=2 / 3, data_rate=860, address=self.ads_current_address)
                 self.ads_voltage = ads.ADS1115(self.i2c, gain=2 / 3, data_rate=860, address=self.ads_voltage_address)
@@ -360,7 +367,7 @@ class OhmPi(object):
                 if U0 < 0:  # we guessed it wrong, let's use a correction factor
                     polarity = -1
                     vmn = U2
-            
+
             n = 0
             while (abs(vmn) > voltage_max or I > current_max) and volt>0:  #If starting voltage is too high, need to lower it down
                 # print('we are out of range! so decreasing volt')
@@ -385,7 +392,9 @@ class OhmPi(object):
             factor = factor_I
             if factor_I > factor_vmn:
                 factor = factor_vmn
-            vab = factor * volt * 0.8
+            #print('factor', factor_I, factor_vmn)
+            vab = factor * volt #* 0.8
+            print(factor, volt, vab)
             if vab > tx_max:
                 vab = tx_max
 
@@ -397,7 +406,6 @@ class OhmPi(object):
             while I > 10 or abs(vmn) > 300 :  #TODO: hardware related - place in config
                 if count > 0 :
                     volt = volt - 2
-                print(volt, count)
                 count=count+1
                 if volt > 50:
                     break
@@ -1063,7 +1071,8 @@ class OhmPi(object):
             r_stack_mean = vmn_stack_mean / i_stack_mean
             r_stack_std = np.sqrt((vmn_std/vmn_stack_mean)**2 + (i_std/i_stack_mean)**2) * r_stack_mean
             ps_stack_mean = np.mean(np.array([np.mean(np.mean(vmn_stack[i * 2:i * 2 + 2], axis=1)) for i in range(nb_stack)]))
-
+            if Rab is None:
+                Rab = 'None'
             # create a dictionary and compute averaged values from all stacks
             # if self.board_version == 'mb.2023.0.0':
             d = {
@@ -1084,14 +1093,14 @@ class OhmPi(object):
                 "fulldata": fulldata,
                 "I_stack [mA]": i_stack_mean,
                 "I_std [mA]": i_std,
-                "I_per_stack [mA]": np.array([np.mean(i_stack[i*2:i*2+2]) for i in range(nb_stack)]),
+                "I_per_stack [mA]": [np.mean(i_stack[i*2:i*2+2]) for i in range(nb_stack)],
                 "Vmn_stack [mV]": vmn_stack_mean,
                 "Vmn_std [mV]": vmn_std,
-                "Vmn_per_stack [mV]": np.array([np.diff(np.mean(vmn_stack[i*2:i*2+2], axis=1))[0] / 2 for i in range(nb_stack)]),
+                "Vmn_per_stack [mV]": [np.diff(np.mean(vmn_stack[i*2:i*2+2], axis=1))[0] / 2 for i in range(nb_stack)],
                 "R_stack [ohm]": r_stack_mean,
                 "R_std [ohm]": r_stack_std,
-                "R_per_stack [Ohm]": np.mean([np.diff(np.mean(vmn_stack[i*2:i*2+2], axis=1)) / 2 for i in range(nb_stack)]) / np.array([np.mean(i_stack[i*2:i*2+2]) for i in range(nb_stack)]),
-                "PS_per_stack [mV]":  np.array([np.mean(np.mean(vmn_stack[i*2:i*2+2], axis=1)) for i in range(nb_stack)]),
+                "R_per_stack [Ohm]": list(np.mean([np.diff(np.mean(vmn_stack[i*2:i*2+2], axis=1)) / 2 for i in range(nb_stack)]) / np.array([np.mean(i_stack[i*2:i*2+2]) for i in range(nb_stack)])),
+                "PS_per_stack [mV]":  list(np.array([np.mean(np.mean(vmn_stack[i*2:i*2+2], axis=1)) for i in range(nb_stack)])),
                 "PS_stack [mV]": ps_stack_mean,
                 "R_ab [ohm]": Rab
             }
@@ -1232,7 +1241,7 @@ class OhmPi(object):
             self.pin3 = self.MCPIHM.get_pin(3) # dsp -
             self.pin3.direction = Direction.OUTPUT
             self.pin3.value = True
-            time.sleep (5)
+            time.sleep(4)
 
             # run a measurement
             if self.on_pi: