diff --git a/i2c/I2C.py b/i2c/I2C.py
index 1abf950ecc4c569dd746cbee4ab8b467a9ab822c..301eda80276f841c937b9b081463a40b119113b2 100644
--- a/i2c/I2C.py
+++ b/i2c/I2C.py
@@ -17,7 +17,7 @@ def I2C1server(addr,data,reg=None,read=0):
 
 #       print("I2C",addr,reg,data,read)
 #       return True;
-       bus=pylibi2c.I2CDevice('/dev/i2c-1',addr)
+       bus=pylibi2c.I2CDevice('/dev/i2c-2',addr)
        if read==1:
          length=len(data)
          bus.iaddr_bytes=0
@@ -33,6 +33,6 @@ def I2C1server(addr,data,reg=None,read=0):
        return True;
   except:
        if bus: bus.close()
-#       data[0]=0
+#       data[0]=0xff
        return False;
 
diff --git a/i2c/test.py b/i2c/test.py
new file mode 100644
index 0000000000000000000000000000000000000000..92ee093a8b833322558341cd664855f643f57dd1
--- /dev/null
+++ b/i2c/test.py
@@ -0,0 +1,37 @@
+from I2C import *
+import time
+RCU=1
+Ver="RCU2H v0.2"
+R1=0
+ROM=0x50
+
+ID=[0]*7
+I2C1server(0x20,ID,reg=2,read=1)
+print(ID)
+I2C1server(0x20,ID,reg=2,read=1)
+print(ID)
+exit()
+#0=0
+#1=0   #debug?
+#2=21  #spd1
+#3=7   #spd2
+#4=175 #TXspeed
+#5=0
+#6=0
+
+#Upload version
+Ver2=[(c.encode('utf-8')[0]) for c in Ver]
+print(len(Ver),Ver,Ver2)
+V2=[0]
+for i,v in enumerate(Ver2):
+ time.sleep(0.1)
+ I2C1server(ROM,[v],reg=R1+i,read=0) #select RCU
+# I2C1server(ROM,[v],reg=None,read=0) #select RCU
+ time.sleep(0.1)
+ I2C1server(ROM,V2,reg=R1+i,read=1) #select RCU
+ print(i,v,V2)
+
+#Download version
+Ver2=[0]*10
+I2C1server(ROM,Ver2,reg=R1,read=1) #select RCU
+print(Ver2)
diff --git a/pcctypes.py b/pcctypes.py
index 1450ec4701ec6f76d6a96a1141b592e874666fc2..e25c0b7079abc39ed6a8de2022ce86cb04585801 100644
--- a/pcctypes.py
+++ b/pcctypes.py
@@ -46,6 +46,7 @@ class datatype(Enum):
    dInt = 0
    dfloat = 1
    dstring = 2
+   dbool = 3
 
 #Variable two device link
 Var2dev=namedtuple("Var2dev","name module type devreg width bitoffset Scale")
diff --git a/pypcc2.py b/pypcc2.py
index 7d7b53ec12842885482d182d89dd585a05290016..2774dfb80a6ef6a5208f7908fee785a4f5be74a0 100644
--- a/pypcc2.py
+++ b/pypcc2.py
@@ -14,6 +14,8 @@ import time
 import logging
 import argparse
 
+NRCU=32
+
 parser = argparse.ArgumentParser()
 parser.add_argument("-s", "--simulator", help="Do not connect to I2c, but simulate behaviour.", action="store_true")
 parser.add_argument("-p", "--port", help="Port number to listen on [%(default)s].", type=int, default=4842)
@@ -42,7 +44,7 @@ logging.info("OPC-UA Server started")
 
 SW1=I2Cswitch1.I2Cswitch1(I2C.I2C1server)
 
-RCU=RCU.RCU1(32,I2C.I2C1server,SW1.SetChannel)
+RCU=RCU.RCU1(NRCU,I2C.I2C1server,SW1.SetChannel)
 RCU.AddVars(Q1,opcuaserv.AddVarR,opcuaserv.AddVarW)
 RCU.AddMethod(Q1,opcuaserv.Addmethod)
 RCU.load() #Load current register values from HW
@@ -75,7 +77,7 @@ def TimerThread(Q1,RCU):
          if Q1.qsize()>3: continue;
          cnt=0;
          logging.debug(str(("I2C bytes=",I2C.I2Ccounter," Qlength=",Q1.qsize())))
