diff --git a/pypcc/config/RECVTR_HB.yaml b/pypcc/config/RECVTR_HB.yaml
index afc65b0a34e7a3acbab00a2bd03c053945325068..3f676c688478ee1307078d487bab1cd3e44d7f97 100644
--- a/pypcc/config/RECVTR_HB.yaml
+++ b/pypcc/config/RECVTR_HB.yaml
@@ -3,14 +3,14 @@ description: "1234"
 name: "RECVTR"
 
 drivers:
- - name: I2C_reset_GPIO
-   type: gpio
-   parameters: [15] 
  - name: I2C1 #TCA9548
    type: i2c_switch
    devreg: [0x70,0x71,0x72,0x73]
    parameters: [1] #I2C port number
    parent: I2C_reset_GPIO
+ - name: I2C_reset_GPIO
+   type: gpio
+   parameters: [15] 
  - name: I2C_RCU 
    type: i2c_array #An array of similar devices connected to an I2C switch
    parent: I2C1
@@ -660,7 +660,7 @@ variables:
      dim: 3072
      dim2: [32,96]
      mask: ANT_mask
-     wait: PPS 
+     wait: -1 #-1 = PPS 
 #     wait: 1000 #ms 
 
    - name: [RCU_IO4_GPIO1,RCU_IO4_GPIO2]
diff --git a/pypcc/i2cserv/hba1.py b/pypcc/i2cserv/hba1.py
index cf8a353accfb4f53e4578919db5cc0a03a323d45..85ceb9560326160b78e952fa1bfaa140f76658d3 100644
--- a/pypcc/i2cserv/hba1.py
+++ b/pypcc/i2cserv/hba1.py
@@ -33,7 +33,7 @@ class hba1(hwdev):
 #       print(RCUmask)
        #Wait for PPS if required else wait a bit
          self.conf['parentcls'].SetSwitchMask(RCUmask)
-       if var1.get('wait')=="PPS":
+       if var1.get('wait')==-1: #"PPS":
          logging.info("HBA wait PPS")
          channel=GPIO.wait_for_edge(self.pin,GPIO.RISING,timeout=1500)
          self.conf['parentcls'].i2csetget(self.addr,[self.reg])
diff --git a/pypcc/i2cserv/i2c_array.py b/pypcc/i2cserv/i2c_array.py
index 92b80194a8c1772ffb0bfdf050091f88b3e17ce4..dd26f65269ca66a9595bd84adb09075589548417 100644
--- a/pypcc/i2cserv/i2c_array.py
+++ b/pypcc/i2cserv/i2c_array.py
@@ -115,7 +115,7 @@ class i2c_array(i2c_dev):
                 self.SetSwitch(RCUi);
                 self.RCUi=RCUi;
                 res=self.SetVarValue(devreg,width,bitoffset,data[i0:i1])
-                if var1.get('wait',0)>0: sleep(var1['wait']/1000)
+                if getalso and (var1.get('wait',0)>0): sleep(var1['wait']/1000)
                 if not(res):
                   if self.disableI2ConError: self.I2Cmask[RCUi]+=1;
                   if self.I2Cmask[RCUi]>self.I2Ccut: mask[RCUi*Step+Vari]=False;
diff --git a/python_scripts/CRC_HBAT1.npy b/python_scripts/CRC_HBAT1.npy
new file mode 100644
index 0000000000000000000000000000000000000000..c737267e6ea48a415beb618f8d8abbf5b3050a98
Binary files /dev/null and b/python_scripts/CRC_HBAT1.npy differ
diff --git a/python_scripts/HBATtest.py b/python_scripts/HBATtest.py
index c597ed0f5d7ff929e90c5b801bc646986af95b39..2b901713a1b645cceb6baccd6aba345ebbb52970 100644
--- a/python_scripts/HBATtest.py
+++ b/python_scripts/HBATtest.py
@@ -6,17 +6,17 @@ logFile='SetVersion'
 
 import logging
 import argparse
-from opcuaserv import opcuaserv
-from opcuaserv import i2client
-from opcuaserv import yamlreader
+from pypcc.opcuaserv import opcuaserv
+from pypcc.opcuaserv import i2client
+from pypcc.opcuaserv import yamlreader
 #from opcuaserv import pypcc2
-from i2cserv import i2cthread
+from pypcc.i2cserv import i2cthread
 import threading
 import time
 import sys
 import signal
-from yamlconfig import Find;
-import yamlconfig as yc
+from pypcc.yamlconfig import Find;
+import pypcc.yamlconfig as yc
 from datetime import datetime
 import numpy as np
 
@@ -68,34 +68,36 @@ if int(ID,16)==0:
 
 uCaddr=0x40
 HBAaddr=0x41+SINR
-i2c=conf.conf['drivers'][0]['obj'] #assume I2C is first device
+i2c=conf.conf['drivers'][1]['obj'] #assume I2C is first device
 v=[0]
 
 
 if True:
 #    print("Set Vref=0x0c");
