diff --git a/bin/sync.sh b/bin/sync.sh
new file mode 100755
index 0000000000000000000000000000000000000000..cc2f93a0904f184c71b8f7d9558a94114694a5a8
--- /dev/null
+++ b/bin/sync.sh
@@ -0,0 +1,3 @@
+#!/bin/bash
+rsync -avzh ~/pypcc pi@10.99.0.$1:.
+ssh pi@10.99.0.$1 "cd pypcc;sh install.sh"
\ No newline at end of file
diff --git a/bin/sync_all.sh b/bin/sync_all.sh
new file mode 100755
index 0000000000000000000000000000000000000000..3b77da3708c823ca479b74bb99a1aea709d66c62
--- /dev/null
+++ b/bin/sync_all.sh
@@ -0,0 +1,3 @@
+#!/bin/bash
+./sync.sh 100
+./sync.sh 101
diff --git a/install.sh b/install.sh
new file mode 100755
index 0000000000000000000000000000000000000000..d93e7b442e91a537d8e19ee1a97a89a1a61935ea
--- /dev/null
+++ b/install.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+sudo systemctl stop recvtr.service
+sudo systemctl stop apscttr.service
+sudo systemctl stop apsputr.service
+sudo systemctl stop unb2tr.service
+sudo python3 setup.py install
+sudo systemctl start recvtr.service
+sudo systemctl start apscttr.service
+sudo systemctl start apsputr.service
+sudo systemctl start unb2tr.service
diff --git a/pypcc/i2cserv/i2c_array.py b/pypcc/i2cserv/i2c_array.py
index 2f1d023d6b297e5464e0ad84144ad0a76eca2b53..b2b31a26de4608a5b048da417ee1d2279c7a1985 100644
--- a/pypcc/i2cserv/i2c_array.py
+++ b/pypcc/i2cserv/i2c_array.py
@@ -144,8 +144,9 @@ class i2c_array(i2c_dev):
         if not(len(mask)==Step*self.N):
             print("Check mask length!",len(mask),Step,self.N);
             return;
-        else: 
-           for x,enanbled in enumerate(self.enablemask):
+        else:
+           if not(var1.get('check_value')): 
+             for x,enanbled in enumerate(self.enablemask):
                if enanbled: continue;
                for y in range(Step): mask[x*Step+y]=False;
 #               mask[x*Step:(x+1)*Step]=False;
@@ -186,8 +187,8 @@ class i2c_array(i2c_dev):
                res=self.GetVarValue(devreg,width,bitoffset,[],mode=3) #wait if needed
 #            for Vari in range(Step):
 #        else:
-          for RCUi in self.RCUorder:
 #            for Vari in range(Step):
+          for RCUi in self.RCUorder:
                 if not(mask[RCUi*Step+Vari]): continue
                 i0=(RCUi*Step+    Vari)*Step2
                 i1=(RCUi*Step+(Vari+1))*Step2
@@ -209,6 +210,24 @@ class i2c_array(i2c_dev):
                   continue;
                 self.I2Cmask[RCUi]=0;
                 value1[i0:i1]=value2
+        if var1.get('check_value'):
+            check_val=var1.get('check_value')
+            Ncheck=len(check_val);
+            if Ncheck>Step2: Ncheck=Step2;
+            for Vari in range(Step):
+               for RCUi in self.RCUorder:
+                  if not(mask[RCUi*Step+Vari]): continue
+                  i0=(RCUi*Step+    Vari)*Step2
+                  i1=(RCUi*Step+(Vari+1))*Step2
+                  if value1[i0] is None: 
+                           #print(RCUi,'None')
+                           self.enablemask[RCUi]=False;
+                           continue;
+                  for x in range(Ncheck):
+                        #print(RCUi,ord(check_val[x]),value1[i0+x])
+                        if ord(check_val[x])!=value1[i0+x]:
+                           self.enablemask[RCUi]=False;
+            logging.warn(str(("Identify RCUs:",check_val,self.enablemask)))
         return value1,mask
 
     def getstorearray(self,devreg,N=1):