-         RCU.Queue_Monitor(Q1)
+         RCU.Queue_Monitor(Q1,NRCU)
 
     logging.info("End Timer thread")
 
diff --git a/rcu/HWconf.py b/rcu/HWconf.py
index 8f9323da309bfa5e3fc21896738e93c3592e4240..38fa6597468691b490413f5a8086cecedb73977d 100644
--- a/rcu/HWconf.py
+++ b/rcu/HWconf.py
@@ -4,6 +4,8 @@ from pcctypes import *
 #Mid plane address
 #MPaddr=namedtuple("MPaddr","nI2C I2C nSwitch Switch"); 
 RCU_MPaddr=MPaddr(1,[1],32,[0,1,2,3,4,5,6,7,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5])
+#RCU_MPaddr=MPaddr(1,[1],2,[0,1])
+#RCU_MPaddr=MPaddr(1,[1],1,[0])
 #CLK_MPaddr=MPaddr(1,[1],1,[7])
 
 #DevReg=namedtuple("DevReg","Addr Register_R Register_W store"); 
@@ -25,10 +27,10 @@ RCU_IO2_OUT2=DevReg(0x76,1,3,6)
 RCU_IO2_CONF1=DevReg(0x76,6,6,7)
 RCU_IO2_CONF2=DevReg(0x76,7,7,8)
 #Device: TCA6416
-RCU_IO3_OUT1=DevReg(0x20,0,2,9)
-RCU_IO3_OUT2=DevReg(0x20,1,3,10)
-RCU_IO3_CONF1=DevReg(0x20,6,6,11)
-RCU_IO3_CONF2=DevReg(0x20,7,7,12)
+RCU_IO3_OUT1=DevReg(0x2F,0,2,9)
+RCU_IO3_OUT2=DevReg(0x2F,1,3,10)
+RCU_IO3_CONF1=DevReg(0x2F,6,6,11)
+RCU_IO3_CONF2=DevReg(0x2F,7,7,12)
 
 RCU_storeReg=13; #Number of stored registers
 
@@ -40,9 +42,10 @@ RCU_AN_Ch2=DevReg(0x14,0xB180,-1,0)
 RCU_AN_Temp=DevReg(0x14,0xA0C0,-1,0)
 
 #HBA1
-RCU_HBA1=DevReg(0x41,0,0,1)
-RCU_HBA2=DevReg(0x42,0,0,2)
-RCU_HBA3=DevReg(0x43,0,0,3)
+RCU_HBA1=DevReg(0x41,0x10,0x10,1)
+RCU_HBA2=DevReg(0x42,0x10,0x10,2)
+RCU_HBA3=DevReg(0x43,0x10,0x10,3)
+
 
 
 RCU_ROM_ID =DevReg(0x50,0xfc,0xfc,0) #32 bit ID=4 bytes
diff --git a/rcu/RCU.py b/rcu/RCU.py
index 2c0511a932f9d4796f9cf18ec2c8d1a41ca56d9d..6f9fc17d0856d40755daaa16c526591bd2f7d55b 100644
--- a/rcu/RCU.py
+++ b/rcu/RCU.py
@@ -49,7 +49,8 @@ class RCU1():
         self.N=number;
         self.I2Ccallback=I2Ccallback
         self.SWcallback=Switchcallback
-        self.previous=np.zeros([number,Vars.RCU_storeReg],dtype='int')
+        self.previous   =np.zeros([number,Vars.RCU_storeReg],dtype='int')
+        self.previousHBA=np.zeros([number,3,32],dtype='int')
 
     def load(self):
         Inst1=Vars.Instr(Vars.DevType.Instr,Vars.RCU_init,0,[])  #Read the current status of GPIO IOs
@@ -79,13 +80,13 @@ class RCU1():
         if Instr.type==Vars.DevType.Instr:
               #Execute instructions
               Iset=Instr.dev;
-              if len(Mask)==0:  Mask=Vars.RCU_mask.OPCW.get_data_value().Value.Value
+              if len(Mask)==0:  Mask=Vars.RCU_mask.OPCW.get_value()
               for i in Iset.instr:
                   logging.debug(str(("Inst",i)))
                   self.SetVar(i,Mask=Mask)
               return;
         if Instr.type in [Vars.DevType.I2C,Vars.DevType.SPIbb,Vars.DevType.I2Cbb]:
-            if len(Mask)==0:  Mask=Vars.RCU_mask.OPCW.get_data_value().Value.Value
+            if len(Mask)==0:  Mask=Vars.RCU_mask.OPCW.get_value()
             mask=0;
             RCU0=-1;
             for RCUi in range(self.N):
