diff --git a/ohmpi.py b/ohmpi.py
index 8856f7c95af9427198117804e0d120ad027dee45..695c387ebd00dcf44ad371f74d494777e2d9a1c6 100644
--- a/ohmpi.py
+++ b/ohmpi.py
@@ -118,8 +118,8 @@ class OhmPi(object):
             self.i2c = busio.I2C(board.SCL, board.SDA)  # noqa
 
             # I2C connexion to MCP23008, for current injection
-            self.mcp = MCP23008(self.i2c, address=0x20)
-            self.pin4 = self.mcp.get_pin(4) # Ohmpi_run
+            self.MCPIHM = MCP23008(self.i2c, address=0x24)
+            self.pin4 = self.MCPIHM.get_pin(4) # Ohmpi_run
             self.pin4.direction = Direction.OUTPUT
             self.pin4.value = True
 
@@ -133,10 +133,10 @@ class OhmPi(object):
 
             # current injection module
             if self.idps:
-                self.pin2 = self.mcp.get_pin(2) # dsp +
+                self.pin2 = self.MCPIHM.get_pin(2) # dsp +
                 self.pin2.direction = Direction.OUTPUT
                 self.pin2.value = True
-                self.pin3 = self.mcp.get_pin(3) # dsp -
+                self.pin3 = self.MCPIHM.get_pin(3) # dsp -
                 self.pin3.direction = Direction.OUTPUT
                 self.pin3.value = True
                 time.sleep(4)
@@ -155,10 +155,10 @@ class OhmPi(object):
                 # (last number) 0 is for mA, 3 is for A
 
             # injection courant and measure (TODO check if it works, otherwise back in run_measurement())
-            self.pin0 = self.mcp.get_pin(0)
+            self.pin0 = self.MCPIHM.get_pin(0)
             self.pin0.direction = Direction.OUTPUT
             self.pin0.value = False
-            self.pin1 = self.mcp.get_pin(1)
+            self.pin1 = self.MCPIHM.get_pin(1)
             self.pin1.direction = Direction.OUTPUT
             self.pin1.value = False
 
@@ -305,10 +305,10 @@ class OhmPi(object):
             volt = 5.
 
         # redefined the pin of the mcp (needed when relays are connected)
-        self.pin0 = self.mcp.get_pin(0)
+        self.pin0 = self.MCPIHM.get_pin(0)
         self.pin0.direction = Direction.OUTPUT
         self.pin0.value = False
-        self.pin1 = self.mcp.get_pin(1)
+        self.pin1 = self.MCPIHM.get_pin(1)
         self.pin1.direction = Direction.OUTPUT
         self.pin1.value = False
 
@@ -734,33 +734,34 @@ class OhmPi(object):
             # let's define the pin again as if we run through measure()
             # as it's run in another thread, it doesn't consider these
             # and this can lead to short circuit!
-            self.pin0 = self.mcp.get_pin(0)
+            
+            self.pin0 = self.MCPIHM.get_pin(0)
             self.pin0.direction = Direction.OUTPUT
             self.pin0.value = False
-            self.pin1 = self.mcp.get_pin(1)
+            self.pin1 = self.MCPIHM.get_pin(1)
             self.pin1.direction = Direction.OUTPUT
             self.pin1.value = False
-            self.pin7 = self.mcp.get_pin(7) #IHM on mesaurement
+            self.pin7 = self.MCPIHM.get_pin(7) #IHM on mesaurement
             self.pin7.direction = Direction.OUTPUT
             self.pin7.value = False
             
-                
             if self.sequence is None :
                 if self.idps:
-                    self.pin2 = self.mcp.get_pin(2) # dsp +
+                    self.pin2 = self.MCPIHM.get_pin(2) # dsp +
                     self.pin2.direction = Direction.OUTPUT
                     self.pin2.value = True
-                    self.pin3 = self.mcp.get_pin(3) # dsp -
+                    self.pin3 = self.MCPIHM.get_pin(3) # dsp -
                     self.pin3.direction = Direction.OUTPUT
                     self.pin3.value = True
-                
-            self.pin5 = self.mcp.get_pin(5) #IHM on mesaurement
+                    time.sleep(5)
+                    
+            self.pin5 = self.MCPIHM.get_pin(5) #IHM on mesaurement
             self.pin5.direction = Direction.OUTPUT
             self.pin5.value = True
-            self.pin6 = self.mcp.get_pin(6) #IHM on mesaurement
+            self.pin6 = self.MCPIHM.get_pin(6) #IHM on mesaurement
             self.pin6.direction = Direction.OUTPUT
             self.pin6.value = False
-            self.pin7 = self.mcp.get_pin(7) #IHM on mesaurement
+            self.pin7 = self.MCPIHM.get_pin(7) #IHM on mesaurement
             self.pin7.direction = Direction.OUTPUT
             self.pin7.value = False           
             if self.idps: 
@@ -1085,19 +1086,17 @@ class OhmPi(object):
         self.exec_logger.debug(f'Status: {self.status}')
         self.exec_logger.debug(f'Measuring sequence: {self.sequence}')
         t0 = time.time()
-        self.pin2 = self.mcp.get_pin(2) # dsp -
-        self.pin2.direction = Direction.OUTPUT
-        self.pin2.value = True
-        self.pin3 = self.mcp.get_pin(3) # dsp -
-        self.pin3.direction = Direction.OUTPUT
-        self.pin3.value = True
+        self.reset_mux()
+        
+        
+        
         # create filename with timestamp
         filename = self.settings["export_path"].replace('.csv',
                                                         f'_{datetime.now().strftime("%Y%m%dT%H%M%S")}.csv')
         self.exec_logger.debug(f'Saving to {filename}')
 
         # make sure all multiplexer are off
-        self.reset_mux()
+        
 
         # measure all quadrupole of the sequence
         if self.sequence is None:
@@ -1114,6 +1113,14 @@ class OhmPi(object):
 
             # call the switch_mux function to switch to the right electrodes
             self.switch_mux_on(quad)
+            self.mcp = MCP23008(self.i2c, address=0x24)
+            self.pin2 = self.MCPIHM.get_pin(2) # dsp -
+            self.pin2.direction = Direction.OUTPUT
+            self.pin2.value = True
+            self.pin3 = self.MCPIHM.get_pin(3) # dsp -
+            self.pin3.direction = Direction.OUTPUT
+            self.pin3.value = True
+            time.sleep (4)
 
             # run a measurement
             if self.on_pi:
@@ -1150,8 +1157,8 @@ class OhmPi(object):
             # save data and print in a text file
             self.append_and_save(filename, acquired_data)
             self.exec_logger.debug(f'quadrupole {i + 1:d}/{n:d}')
-        self.pin2.value = True
-        self.pin3.value = True
+        self.pin2.value = False
+        self.pin3.value = False
         self.status = 'idle'
 
     def run_sequence_async(self, cmd_id=None, **kwargs):
@@ -1287,6 +1294,7 @@ class OhmPi(object):
         role : str
             Either 'A', 'B', 'M' or 'N', so we can assign it to a MUX board.
         """
+
         if not self.use_mux or not self.on_pi:
             if not self.on_pi:
                 self.exec_logger.warning('Cannot reset mux while in simulation mode...')