diff --git a/regressiontest/fw_regressiontest.sh b/regressiontest/fw_regressiontest.sh
index 3fcdc7d9be3037d632434ef602c2c6653f2a2279..a15c7387c5174d9c9b3b88f977021013ec1a0adf 100755
--- a/regressiontest/fw_regressiontest.sh
+++ b/regressiontest/fw_regressiontest.sh
@@ -178,7 +178,6 @@ if [[ -n "${test}" ]] && [[ -z "${rbffile}" ]]; then
 fi
 
 kill_old_procs() {
-    # kill $(ps -aux | grep 'fw_regressiontest.sh' | awk '{print $2}')
     kill $(ps -aux | grep 'git/sdptr/test' | awk '{print $2}')
 }
 
@@ -215,17 +214,16 @@ reload_fw() {
                     firmware_version=$(echo "${line}" | cut -d "_" -f3-)
                     firmware_git_hash=$(echo "${line}" | cut -d "_" -f2)
                     echo "Running firmware version name: '${firmware_version}',  git hash: '${firmware_git_hash}'"
-                    # TODO: uncomment
-                    # if [[ "${firmware_version}" != "${rbf_firmware_version}" ]]; then
-                    #     echo "wrong firmware versions received from: ${node_info}"
-                    #     echo "wrong firmware versions received from: ${node_info}" >> ${MAILFILE}
-                    #     reload_passed=
-                    # fi
-                    # if [[ ${firmware_git_hash} != "${rbf_git_hash}" ]]; then
-                    #     echo "wrong firmware git hash received from: ${node_info}"
-                    #     echo "wrong firmware git hash received from: ${node_info}"  >> ${MAILFILE}
-                    #     reload_passed=
-                    # fi
+                    if [[ "${firmware_version}" != "${rbf_firmware_version}" ]]; then
+                        echo "wrong firmware versions received from: ${node_info}"
+                        echo "wrong firmware versions received from: ${node_info}" >> ${MAILFILE}
+                        reload_passed=
+                    fi
+                    if [[ ${firmware_git_hash} != "${rbf_git_hash}" ]]; then
+                        echo "wrong firmware git hash received from: ${node_info}"
+                        echo "wrong firmware git hash received from: ${node_info}"  >> ${MAILFILE}
+                        reload_passed=
+                    fi
                 fi
             fi
         done
@@ -270,6 +268,7 @@ restart_and_check_sdptr() {
     sdptr_version=$(head -n 1 "${SDPTR_DIR}"/version.txt)
     echo "Expected sdptr version name: '${sdptr_version}'"
     # read sdptr version.
+    # TODO: check all nodes, not only the first!!
     sdp_version_str=$(sdp_rw.py --host "${sdptr_ip}" --port "${sdptr_port}" -r software_version)
     sdp_version=$(echo "${sdp_version_str}" | head -n1 | cut -d ":" -f2 | tr -d '[:space:]')
     echo "Running sdptr version name: '${sdp_version}'"
@@ -278,7 +277,6 @@ restart_and_check_sdptr() {
         sdptr_passed=
     fi
 
-    # sleep 20  # sdptr detects all boards in this time
     echo 0
 }
 
@@ -352,18 +350,12 @@ run_test() {
 }
 
 if [[ -n "${remote_ip}" ]]; then
-    # copy latest sdptr to remote PC
-    sdptr_exec "$0" scp "${SDPTR_FILE}" "${remote_ip}":"${SDPTR_FILE}"
     # copy rbf file to flash to the boards
     sdptr_exec "$0" scp "${HOME}/latest_rbf_file/${rbf_filename}" "${remote_ip}":"${HOME}/latest_rbf_file/${rbf_filename}"
     # first update remote sdptr dir (git pull)
     sdptr_exec "$0" ssh -t "${remote_ip}" "${HOME}"/git/sdptr/regressiontest/git_update_master.sh
-    # kill old scrips on remote
-    remote_cmd="kill"
-    remote_args="$(ps -aux | grep 'fw_regressiontest.sh' | awk '{print $2}')"
-    sdptr_exec "$0" ssh -A -t "${remote_ip}" "${remote_cmd}" "${remote_args}"
-    remote_args="$(ps -aux | grep 'git/sdptr/test' | awk '{print $2}')"
-    sdptr_exec "$0" ssh -A -t "${remote_ip}" "${remote_cmd}" "${remote_args}"
+    # kill old scrips on remote pc
+    remote_cmd="/home/regtest/git/sdptr/regressiontest/kill_old_processes.sh"
     # run this script on remote pc
     remote_cmd="/home/regtest/git/sdptr/regressiontest/fw_regressiontest.sh"
     remote_args="--sdptr --sdptr-ip=${sdptr_ip} --sdptr-port=${sdptr_port} --rbf="${HOME}/latest_rbf_file/${rbf_filename}" --flash --test"
@@ -385,11 +377,9 @@ else
         echo "PREV TEST-FAILED"
     else
         # run selected options
-        # [[ -n "${flash}" ]] && flash_fw && reload_fw
-        [[ -n "${flash}" ]] && reload_fw
-        # [[ -n "${sdptr}" ]] && build_sdptr && restart_and_check_sdptr
-        [[ -n "${sdptr}" ]] && restart_and_check_sdptr
-        [[ -n "${test}" ]] && run_test
+        [[ -n "${flash}" ]] && flash_fw && reload_fw
+        [[ -n "${reload_passed}" ]] && [[ -n "${sdptr}" ]] && build_sdptr && restart_and_check_sdptr
+        [[ -n "${sdptr_passed}" ]] && [[ -n "${test}" ]] && run_test
     fi
 
     # print build and/or run state on last rows
diff --git a/src/constants.h b/src/constants.h
index 8e97a78452881003ee16610b5e0506beaa2e6f68..ac2dbf8c852929235476df2b76596fd79ae30a25 100644
--- a/src/constants.h
+++ b/src/constants.h
@@ -48,8 +48,6 @@
 #define C_WG_FREQ_UNIT 2147483648  // 2^31
 
 #define C_BSN_LATENCY 20000  // 1 period = 5.12us, 20000 = +/- 100ms
-// #define C_BSN_LATENCY 200000  // 1 period = 5.12us, 200000 = +/- 1.0s
-// #define C_BSN_LATENCY 4000000  // 1 period = 5.12us, 400000 = +/- 2.0s
 
 #define C_N_bdo_destinations_mm 32
 #define C_N_beamsets_sdp 2
diff --git a/src/io/ucp.cpp b/src/io/ucp.cpp
index 29c3834888375c1092c469929084729168e314c4..6247390cb3b62669f92bdd0b224e61c4252e73df 100644
--- a/src/io/ucp.cpp
+++ b/src/io/ucp.cpp
@@ -153,7 +153,8 @@ bool UCP::Read(const uint32_t opcode, const uint32_t addr, const uint nvalues, u
             
             retries++;
             if (retries < max_retries) {
-                random_sleep(0.05);
+                if (retries == 1) { random_sleep(0.05); }
+                else if (retries == 2) { random_sleep(0.5); }
             }
         }
         if (retries == max_retries) { break; }
@@ -241,7 +242,8 @@ bool UCP::Write(const uint32_t opcode, const uint32_t addr, const uint nvalues,
             retstat = ReceiveWriteAck();
             if (retstat == 0) { break; }
             retries++;
-            random_sleep(0.05);
+            if (retries == 1) { random_sleep(0.05); }
+            else if (retries == 2) { random_sleep(0.5); }
         }
         if (retries == max_retries) { break; }
         nsent += _nvalues;
diff --git a/src/io/udpsocket.h b/src/io/udpsocket.h
index beb8fcd76801e27e0099df7cf327efab877637ac..71825c9a694172d869a54e5377c4874a1ba68e83 100644
--- a/src/io/udpsocket.h
+++ b/src/io/udpsocket.h
@@ -35,7 +35,7 @@
 #include <netinet/in.h>
 #include <sys/types.h>
 
-#define UDP_TIMEOUT_IN_msec 300
+#define UDP_TIMEOUT_IN_msec 250
 
 class udpsocket {
 private:
diff --git a/test/py/control/ring_common.py b/test/py/control/ring_common.py
index 66d49a34d33a4c4d016bebc006a881c55a48dd6c..af9ad036cb0d9102cc5b05f51ee23f6f49b9595b 100755
--- a/test/py/control/ring_common.py
+++ b/test/py/control/ring_common.py
@@ -81,15 +81,15 @@ class RingCommon(object):
     @property
     def node_offset(self):
         return self.client.read("ring_node_offset")
-    
+
     @node_offset.setter
     def node_offset(self, data):
         return self.client.write("ring_node_offset", data)
-    
+
     @property
     def nof_nodes(self):
         return self.client.read("ring_nof_nodes")
-    
+
     @nof_nodes.setter
     def nof_nodes(self, data):
         return self.client.write("ring_nof_nodes", data)
diff --git a/test/py/control/stat_stream_xst.py b/test/py/control/stat_stream_xst.py
index a17406f1b1a9d4a46f3e3576e8126b12c7a89438..067e5ec166e0411eb27f0bbda05541721e7256c1 100755
--- a/test/py/control/stat_stream_xst.py
+++ b/test/py/control/stat_stream_xst.py
@@ -664,7 +664,7 @@ class XstStatisticStream(object):
         if self.xst_processing_enable != [t_xst_proc_enable] * self.n_nodes:
             self.logger.error(f"xst_processing_enable={self.xst_processing_enable}")
             success = False
-        
+
         self.logger.info("test xst start time")
         self.xst_processing_enable = [False] * self.n_nodes
         start_time = time.time() + 10.0
@@ -676,7 +676,7 @@ class XstStatisticStream(object):
                 self.logger.error(f"xst_processing_enable={self.xst_processing_enable} on time {time.time()}")
                 success = False
             time.sleep(0.1)
-        
+
         time.sleep(1.0)
         if self.xst_processing_enable != [True] * self.n_nodes:
             self.logger.error(f"xst_processing_enable={self.xst_processing_enable} on time {time.time()}")