@@ -111,15 +112,15 @@ class RCU1():
              logging.error("Wrong size of value")
              return False
         if V1.Vars[0].type==Vars.DevType.Internal:
-          Instr.dev.OPCW.get_data_value().Value.Value=Instr.value
+          Instr.dev.OPCW.set_value(Instr.value)
           logging.debug("Update internal variable")
           return
 #        if V1.Vars[0].type==Vars.DevType.Internal: return;
         Step=V1.nVars
         Step2=int(V1.size/V1.nVars)
         Mask=(Vars.RCU_mask if Step==1 else Vars.Ant_mask)
-        Mask=Mask.OPCW.get_data_value().Value.Value
-        value1=strs2bytes(Instr.value) if V1.OPCR is None else strs2bytes(V1.OPCR.get_data_value().Value.Value)
+        Mask=Mask.OPCW.get_value()
+        value1=strs2bytes(Instr.value) if V1.OPCR is None else strs2bytes(V1.OPCR.get_value())
         if (len(value1)==V1.nVars) and (self.N>1):  value1=(value1*self.N);
         if Instr.type==Vars.DevType.Var:
           logging.info(str(('** Set Var:',V1.name,value1)))
@@ -132,11 +133,12 @@ class RCU1():
                 value2=value1[i0:i1]
                 self.GetVarValue(RCUi,V1.Vars[Vari],value2)
                 value1[i0:i1]=value2
-          if not(V1.OPCR is None): V1.OPCR.get_data_value().Value.Value=bytes2strs(value1,Step2,V1.type)
+          if not(V1.OPCR is None): V1.OPCR.set_value(bytes2strs(value1,Step2,V1.type))
 
         elif Instr.type==Vars.DevType.VarUpdate:
           self.GetVarValueAll(V1,value1)
-          if not(V1.OPCR is None): V1.OPCR.get_data_value().Value.Value=bytes2strs(value1,Step2,V1.type)
+#          if not(V1.OPCR is None): V1.OPCR.get_data_value().Value.Value=bytes2strs(value1,Step2,V1.type)
+          if not(V1.OPCR is None): V1.OPCR.set_value(bytes2strs(value1,Step2,V1.type))
 #          V1.OPCR.get_data_value().Value.Value=value1
 
         logging.info(str(('** Readback:',V1.name,value1)))
@@ -146,6 +148,9 @@ class RCU1():
             if var.type==Vars.DevType.I2C:
                 self.SWcallback(1<<Vars.RCU_MPaddr.Switch[RCUi])
                 self.GetI2C(RCUi,var.devreg,var.width,var.bitoffset,value)
+            elif var.type==Vars.DevType.HBA1:
+                self.SWcallback(1<<Vars.RCU_MPaddr.Switch[RCUi])
+                self.GetI2CHBA1(RCUi,var.devreg,var.width,var.bitoffset,value)
             elif var.type==Vars.DevType.I2Cbb:
                 logging.error("I2Cbb Implemented")
             elif var.type==Vars.DevType.SPIbb:
@@ -179,6 +184,22 @@ class RCU1():
             elif V1.Vars[0].type==Vars.DevType.SPIbb:
               self.GetBBValueAll(V1,value1,mask)
 #              logging.info("SPIbb all not implemented yet")
+            elif V1.Vars[0].type==Vars.DevType.HBA1:
+              for Vari in range(Step):  
+                var=V1.Vars[Vari]
+                for RCUi in range(self.N):
+                    self.SWcallback(1<<Vars.RCU_MPaddr.Switch[RCUi])
+#                    print(Step,Step2,len(value1),V1.size)
+                    i0=(RCUi*Step+    Vari)*Step2
+                    i1=(RCUi*Step+(Vari+1))*Step2
+                    value2=value1[i0:i1]
+                    self.GetI2CHBA1(RCUi,var.devreg,var.width,var.bitoffset,value2)
+                    value1[i0:i1]=value2
+#                    i0=(RCUi*Step+    Vari)*Step2+16
+#                    i1=(RCUi*Step+(Vari+1))*Step2
+#                    value2=value1[i0:i1]
+#                    self.GetI2Cnoreg(RCUi,var.devreg,var.width,var.bitoffset,value2)
+#                    value1[i0:i1]=value2
             else:
                logging.error("Type not implemented")
 #            print(value1)
