diff --git a/i2cserv/i2c_array.py b/i2cserv/i2c_array.py
index 3baa36454b67c3d007810ca47a4984eb0452c12a..11b7d9f54f339248ade670c3e73c70398dd04040 100644
--- a/i2cserv/i2c_array.py
+++ b/i2cserv/i2c_array.py
@@ -144,7 +144,7 @@ class i2c_array(hwdev):
        self.conf['parentcls'].i2csetget(*args,**kwargs)
     
     def SetSwitch(self,RCUi):
-        self.conf['parentcls'].SetChannel(1<<self.RCU_Switch1[RCUi]);
+        self.conf['parentcls'].SetSW1(self.RCU_Switch1[RCUi]);
 
     def SetSwitchMask(self,mask):
         m=0;
diff --git a/i2cserv/i2c_array2.py b/i2cserv/i2c_array2.py
index 90feff0c502f23fd9b44e5c45eddc01380e305f7..29d5ec4186822f58c95f888afc0faa47c19a5a19 100644
--- a/i2cserv/i2c_array2.py
+++ b/i2cserv/i2c_array2.py
@@ -3,15 +3,10 @@ from .i2c_array import i2c_array;
 from .hwdev import hwdev
 
 
-
 class i2c_array2(i2c_array):
     def __init__(self,config):
         hwdev.__init__(self,config);
-#        self.Qout=Qout;
-#        self.Qin=Qin;
-#        self.I2Ccallback=I2Ccallback
-#        self.SWcallback=Switchcallback
-#        self.previousHBA=np.zeros([number,3,32],dtype='int')
+
 #       Make array of switch states
         pars=config['parameters'];
         self.Nswitch=(len(pars)+1)//2;
@@ -28,9 +23,7 @@ class i2c_array2(i2c_array):
         self.sw1=[x for x in sw1 for i in range(self.N//len(sw1))]
         self.sw2=[x for x in sw2 for i in range(self.N//len(sw1)//len(sw2))]*len(sw1)
         self.sw3=[x for x in sw3]*len(sw1)*len(sw2)
-#        self.devregs,RCU_storeReg=DevRegList(yaml)
         logging.debug(str(("Init",config['name'],' len=',self.N,'Nswitch=',self.Nswitch,self.sw1,self.sw2,self.sw3)))
-#        self.previous   =np.zeros([self.N,RCU_storeReg],dtype='int')
 
     def SetSwitch(self,RCUi):
         #print("Set switch element",RCUi,'=',self.sw1[RCUi],self.sw2[RCUi],(self.sw3[RCUi] if len(self.sw3)<0 else 'x'))
diff --git a/i2cserv/i2c_switch.py b/i2cserv/i2c_switch.py
index 1574fc41c6b770297aa48da440a1f2872a57ba4a..f6a59b97b690612e50a69d19a91f3d1a2cd26785 100644
--- a/i2cserv/i2c_switch.py
+++ b/i2cserv/i2c_switch.py
@@ -10,6 +10,13 @@ class i2c_switch(i2c):
         self.CurrentChannel=0
         logging.info("i2c switch at address "+str(self.SWaddr))
 
+    def SetSW1(self,channelbit):
+        channel=1<<(channelbit)
+        if (channel)==self.CurrentChannel: return True;
+        logging.debug("SetChannel=%i" % channelbit)
+        self.CurrentChannel=channel
+        return self.i2csetget(self.SWaddr,[channel])
+
     def SetChannel(self,channel):
         if (channel)==self.CurrentChannel: return True;
         logging.debug("SetChannel=%i" % channel)
diff --git a/testUNB2.py b/testUNB2.py
index 2bed6c0f04898709831730d87d74c5837e65d542..a6e3530a84a32db8644c76e8258a8f93bae81b75 100644
--- a/testUNB2.py
+++ b/testUNB2.py
@@ -31,6 +31,12 @@ I2Cclients.append(RCU_I2C)
 
 #Load yaml so that we know the variable names
 RCU_conf=yamlreader.yamlreader(RCU_I2C,yamlfile=name)
+var1=RCU_conf.getvarid('UNB2_EEPROM_Unique_ID');
+N=2;
+mask=[i<1 for i in range(N)];
+print("mask=",mask);
+RCU_I2C.readvar(var1,mask);
+
 
 var1=RCU_conf.getvarid('UNB2_DC_DC_48V_12V_VIN');
 N=2;