diff --git a/configs/config_mb_2023_3_mux_2024.py b/configs/config_mb_2023_3_mux_2024.py
index 680aba50f51187d814024c9be3392f41ced24b48..a4134e6d9321c52512c706cee7439d4b63073d7e 100644
--- a/configs/config_mb_2023_3_mux_2024.py
+++ b/configs/config_mb_2023_3_mux_2024.py
@@ -63,7 +63,8 @@ HARDWARE_CONFIG = {
                           'cabling': {(i+24, j): ('mux_04', i) for j in ['A', 'B', 'M', 'N'] for i in range(1, 9)},
                           'voltage_max': 12.}
                      },
-             'default': {'voltage_max': 100.,
+             'default': {'connection': 'i2c',
+                         'voltage_max': 100.,
                          'current_max': 3.}
              }
 }
diff --git a/configs/config_mb_2023_4_mux_2023.py b/configs/config_mb_2023_4_mux_2023.py
index 6546b1182618ac31559ee8b2566a586092e4ab16..0c0309a29718a650f1eb684a012ee1f440bcf9e6 100644
--- a/configs/config_mb_2023_4_mux_2023.py
+++ b/configs/config_mb_2023_4_mux_2023.py
@@ -18,7 +18,7 @@ OHMPI_CONFIG = {
 }
 
 HARDWARE_CONFIG = {
-    'ctl': {'model': 'raspberry_pi_i2c'},
+    'ctl': {'model': 'raspberry_pi'},
     'pwr': {'model': 'pwr_batt', 'voltage': 12.},
     'tx':  {'model': 'ohmpi_card_3_15',
              'mcp_board_address': 0x20,
@@ -59,7 +59,8 @@ HARDWARE_CONFIG = {
                           'cabling': {(i, j): ('mux_4', i) for j in ['N'] for i in range(1, 65)},
                           'voltage_max': 12.},
                      },
-             'default': {'voltage_max': 100.,
+             'default': {'connection': 'i2c',
+                         'voltage_max': 100.,
                          'current_max': 3.}
              }
 }
diff --git a/ohmpi/hardware_components/mux_2023_rev_0_0.py b/ohmpi/hardware_components/mux_2023_rev_0_0.py
index 63f1f4fd020778cf6947228bc82baa9a8a042e6a..a9012710a904201c2cd2c38ab9bbc4a82ee17de4 100644
--- a/ohmpi/hardware_components/mux_2023_rev_0_0.py
+++ b/ohmpi/hardware_components/mux_2023_rev_0_0.py
@@ -71,7 +71,8 @@ class Mux(MuxAbstract):
         else:
             self.exec_logger.error(f'Invalid role assignment for {self.board_name}: {self._roles} !')
             self._mode = ''
-        self._tca = [adafruit_tca9548a.TCA9548A(self.ctl.bus, tca_address)[i] for i in np.arange(7, 3, -1)]
+        self.io = self.ctl.connections[MUX_CONFIG['connection']]
+        self._tca = [adafruit_tca9548a.TCA9548A(self.io, tca_address)[i] for i in np.arange(7, 3, -1)]
         # self._mcp_addresses = (kwargs.pop('mcp', '0x20'))  # TODO: add assert on valid addresses..
         self._mcp = [None, None, None, None]
         self.reset()
diff --git a/ohmpi/hardware_components/mux_2024_rev_0_0.py b/ohmpi/hardware_components/mux_2024_rev_0_0.py
index 71c0655ec9e291b8add94d284caea33c30cb257c..11ce2f96856efd47ffcba613bd7c1aabae77e158 100644
--- a/ohmpi/hardware_components/mux_2024_rev_0_0.py
+++ b/ohmpi/hardware_components/mux_2024_rev_0_0.py
@@ -12,8 +12,8 @@ MUX_CONFIG.update({'voltage_max': 50., 'current_max': 3.})  # board default valu
 MUX_CONFIG.update({'activation_delay': 0.01, 'release_delay': 0.005})  # s
 # defaults to 4 roles cabling electrodes from 1 to 8
 default_mux_cabling = {(elec, role) : ('mux_1', elec) for role in ['A', 'B', 'M', 'N'] for elec in range(1,9)}
-# defaults to ic connection
-ctl_connection = HARDWARE_CONFIG['ctl'].pop('connection', 'i2c')
+# # defaults to ic connection
+# ctl_connection = HARDWARE_CONFIG['ctl'].pop('connection', 'i2c')
 
 inner_cabling = {'4_roles' : {(1, 'X'): {'MCP': 0, 'MCP_GPIO': 0}, (1, 'Y'): {'MCP': 0, 'MCP_GPIO': 8},
                              (2, 'X'): {'MCP': 0, 'MCP_GPIO': 1}, (2, 'Y'): {'MCP': 0, 'MCP_GPIO': 9},
@@ -76,10 +76,11 @@ class Mux(MuxAbstract):
         else:
             self.exec_logger.error(f'Invalid role assignment for {self.board_name}: {self._roles} !')
             self._mode = ''
+        self.io = self.ctl.connections[kwargs.pop('connection', MUX_CONFIG['connection'])]
         if tca_address is None:
-            self._tca = self.ctl.connections[kwargs.pop('connection', ctl_connection)]
+            self._tca = self.io
         else:
-            self._tca = adafruit_tca9548a.TCA9548A(self.ctl.bus, tca_address)[tca_channel]
+            self._tca = adafruit_tca9548a.TCA9548A(self.io, tca_address)[tca_channel]
         self._mcp_addresses = (kwargs.pop('mcp_0', '0x22'), kwargs.pop('mcp_1', '0x23'))  # TODO: add assert on valid addresses..
         self._mcp = [None, None]
         self.reset()