@@ -213,6 +234,10 @@ class RCU1():
             if var.type==Vars.DevType.I2C:
                 self.SWcallback(1<<Vars.RCU_MPaddr.Switch[RCUi])
                 self.SetI2C(RCUi,var.devreg,var.width,var.bitoffset,value)
+            elif var.type==Vars.DevType.HBA1:
+                self.SWcallback(1<<Vars.RCU_MPaddr.Switch[RCUi])
+                self.SetHBA1I2C(RCUi,var.devreg,var.width,var.bitoffset,value)
+#                 print("RCU1 Set",RCUi,var,value)
             elif var.type==Vars.DevType.I2Cbb:
                 logging.error("I2Cbb Implemented")
             elif var.type==Vars.DevType.SPIbb:
@@ -230,6 +255,20 @@ class RCU1():
         if buffer: return True;
         return self.I2Ccallback(dev.Addr,value,reg=dev.Register_W)
 
+    def SetHBA1I2C(self,RCUi,dev,width,bitoffset,value,buffer=False):
+#        if dev.store>0:
+        previous=self.previousHBA[RCUi,dev.store-1];
+        L=len(value)
+        for i in range(L):
+          value[i]=ApplyMask(value[i],width,bitoffset,previous[i]);
+        self.previousHBA[RCUi,dev.store-1]=value
+#        if buffer: return True;
+        self.I2Ccallback(dev.Addr,value[:16],reg=dev.Register_W)
+        if L>16: self.I2Ccallback(dev.Addr,value[16:],reg=dev.Register_W+16)
+        self.I2Ccallback(dev.Addr,[500],reg=dev.Register_W,read=3) #Wait 500ms
+        return True
+#        return self.I2Ccallback(dev.Addr,value,reg=dev.Register_W)
+
     def GetI2Cbuffer(self,RCUi,dev,width,bitoffset,value):
         if not(dev.store>0): return False;
         value[0]=self.previous[RCUi,dev.store-1];
@@ -301,6 +340,20 @@ class RCU1():
         #if (len(value)>1) and (width<8): print value
         return True;
 
+    def GetI2CHBA1(self,RCUi,dev,width,bitoffset,value):
+        #print(width,len(value))
+        value2=value
+        reg=dev.Register_R
+        if not(self.I2Ccallback(dev.Addr,value2,read=1)): return False;
+        if value2[0] is None:  return False
+        value[:]=value2[:];
+        if dev.store>0:
+            self.previousHBA[RCUi,dev.store-1]=value
+        for i in range(len(value)): 
+              value[i]=UnMask(value[i],width,bitoffset)      
+        return True;
+
+
     def start(self,Q1):
       def RCUthread(Q1):
          while True:
@@ -314,12 +367,12 @@ class RCU1():
       
       return RCUthread1 
  
-    def Queue_Monitor(self,Q1):
-         Inst1=Vars.Instr(Vars.DevType.VarUpdate,Vars.RCU_temp,32,[0]*32)
-         Q1.put(Inst1)
+    def Queue_Monitor(self,Q1,NRCU):
+          Inst1=Vars.Instr(Vars.DevType.VarUpdate,Vars.RCU_temp,NRCU,[0]*NRCU)
+          Q1.put(Inst1)
 #         Inst1=Vars.Instr(Vars.DevType.VarUpdate,Vars.RCU_ADC_lock,96,[0]*96)
 #         Q1.put(Inst1)
-
+          return 
     def AddVars(self,Q1,AddVarR,AddVarW):
      for v in Vars.OPC_devvars:
         dim1=Vars.RCU_MPaddr.nI2C*Vars.RCU_MPaddr.nSwitch*v.nVars
@@ -328,6 +381,7 @@ class RCU1():
         #print(v.name,dim)
         varvalue2=0
         if   v.type==Vars.datatype.dInt:    varvalue2=dim2*[0]
+        elif v.type==Vars.datatype.dbool:   varvalue2=dim2*[False]
         elif v.type==Vars.datatype.dfloat:  varvalue2=dim2*[0.0] 
         elif v.type==Vars.datatype.dstring: varvalue2=dim1*[" "*dim3]
         print(len(varvalue2),varvalue2)