-    i2c.i2csetget(uCaddr,[0x08],reg=13,read=0)
+    i2c.i2csetget(uCaddr,[0x0c],reg=13,read=0)
 #    print("Set mode=0");
     i2c.i2csetget(uCaddr,[0],reg=2,read=0)
 #    print("Set Auto readback=0");
     i2c.i2csetget(uCaddr,[0],reg=5,read=0)
 #    print("TX start high=0");
     i2c.i2csetget(uCaddr,[4],reg=14,read=0)
+if True:
+    i2c.i2csetget(uCaddr,v,reg=2,read=1) #get mode
+    print("Current mode=",v[0])
 
-i2c.i2csetget(uCaddr,v,reg=2,read=1) #get mode
-print("Current mode=",v[0])
+    i2c.i2csetget(uCaddr,v,reg=12,read=1) #get mode
+    print("Wait PPS=",v[0])
 
-i2c.i2csetget(uCaddr,v,reg=12,read=1) #get mode
-print("Wait PPS=",v[0])
+    i2c.i2csetget(uCaddr,v,reg=13,read=1) #get mode
+    print("Vref=",v[0])
 
-i2c.i2csetget(uCaddr,v,reg=13,read=1) #get mode
-print("Vref=",v[0])
+    i2c.i2csetget(uCaddr,v,reg=5,read=1) #get mode
+    print("Auto readback=",v[0])
 
-i2c.i2csetget(uCaddr,v,reg=5,read=1) #get mode
-print("Auto readback=",v[0])
+    i2c.i2csetget(uCaddr,v,reg=14,read=1) #get mode
+    print("TX start high=",v[0])
 
-i2c.i2csetget(uCaddr,v,reg=14,read=1) #get mode
-print("TX start high=",v[0])
+    time.sleep(0.3)
 
 #exit()
 CRCtab=np.load("CRC_HBAT1.npy")
@@ -130,11 +132,56 @@ def RequestRegisters(HBANR,reg,length):
 #    TX2=hb.ManchesterEncode(TX1)\n",
 #    ser.write(bytearray(TX2))\n",
 #    return GetPackets();"
+def setreg(reg,value):
+    TX1=MakeRequest(HBANR,value,func=len(value)*2,reg=reg)
+    print(TX1)
+    i2c.i2csetget(HBAaddr,TX1,read=0)
+
+def calc_delay(val,term=False):
+        TTDs=[False]*5;
+        for x in range(5):
+            TTDs[x]=val//(2**(x))%2==1
+        val2=0;
+        previous=term;
+#        for x in range(5,-1,-1):
+        for x in range(5):
+           val2=val2*2+1*(not(TTDs[x]==previous))
+           previous=TTDs[x]
+        val2=val2*2+1*previous
+#        print(val,TTDs,val2,bin(val2))
+        return val2
+REG_PWR=0x02
+REG_X=0x00
+
+setreg(REG_PWR,[0xff])
+#exit()
+time.sleep(0.5)
+
+dab=False
+led=False
+term=False
+val1=calc_delay(15,term=term)
+val2=calc_delay(15,term=term)
+print("delay reg=",hex(val2))
+setreg(REG_X,[val1+dab*0x80,val2+led*0xc0])
+time.sleep(0.5)
+#exit()
+for x in range(100000):
+  print(x)
+  time.sleep(0.5)
+  if True:
+    i2c.i2csetget(uCaddr,[0x0c],reg=13,read=0)
+    i2c.i2csetget(uCaddr,[0],reg=2,read=0)
+    i2c.i2csetget(uCaddr,[0],reg=5,read=0)
+    i2c.i2csetget(uCaddr,[4],reg=14,read=0)
+  RequestRegisters(HBANR,0,2)
+exit()
+
 HBANRs=range(1,17) if HBANR==0 else [HBANR]
 for HBANR in HBANRs:
  RequestRegisters(HBANR,0,1)
- time.sleep(0.1)
- D=[0]*7
+ time.sleep(0.2)
+ D=[0]*8
  i2c.i2csetget(HBAaddr,D,read=1)
  D=D[2:]
  CRC=CRCcheck(D[:-2])
@@ -142,8 +189,6 @@ for HBANR in HBANRs:
  print(HBANR,"RX:",[hex(d) for d in D],',CRC error' if CRCerror else '',',wrong addr' if (HBANR+0x80!=D[0]) else '')
 # if CRCerror: print('   CRC=',hex(CRC & 0xff),hex(CRC//256))
 # if (HBANR+0x80!=D[0]): print('    wrong address',D[0],HBANR+0x80) 
-# time.sleep(0.1)
-#print(MakeRequest(HBANR,data
 
 #data,var1=GetVal(varSet);
 #version=bytearray(data).decode("utf-8",errors='ignore')