diff --git a/rcu/Vars.py b/rcu/Vars.py
index 32ad2346108388fea36cf617818049cca5989b64..5617ec07cd1f1519fd49d6fabb08a8724bab0824 100644
--- a/rcu/Vars.py
+++ b/rcu/Vars.py
@@ -21,11 +21,11 @@ RCU_temp1=Var2dev("RCU_temp1",RCUmod,DevType.I2C,RCU_AN_Temp ,23,0,4.21e-3)
 dummy=Var2dev("Dummy",RCUmod,DevType.Internal,None,8,0,1)
 
 
-Ant_mask=VarArray("Ant_mask"       ,3,[dummy,dummy,dummy]            ,RW.WriteOnly,datatype.dInt,3,None,None)
+Ant_mask=VarArray("Ant_mask"       ,3,[dummy,dummy,dummy]            ,RW.WriteOnly,datatype.dbool,3,None,None)
 RCU_att =VarArray("RCU_attenuator" ,3,[RCU_att1 ,RCU_att2 ,RCU_att3] ,RW.ReadWrite,datatype.dInt,3,None,None)
 RCU_band=VarArray("RCU_band"       ,3,[RCU_band1,RCU_band2,RCU_band3],RW.ReadWrite,datatype.dInt,3,None,None)
 
-RCU_mask=VarArray("RCU_mask"       ,1,[dummy]    ,RW.WriteOnly,datatype.dInt  ,1,None,None)
+RCU_mask=VarArray("RCU_mask"       ,1,[dummy]    ,RW.WriteOnly,datatype.dbool  ,1,None,None)
 RCU_temp=VarArray("RCU_temperature",1,[RCU_temp1],RW.ReadOnly ,datatype.dfloat,1,None,None)
 RCU_pwrd=VarArray("RCU_Pwr_dig"    ,1,[RCU_pwrd1],RW.ReadOnly ,datatype.dInt  ,1,None,None)
 RCU_LED =VarArray("RCU_LED0"       ,1,[RCU_led0] ,RW.ReadWrite,datatype.dInt  ,1,None,None)
@@ -36,13 +36,13 @@ RCU_Dth1_freq=Var2dev("RCU_dth1_freq",RCUmod,DevType.I2Cbb,RCU_Dth1_Freq,32,0,1e
 RCU_dth_freq=VarArray("RCU_dither_freq",3,[RCU_Dth1_freq,RCU_Dth2_freq,RCU_Dth3_freq],RW.ReadWrite,datatype.dfloat,3,None,None)
 
 HBA1_Delay=Var2dev("",RCUmod,DevType.HBA1,RCU_HBA1,5,2,1)
-HBA1_Pwr  =Var2dev("",RCUmod,DevType.HBA1,RCU_HBA1,1,1,1)
+HBA1_led  =Var2dev("",RCUmod,DevType.HBA1,RCU_HBA1,1,0,1)
 HBA2_Delay=Var2dev("",RCUmod,DevType.HBA1,RCU_HBA2,5,2,1)
-HBA2_Pwr  =Var2dev("",RCUmod,DevType.HBA1,RCU_HBA2,1,1,1)
+HBA2_led  =Var2dev("",RCUmod,DevType.HBA1,RCU_HBA2,1,0,1)
 HBA3_Delay=Var2dev("",RCUmod,DevType.HBA1,RCU_HBA3,5,2,1)
-HBA3_Pwr  =Var2dev("",RCUmod,DevType.HBA1,RCU_HBA3,1,1,1)
-HBA1_Delay=VarArray("HBA_element_beamformer_delays",3,[HBA1_Delay,HBA2_Delay,HBA3_Delay],RW.ReadWrite,datatype.dInt,96,None,None)
-HBA1_Pwr  =VarArray("HBA_element_pwr"  ,3,[HBA1_Pwr  ,HBA2_Pwr  ,HBA3_Pwr  ],RW.ReadWrite,datatype.dInt,96,None,None)
+HBA3_led  =Var2dev("",RCUmod,DevType.HBA1,RCU_HBA3,1,0,1)
+HBA_Delay=VarArray("HBA_element_beamformer_delays",3,[HBA1_Delay,HBA2_Delay,HBA3_Delay],RW.ReadWrite,datatype.dInt,96,None,None)
+HBA_led  =VarArray("HBA_element_led"  ,3,[HBA1_led  ,HBA2_led  ,HBA3_led  ],RW.ReadWrite,datatype.dInt,96,None,None)
 
 #RCU_ID0=Var2dev("",RCUmod,DevType.I2C,RCU_ROM,8,0,1)
 #RCU_ID=VarArray("RCU_ID",1,[RCU_ID0],RW.ReadOnly,datatype.dInt,4,None,None)
@@ -53,6 +53,14 @@ RCU_Ver0=Var2dev("",RCUmod,DevType.I2C,RCU_ROM_Ver,7,0,1)
 RCU_VER=VarArray("RCU_version",1,[RCU_Ver0],RW.ReadOnly,datatype.dstring,10,None,None)
 
 
+RCU_uCV_ID    =VarArray("uC_ID  "  ,1,[Var2dev("",RCUmod,DevType.I2C,DevReg(0x40,0,0,0),8 ,0,1)],RW.ReadOnly,datatype.dInt,1,None,None)
+RCU_uCV_spd0  =VarArray("uC_spd0"  ,1,[Var2dev("",RCUmod,DevType.I2C,DevReg(0x40,1,1,0),8 ,0,1)],RW.ReadOnly,datatype.dInt,1,None,None)
+RCU_uCV_debug =VarArray("uC_debug" ,1,[Var2dev("",RCUmod,DevType.I2C,DevReg(0x40,2,2,0),8 ,0,1)],RW.ReadOnly,datatype.dInt,1,None,None)
+RCU_uCV_RXspd1=VarArray("uC_RXspd1",1,[Var2dev("",RCUmod,DevType.I2C,DevReg(0x40,3,3,0),8 ,0,1)],RW.ReadOnly,datatype.dInt,1,None,None)
+RCU_uCV_RXspd2=VarArray("uC_RXspd2",1,[Var2dev("",RCUmod,DevType.I2C,DevReg(0x40,4,4,0),8 ,0,1)],RW.ReadOnly,datatype.dInt,1,None,None)
+RCU_uCV_TXspd1=VarArray("uC_TXspd1",1,[Var2dev("",RCUmod,DevType.I2C,DevReg(0x40,6,6,0),8 ,0,1)],RW.ReadOnly,datatype.dInt,1,None,None)
+
+
 RCU_ADC1_lock=Var2dev("RCU_ADC1_lock",RCUmod,DevType.SPIbb,RCU_ADC1_PLL_stat,8,0,1)
 RCU_ADC2_lock=Var2dev("RCU_ADC2_lock",RCUmod,DevType.SPIbb,RCU_ADC2_PLL_stat,8,0,1)
 RCU_ADC3_lock=Var2dev("RCU_ADC3_lock",RCUmod,DevType.SPIbb,RCU_ADC3_PLL_stat,8,0,1)
@@ -95,15 +103,8 @@ RCU_OUT2=VarArray("RCU_OUT2",3,[RCU_IO1_2,RCU_IO2_2,RCU_IO3_2],RW.ReadOnly,datat
 #RCU_CNF1=VarArray("RCU_CONF1",3,[RCU_IO1_3,RCU_IO2_3,RCU_IO3_3],RW.ReadOnly,datatype.dInt,None,None)
 #RCU_CNF2=VarArray("RCU_CONF2",3,[RCU_IO1_4,RCU_IO2_4,RCU_IO3_4],RW.ReadOnly,datatype.dInt,None,None)
 
-
-
-OPC_devvars=[RCU_mask,Ant_mask,RCU_att,RCU_band,RCU_temp,RCU_pwrd,RCU_LED,RCU_ADC_lock,RCU_ADC_SYNC,RCU_ADC_JESD,RCU_ADC_CML,RCU_OUT1,RCU_OUT2,RCU_ID,RCU_VER]#,HBA1_Delay,HBA1_Pwr]#,RCU_CNF1,RCU_CNF2]
-
-
-
-
-
-
+OPC_devvars=[RCU_mask,Ant_mask,RCU_att,RCU_band,RCU_temp,RCU_pwrd,RCU_LED,RCU_ADC_lock,RCU_ADC_SYNC,RCU_ADC_JESD,RCU_ADC_CML,RCU_OUT1,RCU_OUT2,RCU_ID,RCU_VER,HBA_Delay,HBA_led]
+#OPC_devvars=[RCU_mask,Ant_mask,RCU_att,RCU_band,RCU_temp,RCU_pwrd,RCU_LED,RCU_uCV_ID,RCU_uCV_spd0,RCU_uCV_RXspd1,RCU_uCV_RXspd2,RCU_uCV_TXspd1,RCU_uCV_debug ]#,HBA1_Pwr]#,RCU_CNF1,RCU_CNF2]
 #Instr=namedtuple("DevInstr","type dev nvalue value")
 #Instrs=namedtuple("Instr","name ninstr instr")