diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5a266992c7d27a4611ab4c60f79b9d18beef9ee1..16a49d8663dd8bd5fbed0016dc976e101f0c9822 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -4,7 +4,7 @@ cmake_minimum_required(VERSION 3.5)
 # Note: Always keep MAJOR_VERSION and MINOR_VERSION identical to the server version. Count only the patch separately.
 set(${PROJECT_NAME}_MAJOR_VERSION 08)
 set(${PROJECT_NAME}_MINOR_VERSION 08)
-set(${PROJECT_NAME}_PATCH_VERSION 09)
+set(${PROJECT_NAME}_PATCH_VERSION 10)
 include(cmake/set_version_numbers.cmake)
 
 include(cmake/config_generator_project.cmake)
diff --git a/llrfctrl6-opcua/baseconfig.py b/llrfctrl6-opcua/baseconfig.py
index 4cc5e144c6e77805ba98fad0817c0ca1941cb6cc..d11f3876b912f23632f981674f3a6b6aa08d017f 100644
--- a/llrfctrl6-opcua/baseconfig.py
+++ b/llrfctrl6-opcua/baseconfig.py
@@ -4,7 +4,6 @@ global INSTANCE_TYPE
 INSTANCE_TYPE=InstanceType.sincav
 
 (ACCELERATOR,STATION)=INSTANCE_CONFIG
-FULL_STATION_NAME=STATION
 MASTER_OR_SLAVE = ""
 IS_MASTER_SLAVE=0
 
diff --git a/llrfctrl6/baseconfig.py b/llrfctrl6/baseconfig.py
index 94aa72f156ba253d8858bf211d28ffaec1d8f14e..e58e4a67f931d1362715ce7b68c68d7b123a6b58 100644
--- a/llrfctrl6/baseconfig.py
+++ b/llrfctrl6/baseconfig.py
@@ -12,23 +12,12 @@ if len(INSTANCE_CONFIG) == 3 :
     INSTANCE_TYPE=InstanceType.mulcavSlave
   else :
     raise NameError("Wrong value for 3rd component in INSTANCE_CONFIG: "+str(MASTER_OR_SLAVE))
+  del MASTER_OR_SLAVE
 else :
   (ACCELERATOR,STATION)=INSTANCE_CONFIG
-  MASTER_OR_SLAVE=""
   # Note: This might later be changed into sincav
   INSTANCE_TYPE=InstanceType.mulcavStandAlone
 
-
-# Remove this later...
-if ACCELERATOR == 'XFEL' :
-  FULL_STATION_NAME= 'A' + STATION + MASTER_OR_SLAVE
-elif (ACCELERATOR == 'FLASH') and STATION[:1].isnumeric() :
-  FULL_STATION_NAME= 'ACC' + STATION
-else :
-  FULL_STATION_NAME=STATION
-
-del MASTER_OR_SLAVE
-
 # Base configuration for all instances
 EXECUTABLE_IN_PACKAGE="/export/doocs/server/llrfCtrl_server/llrfCtrl_server"
 MAKE_EXECUTABLE="initHardware.py deploy_firmware.py"
diff --git a/llrfctrl6/hostlist b/llrfctrl6/hostlist
index 33bfd1f5f3a6f225bb8b7fcbeb2f137a70c2c5ec..ee40a693e15a03b23c341ec1249d7e830db8bb03 100644
--- a/llrfctrl6/hostlist
+++ b/llrfctrl6/hostlist
@@ -99,6 +99,7 @@ amtfcpullxatb3.desy.de                  D               amtf            3
 amtfcpullxatb39.desy.de                 D               amtf            39
 amtfcpullxatb39cw.desy.de               D               amtf            39CW
 amtfcpullxatb39cwext.desy.de            D               amtf            39CWEXT
+amtfcpullvcts1.desy.de                  D               amtf            VCTS1
 
 # CMTB
 cmtbcpullmcav.desy.de                   D               cmtb            MCAV
diff --git a/llrfctrl6/settings/000-makeBoard.py b/llrfctrl6/settings/000-makeBoard.py
index 2c353e74f5f0464495b79a6ed3d202ca61c53bae..0a879d0aabef37096383d2199d5163220a33f74a 100644
--- a/llrfctrl6/settings/000-makeBoard.py
+++ b/llrfctrl6/settings/000-makeBoard.py
@@ -217,7 +217,7 @@ class boardSincav(boardSISBase):
             global FIRMWARE_PROJECT_CONTROLLER
             global CTRLBOARD_SLOT
             FIRMWARE_TYPE_CONTROLLER = firmwareType
-            FIRMWARE_PROJECT_CONTROLLER = firmwareProject + "_" + firmwareType
+            FIRMWARE_PROJECT_CONTROLLER = firmwareProject + (("_" + firmwareType) if firmwareType else "")
             CTRLBOARD_SLOT = ADCBOARD[self.index]["SLOT"]
 
     def withBeamBasedFeedback(self):
@@ -231,7 +231,10 @@ class boardSincav(boardSISBase):
 class boardDWC8VM1(boardSincav):
     def __init__(self, slot, firmwareType, channelNames, firmwareProject="llrf_scav_sis8300l", skipController=False):
         boardSincav.__init__(self, slot, firmwareType, channelNames, firmwareProject, skipController)
-        ADCBOARD[self.index]["RTM_TYPE"] = "DWC8VM1"
+        if firmwareProject != 'llrf_scav_sel_sis8300ku' :
+            ADCBOARD[self.index]["RTM_TYPE"] = "DWC8VM1"
+        else :
+            ADCBOARD[self.index]["RTM_TYPE"] = "RTM"
 
 ########################################################################################################################
 
diff --git a/llrfctrl6/settings/FACILITY.AMTF.py b/llrfctrl6/settings/FACILITY.AMTF.py
index 638407b271b8f16ccc978a7ab0bd87eb8cf08b4e..54a82fed8f93146ca3ae0f5ffd9c3eb088e09369 100644
--- a/llrfctrl6/settings/FACILITY.AMTF.py
+++ b/llrfctrl6/settings/FACILITY.AMTF.py
@@ -1,6 +1,9 @@
 if ACCELERATOR == "AMTF":
 
-    if STATION != "39CWEXT" and STATION != "39CW" and STATION != "2SCAV":
+    if STATION == "VCTS1":
+        FIRMWARE_VER_CONTROLLER = "0.1.0-5-g1962f6d4"
+
+    if STATION != "39CWEXT" and STATION != "39CW" and STATION != "2SCAV" and STATION != "VCTS1":
         isMcav = True
         if STATION != "2" :
             multiCavityStation().useDirectClock()
@@ -117,6 +120,24 @@ if ACCELERATOR == "AMTF":
         SVR_LOCATION = HOSTNAME.upper()+"_"+STATION+"._SVR"
         TIMING_LOCATION = ACCELERATOR+".RF/TIMER/LLXATB2"
 
+    if STATION == "VCTS1":
+
+        DOOCS_NAMING_SCHEME = 1
+
+        rfFrequency = 1300
+        QL = 3000000
+
+        lengthScale = 299792458/(rfFrequency*1000000)*nCellsPerCavity/2
+
+        channels = [ "CH0", "CH1", "CH2", "CH3", "CH4", "CH5", "CH6", "CH7"]
+
+        RPC_NUMBER = 610489970
+        boardDWC8VM1(1, "", channels, firmwareProject="llrf_scav_sel_sis8300ku")
+
+        SERVERNAME = "llrfCtrl_VCTS1_server"
+        SVR_LOCATION = HOSTNAME.upper()+"_"+STATION+"._SVR"
+        TIMING_LOCATION = ACCELERATOR+".RF/TIMER/LLXATB2"
+
     if isMcav:
         CRATE_LOCATION_SUFFIX_A = STATION_LOCATION_SUFFIX
         CRATE_LOCATION_SUFFIX_B = "M"+CRYOMODULES_NO_SPACE+"."+STATION_LOCATION_SUFFIX
diff --git a/llrfctrl6/settings/FACILITY.XFEL.py b/llrfctrl6/settings/FACILITY.XFEL.py
index e820ed542ce543f9f1ffd0e1f55ec6aac107c9c4..616a7adb2959277a40c736e406f582effed78ccb 100644
--- a/llrfctrl6/settings/FACILITY.XFEL.py
+++ b/llrfctrl6/settings/FACILITY.XFEL.py
@@ -164,7 +164,6 @@ if ACCELERATOR == "XFEL":
         MPS_LOCATION = FACILITY+"/MPS/LL"+CRATE_NAME
 
     if STATION == "GUN1":
-        FULL_STATION_NAME = STATION
 
         singleCavityStation().useLOGM()
 
@@ -196,7 +195,6 @@ if ACCELERATOR == "XFEL":
         MAIN_LOCATION_SUFFIX = CRATE_LOCATION_SUFFIX
 
     if STATION == "GUN1SP":
-        FULL_STATION_NAME = STATION
 
         singleCavityStation().useLOGM()
 
@@ -228,7 +226,6 @@ if ACCELERATOR == "XFEL":
 
     if STATION in ["LLTDSI1", "LLTDSB2"]:
         DOOCS_NAMING_SCHEME = 1
-        FULL_STATION_NAME = STATION
 
         singleCavityStation().useLOGM()
 
diff --git a/llrfctrl6/templates/initSIS.py b/llrfctrl6/templates/initSIS.py
index 8d7e563ac5fd7b776283ddc874f050577987e521..f68be8cc99dc9f0e0a954d013a4873b831abc34c 100644
--- a/llrfctrl6/templates/initSIS.py
+++ b/llrfctrl6/templates/initSIS.py
@@ -26,6 +26,8 @@ hasULOG = ${HAS_ULOG}
 
 pulseLength = ${pulseLength}
 
+isSincavSel = ${FIRMWARE_PROJECT_CONTROLLER == 'llrf_scav_sel_sis8300ku'}
+
 ${"############################################################################################"}
 
 
@@ -39,13 +41,12 @@ def init(deviceName):
     (majorExpected, minorExpected, patchExpected) = mapFileVersionExpected.split(".")
     mapFileVersionParsed = version.parse(mapFileVersionExpected)
 
-    # Newer firmware (mcav_fd variant only for now) omits the "WORD_" prefix in most
-    # places
+    # Newer firmware (mcav_fd variant only for now) omits the "WORD_" prefix in most places
     wordPrefix = "WORD_"
-    if mapFileVersionParsed >= version.parse("2.0.0"):
+    if mapFileVersionParsed >= version.parse("2.0.0") or isSincavSel:
         wordPrefix = ""
     bspWordPrefix = "WORD_"
-    if mapFileVersionParsed >= version.parse("2.2.0"):
+    if mapFileVersionParsed >= version.parse("2.2.0") or isSincavSel:
         bspWordPrefix = ""
 
     # Readout the FW type to distinguish single and multi cavity setups (actually
@@ -87,6 +88,9 @@ def init(deviceName):
     if isMultiCavity:
         # Multi cavity controller slave
         RTM_type = "DWC10"
+    elif isSincavSel :
+        # Self excited loop
+        RTM_type = "DWC8VM1"
     else:
         if cat.hasRegister("DWC8VM1.WORD_ID"):
             RTM_type = "DWC8VM1"
@@ -99,7 +103,7 @@ def init(deviceName):
             sys.exit(1)
 
     RTM_module = RTM_type
-    if mapFileVersionParsed >= version.parse("2.0.0"):
+    if mapFileVersionParsed >= version.parse("2.0.0") or isSincavSel:
         RTM_module = "RTM"
 
     # read initialisation status bit
@@ -126,7 +130,7 @@ def init(deviceName):
                   "Performing full initialisation for board " + deviceName)
 
         # disable double buffering (following reset will switch to buf 0)
-        if isMultiCavity:
+        if isMultiCavity or isSincavSel:
             device.write("DAQ."+wordPrefix+"DOUBLE_BUF_ENA", 0)
         else:
             device.write("DAQ."+wordPrefix+"DUB_BUF_ENA", 0)
@@ -391,7 +395,7 @@ def init(deviceName):
             device.write("TIMING."+wordPrefix+"SYNC_SEL",      0, channel)
             device.write("TIMING."+wordPrefix+"DIVIDER_VALUE", 0, channel)
 
-        if mapFileVersionParsed >= version.parse("2.0.0"):
+        if mapFileVersionParsed >= version.parse("2.0.0") or isSincavSel:
             # Clear the lower two bits. keep the other bits untouched (they are
             # configured by the DCM server). This is done through read-modify-write.
             # Note that this is done while WORD_BOOT_STATUS is still 0, and the DCM init
@@ -413,7 +417,7 @@ def init(deviceName):
         device.write("TIMING."+wordPrefix+"ENABLE", int('11111111', 2))
 
         # Set ch6 for CTABLE strobing (divider value is written by the server)
-        device.write("TIMING."+wordPrefix+"SOURCE_SEL", 0, 6)
+        device.write("TIMING."+wordPrefix+"SOURCE_SEL", 0, 6 if not isSincavSel else 2)
 
         # Enabling DAC of the Struck Board
         device.write("BSP."+bspWordPrefix+"DAC_ENA", 1)
diff --git a/llrfctrl6/templates/llrfctrl-DoocsVariableConfig.xml b/llrfctrl6/templates/llrfctrl-DoocsVariableConfig.xml
index 4e9b1c215b81d5b7866c9f91808adabedbbd9e8d..4c9e84b67cac65a57e6c8e6274b539018dc424d9 100644
--- a/llrfctrl6/templates/llrfctrl-DoocsVariableConfig.xml
+++ b/llrfctrl6/templates/llrfctrl-DoocsVariableConfig.xml
@@ -1,6 +1,9 @@
 ##mako
 <?xml version="1.0" encoding="UTF-8"?>
 <device_server xmlns="https://github.com/ChimeraTK/ControlSystemAdapter-DoocsAdapter">
+  <%
+    isSincavSel = ( FIRMWARE_PROJECT_CONTROLLER == 'llrf_scav_sel_sis8300ku' )
+  %>
 
   % if DOOCS_NAMING_SCHEME != "none" :
     <macro_pulse_number_source>/Server/triggerNumber</macro_pulse_number_source>
@@ -269,110 +272,121 @@
       <property name="FREQ_MODULATION.ENA" source="/Controller/FrequencyModulation/enable"/>
       <property name="FREQ_MODULATION.OFFSET" source="/Controller/FrequencyModulation/offset"/>
 
-      <property name="MIMO.ENA" source="/Controller/FeedBack/mimoEnable"/>
-      <property name="COEFF.MIMO_A11.0" source="/Controller/FeedBack/MimoCoefficients/A11_1"/>
-      <property name="COEFF.MIMO_A11.1" source="/Controller/FeedBack/MimoCoefficients/A11_2"/>
-      <property name="COEFF.MIMO_B11.0" source="/Controller/FeedBack/MimoCoefficients/B11_0"/>
-      <property name="COEFF.MIMO_B11.1" source="/Controller/FeedBack/MimoCoefficients/B11_1"/>
-      <property name="COEFF.MIMO_B11.2" source="/Controller/FeedBack/MimoCoefficients/B11_2"/>
-      <property name="COEFF.MIMO_A12.0" source="/Controller/FeedBack/MimoCoefficients/A12_1"/>
-      <property name="COEFF.MIMO_A12.1" source="/Controller/FeedBack/MimoCoefficients/A12_2"/>
-      <property name="COEFF.MIMO_B12.0" source="/Controller/FeedBack/MimoCoefficients/B12_0"/>
-      <property name="COEFF.MIMO_B12.1" source="/Controller/FeedBack/MimoCoefficients/B12_1"/>
-      <property name="COEFF.MIMO_B12.2" source="/Controller/FeedBack/MimoCoefficients/B12_2"/>
-      <property name="COEFF.MIMO_A21.0" source="/Controller/FeedBack/MimoCoefficients/A21_1"/>
-      <property name="COEFF.MIMO_A21.1" source="/Controller/FeedBack/MimoCoefficients/A21_2"/>
-      <property name="COEFF.MIMO_B21.0" source="/Controller/FeedBack/MimoCoefficients/B21_0"/>
-      <property name="COEFF.MIMO_B21.1" source="/Controller/FeedBack/MimoCoefficients/B21_1"/>
-      <property name="COEFF.MIMO_B21.2" source="/Controller/FeedBack/MimoCoefficients/B21_2"/>
-      <property name="COEFF.MIMO_A22.0" source="/Controller/FeedBack/MimoCoefficients/A22_1"/>
-      <property name="COEFF.MIMO_A22.1" source="/Controller/FeedBack/MimoCoefficients/A22_2"/>
-      <property name="COEFF.MIMO_B22.0" source="/Controller/FeedBack/MimoCoefficients/B22_0"/>
-      <property name="COEFF.MIMO_B22.1" source="/Controller/FeedBack/MimoCoefficients/B22_1"/>
-      <property name="COEFF.MIMO_B22.2" source="/Controller/FeedBack/MimoCoefficients/B22_2"/>
-      <property name="COEFF_ACTUAL.MIMO_A11.0" source="/Controller/FeedBack/MimoCoefficients/Actual/A11_1"/>
-      <property name="COEFF_ACTUAL.MIMO_A11.1" source="/Controller/FeedBack/MimoCoefficients/Actual/A11_2"/>
-      <property name="COEFF_ACTUAL.MIMO_B11.0" source="/Controller/FeedBack/MimoCoefficients/Actual/B11_0"/>
-      <property name="COEFF_ACTUAL.MIMO_B11.1" source="/Controller/FeedBack/MimoCoefficients/Actual/B11_1"/>
-      <property name="COEFF_ACTUAL.MIMO_B11.2" source="/Controller/FeedBack/MimoCoefficients/Actual/B11_2"/>
-      <property name="COEFF_ACTUAL.MIMO_A12.0" source="/Controller/FeedBack/MimoCoefficients/Actual/A12_1"/>
-      <property name="COEFF_ACTUAL.MIMO_A12.1" source="/Controller/FeedBack/MimoCoefficients/Actual/A12_2"/>
-      <property name="COEFF_ACTUAL.MIMO_B12.0" source="/Controller/FeedBack/MimoCoefficients/Actual/B12_0"/>
-      <property name="COEFF_ACTUAL.MIMO_B12.1" source="/Controller/FeedBack/MimoCoefficients/Actual/B12_1"/>
-      <property name="COEFF_ACTUAL.MIMO_B12.2" source="/Controller/FeedBack/MimoCoefficients/Actual/B12_2"/>
-      <property name="COEFF_ACTUAL.MIMO_A21.0" source="/Controller/FeedBack/MimoCoefficients/Actual/A21_1"/>
-      <property name="COEFF_ACTUAL.MIMO_A21.1" source="/Controller/FeedBack/MimoCoefficients/Actual/A21_2"/>
-      <property name="COEFF_ACTUAL.MIMO_B21.0" source="/Controller/FeedBack/MimoCoefficients/Actual/B21_0"/>
-      <property name="COEFF_ACTUAL.MIMO_B21.1" source="/Controller/FeedBack/MimoCoefficients/Actual/B21_1"/>
-      <property name="COEFF_ACTUAL.MIMO_B21.2" source="/Controller/FeedBack/MimoCoefficients/Actual/B21_2"/>
-      <property name="COEFF_ACTUAL.MIMO_A22.0" source="/Controller/FeedBack/MimoCoefficients/Actual/A22_1"/>
-      <property name="COEFF_ACTUAL.MIMO_A22.1" source="/Controller/FeedBack/MimoCoefficients/Actual/A22_2"/>
-      <property name="COEFF_ACTUAL.MIMO_B22.0" source="/Controller/FeedBack/MimoCoefficients/Actual/B22_0"/>
-      <property name="COEFF_ACTUAL.MIMO_B22.1" source="/Controller/FeedBack/MimoCoefficients/Actual/B22_1"/>
-      <property name="COEFF_ACTUAL.MIMO_B22.2" source="/Controller/FeedBack/MimoCoefficients/Actual/B22_2"/>
-      <property name="COEFF.MIMO_APPLY" source="/Controller/FeedBack/MimoCoefficients/apply"/>
-
-      <property name="SMITH.ENA" source="/Controller/FeedBack/smithEnable"/>
-      <property name="SMITH.DELAY" source="/Controller/FeedBack/smithDelay"/>
-      <property name="COEFF.SMITH_A11.0" source="/Controller/FeedBack/SmithCoefficients/A11_1"/>
-      <property name="COEFF.SMITH_A11.1" source="/Controller/FeedBack/SmithCoefficients/A11_2"/>
-      <property name="COEFF.SMITH_B11.0" source="/Controller/FeedBack/SmithCoefficients/B11_0"/>
-      <property name="COEFF.SMITH_B11.1" source="/Controller/FeedBack/SmithCoefficients/B11_1"/>
-      <property name="COEFF.SMITH_B11.2" source="/Controller/FeedBack/SmithCoefficients/B11_2"/>
-      <property name="COEFF.SMITH_A12.0" source="/Controller/FeedBack/SmithCoefficients/A12_1"/>
-      <property name="COEFF.SMITH_A12.1" source="/Controller/FeedBack/SmithCoefficients/A12_2"/>
-      <property name="COEFF.SMITH_B12.0" source="/Controller/FeedBack/SmithCoefficients/B12_0"/>
-      <property name="COEFF.SMITH_B12.1" source="/Controller/FeedBack/SmithCoefficients/B12_1"/>
-      <property name="COEFF.SMITH_B12.2" source="/Controller/FeedBack/SmithCoefficients/B12_2"/>
-      <property name="COEFF.SMITH_A21.0" source="/Controller/FeedBack/SmithCoefficients/A21_1"/>
-      <property name="COEFF.SMITH_A21.1" source="/Controller/FeedBack/SmithCoefficients/A21_2"/>
-      <property name="COEFF.SMITH_B21.0" source="/Controller/FeedBack/SmithCoefficients/B21_0"/>
-      <property name="COEFF.SMITH_B21.1" source="/Controller/FeedBack/SmithCoefficients/B21_1"/>
-      <property name="COEFF.SMITH_B21.2" source="/Controller/FeedBack/SmithCoefficients/B21_2"/>
-      <property name="COEFF.SMITH_A22.0" source="/Controller/FeedBack/SmithCoefficients/A22_1"/>
-      <property name="COEFF.SMITH_A22.1" source="/Controller/FeedBack/SmithCoefficients/A22_2"/>
-      <property name="COEFF.SMITH_B22.0" source="/Controller/FeedBack/SmithCoefficients/B22_0"/>
-      <property name="COEFF.SMITH_B22.1" source="/Controller/FeedBack/SmithCoefficients/B22_1"/>
-      <property name="COEFF.SMITH_B22.2" source="/Controller/FeedBack/SmithCoefficients/B22_2"/>
-      <property name="COEFF_ACTUAL.SMITH_A11.0" source="/Controller/FeedBack/SmithCoefficients/Actual/A11_1"/>
-      <property name="COEFF_ACTUAL.SMITH_A11.1" source="/Controller/FeedBack/SmithCoefficients/Actual/A11_2"/>
-      <property name="COEFF_ACTUAL.SMITH_B11.0" source="/Controller/FeedBack/SmithCoefficients/Actual/B11_0"/>
-      <property name="COEFF_ACTUAL.SMITH_B11.1" source="/Controller/FeedBack/SmithCoefficients/Actual/B11_1"/>
-      <property name="COEFF_ACTUAL.SMITH_B11.2" source="/Controller/FeedBack/SmithCoefficients/Actual/B11_2"/>
-      <property name="COEFF_ACTUAL.SMITH_A12.0" source="/Controller/FeedBack/SmithCoefficients/Actual/A12_1"/>
-      <property name="COEFF_ACTUAL.SMITH_A12.1" source="/Controller/FeedBack/SmithCoefficients/Actual/A12_2"/>
-      <property name="COEFF_ACTUAL.SMITH_B12.0" source="/Controller/FeedBack/SmithCoefficients/Actual/B12_0"/>
-      <property name="COEFF_ACTUAL.SMITH_B12.1" source="/Controller/FeedBack/SmithCoefficients/Actual/B12_1"/>
-      <property name="COEFF_ACTUAL.SMITH_B12.2" source="/Controller/FeedBack/SmithCoefficients/Actual/B12_2"/>
-      <property name="COEFF_ACTUAL.SMITH_A21.0" source="/Controller/FeedBack/SmithCoefficients/Actual/A21_1"/>
-      <property name="COEFF_ACTUAL.SMITH_A21.1" source="/Controller/FeedBack/SmithCoefficients/Actual/A21_2"/>
-      <property name="COEFF_ACTUAL.SMITH_B21.0" source="/Controller/FeedBack/SmithCoefficients/Actual/B21_0"/>
-      <property name="COEFF_ACTUAL.SMITH_B21.1" source="/Controller/FeedBack/SmithCoefficients/Actual/B21_1"/>
-      <property name="COEFF_ACTUAL.SMITH_B21.2" source="/Controller/FeedBack/SmithCoefficients/Actual/B21_2"/>
-      <property name="COEFF_ACTUAL.SMITH_A22.0" source="/Controller/FeedBack/SmithCoefficients/Actual/A22_1"/>
-      <property name="COEFF_ACTUAL.SMITH_A22.1" source="/Controller/FeedBack/SmithCoefficients/Actual/A22_2"/>
-      <property name="COEFF_ACTUAL.SMITH_B22.0" source="/Controller/FeedBack/SmithCoefficients/Actual/B22_0"/>
-      <property name="COEFF_ACTUAL.SMITH_B22.1" source="/Controller/FeedBack/SmithCoefficients/Actual/B22_1"/>
-      <property name="COEFF_ACTUAL.SMITH_B22.2" source="/Controller/FeedBack/SmithCoefficients/Actual/B22_2"/>
-      <property name="COEFF.SMITH_APPLY" source="/Controller/FeedBack/SmithCoefficients/apply"/>
+      % if not isSincavSel :
+        <property name="MIMO.ENA" source="/Controller/FeedBack/mimoEnable"/>
+        <property name="COEFF.MIMO_A11.0" source="/Controller/FeedBack/MimoCoefficients/A11_1"/>
+        <property name="COEFF.MIMO_A11.1" source="/Controller/FeedBack/MimoCoefficients/A11_2"/>
+        <property name="COEFF.MIMO_B11.0" source="/Controller/FeedBack/MimoCoefficients/B11_0"/>
+        <property name="COEFF.MIMO_B11.1" source="/Controller/FeedBack/MimoCoefficients/B11_1"/>
+        <property name="COEFF.MIMO_B11.2" source="/Controller/FeedBack/MimoCoefficients/B11_2"/>
+        <property name="COEFF.MIMO_A12.0" source="/Controller/FeedBack/MimoCoefficients/A12_1"/>
+        <property name="COEFF.MIMO_A12.1" source="/Controller/FeedBack/MimoCoefficients/A12_2"/>
+        <property name="COEFF.MIMO_B12.0" source="/Controller/FeedBack/MimoCoefficients/B12_0"/>
+        <property name="COEFF.MIMO_B12.1" source="/Controller/FeedBack/MimoCoefficients/B12_1"/>
+        <property name="COEFF.MIMO_B12.2" source="/Controller/FeedBack/MimoCoefficients/B12_2"/>
+        <property name="COEFF.MIMO_A21.0" source="/Controller/FeedBack/MimoCoefficients/A21_1"/>
+        <property name="COEFF.MIMO_A21.1" source="/Controller/FeedBack/MimoCoefficients/A21_2"/>
+        <property name="COEFF.MIMO_B21.0" source="/Controller/FeedBack/MimoCoefficients/B21_0"/>
+        <property name="COEFF.MIMO_B21.1" source="/Controller/FeedBack/MimoCoefficients/B21_1"/>
+        <property name="COEFF.MIMO_B21.2" source="/Controller/FeedBack/MimoCoefficients/B21_2"/>
+        <property name="COEFF.MIMO_A22.0" source="/Controller/FeedBack/MimoCoefficients/A22_1"/>
+        <property name="COEFF.MIMO_A22.1" source="/Controller/FeedBack/MimoCoefficients/A22_2"/>
+        <property name="COEFF.MIMO_B22.0" source="/Controller/FeedBack/MimoCoefficients/B22_0"/>
+        <property name="COEFF.MIMO_B22.1" source="/Controller/FeedBack/MimoCoefficients/B22_1"/>
+        <property name="COEFF.MIMO_B22.2" source="/Controller/FeedBack/MimoCoefficients/B22_2"/>
+        <property name="COEFF_ACTUAL.MIMO_A11.0" source="/Controller/FeedBack/MimoCoefficients/Actual/A11_1"/>
+        <property name="COEFF_ACTUAL.MIMO_A11.1" source="/Controller/FeedBack/MimoCoefficients/Actual/A11_2"/>
+        <property name="COEFF_ACTUAL.MIMO_B11.0" source="/Controller/FeedBack/MimoCoefficients/Actual/B11_0"/>
+        <property name="COEFF_ACTUAL.MIMO_B11.1" source="/Controller/FeedBack/MimoCoefficients/Actual/B11_1"/>
+        <property name="COEFF_ACTUAL.MIMO_B11.2" source="/Controller/FeedBack/MimoCoefficients/Actual/B11_2"/>
+        <property name="COEFF_ACTUAL.MIMO_A12.0" source="/Controller/FeedBack/MimoCoefficients/Actual/A12_1"/>
+        <property name="COEFF_ACTUAL.MIMO_A12.1" source="/Controller/FeedBack/MimoCoefficients/Actual/A12_2"/>
+        <property name="COEFF_ACTUAL.MIMO_B12.0" source="/Controller/FeedBack/MimoCoefficients/Actual/B12_0"/>
+        <property name="COEFF_ACTUAL.MIMO_B12.1" source="/Controller/FeedBack/MimoCoefficients/Actual/B12_1"/>
+        <property name="COEFF_ACTUAL.MIMO_B12.2" source="/Controller/FeedBack/MimoCoefficients/Actual/B12_2"/>
+        <property name="COEFF_ACTUAL.MIMO_A21.0" source="/Controller/FeedBack/MimoCoefficients/Actual/A21_1"/>
+        <property name="COEFF_ACTUAL.MIMO_A21.1" source="/Controller/FeedBack/MimoCoefficients/Actual/A21_2"/>
+        <property name="COEFF_ACTUAL.MIMO_B21.0" source="/Controller/FeedBack/MimoCoefficients/Actual/B21_0"/>
+        <property name="COEFF_ACTUAL.MIMO_B21.1" source="/Controller/FeedBack/MimoCoefficients/Actual/B21_1"/>
+        <property name="COEFF_ACTUAL.MIMO_B21.2" source="/Controller/FeedBack/MimoCoefficients/Actual/B21_2"/>
+        <property name="COEFF_ACTUAL.MIMO_A22.0" source="/Controller/FeedBack/MimoCoefficients/Actual/A22_1"/>
+        <property name="COEFF_ACTUAL.MIMO_A22.1" source="/Controller/FeedBack/MimoCoefficients/Actual/A22_2"/>
+        <property name="COEFF_ACTUAL.MIMO_B22.0" source="/Controller/FeedBack/MimoCoefficients/Actual/B22_0"/>
+        <property name="COEFF_ACTUAL.MIMO_B22.1" source="/Controller/FeedBack/MimoCoefficients/Actual/B22_1"/>
+        <property name="COEFF_ACTUAL.MIMO_B22.2" source="/Controller/FeedBack/MimoCoefficients/Actual/B22_2"/>
+        <property name="COEFF.MIMO_APPLY" source="/Controller/FeedBack/MimoCoefficients/apply"/>
+
+        <property name="SMITH.ENA" source="/Controller/FeedBack/smithEnable"/>
+        <property name="SMITH.DELAY" source="/Controller/FeedBack/smithDelay"/>
+        <property name="COEFF.SMITH_A11.0" source="/Controller/FeedBack/SmithCoefficients/A11_1"/>
+        <property name="COEFF.SMITH_A11.1" source="/Controller/FeedBack/SmithCoefficients/A11_2"/>
+        <property name="COEFF.SMITH_B11.0" source="/Controller/FeedBack/SmithCoefficients/B11_0"/>
+        <property name="COEFF.SMITH_B11.1" source="/Controller/FeedBack/SmithCoefficients/B11_1"/>
+        <property name="COEFF.SMITH_B11.2" source="/Controller/FeedBack/SmithCoefficients/B11_2"/>
+        <property name="COEFF.SMITH_A12.0" source="/Controller/FeedBack/SmithCoefficients/A12_1"/>
+        <property name="COEFF.SMITH_A12.1" source="/Controller/FeedBack/SmithCoefficients/A12_2"/>
+        <property name="COEFF.SMITH_B12.0" source="/Controller/FeedBack/SmithCoefficients/B12_0"/>
+        <property name="COEFF.SMITH_B12.1" source="/Controller/FeedBack/SmithCoefficients/B12_1"/>
+        <property name="COEFF.SMITH_B12.2" source="/Controller/FeedBack/SmithCoefficients/B12_2"/>
+        <property name="COEFF.SMITH_A21.0" source="/Controller/FeedBack/SmithCoefficients/A21_1"/>
+        <property name="COEFF.SMITH_A21.1" source="/Controller/FeedBack/SmithCoefficients/A21_2"/>
+        <property name="COEFF.SMITH_B21.0" source="/Controller/FeedBack/SmithCoefficients/B21_0"/>
+        <property name="COEFF.SMITH_B21.1" source="/Controller/FeedBack/SmithCoefficients/B21_1"/>
+        <property name="COEFF.SMITH_B21.2" source="/Controller/FeedBack/SmithCoefficients/B21_2"/>
+        <property name="COEFF.SMITH_A22.0" source="/Controller/FeedBack/SmithCoefficients/A22_1"/>
+        <property name="COEFF.SMITH_A22.1" source="/Controller/FeedBack/SmithCoefficients/A22_2"/>
+        <property name="COEFF.SMITH_B22.0" source="/Controller/FeedBack/SmithCoefficients/B22_0"/>
+        <property name="COEFF.SMITH_B22.1" source="/Controller/FeedBack/SmithCoefficients/B22_1"/>
+        <property name="COEFF.SMITH_B22.2" source="/Controller/FeedBack/SmithCoefficients/B22_2"/>
+        <property name="COEFF_ACTUAL.SMITH_A11.0" source="/Controller/FeedBack/SmithCoefficients/Actual/A11_1"/>
+        <property name="COEFF_ACTUAL.SMITH_A11.1" source="/Controller/FeedBack/SmithCoefficients/Actual/A11_2"/>
+        <property name="COEFF_ACTUAL.SMITH_B11.0" source="/Controller/FeedBack/SmithCoefficients/Actual/B11_0"/>
+        <property name="COEFF_ACTUAL.SMITH_B11.1" source="/Controller/FeedBack/SmithCoefficients/Actual/B11_1"/>
+        <property name="COEFF_ACTUAL.SMITH_B11.2" source="/Controller/FeedBack/SmithCoefficients/Actual/B11_2"/>
+        <property name="COEFF_ACTUAL.SMITH_A12.0" source="/Controller/FeedBack/SmithCoefficients/Actual/A12_1"/>
+        <property name="COEFF_ACTUAL.SMITH_A12.1" source="/Controller/FeedBack/SmithCoefficients/Actual/A12_2"/>
+        <property name="COEFF_ACTUAL.SMITH_B12.0" source="/Controller/FeedBack/SmithCoefficients/Actual/B12_0"/>
+        <property name="COEFF_ACTUAL.SMITH_B12.1" source="/Controller/FeedBack/SmithCoefficients/Actual/B12_1"/>
+        <property name="COEFF_ACTUAL.SMITH_B12.2" source="/Controller/FeedBack/SmithCoefficients/Actual/B12_2"/>
+        <property name="COEFF_ACTUAL.SMITH_A21.0" source="/Controller/FeedBack/SmithCoefficients/Actual/A21_1"/>
+        <property name="COEFF_ACTUAL.SMITH_A21.1" source="/Controller/FeedBack/SmithCoefficients/Actual/A21_2"/>
+        <property name="COEFF_ACTUAL.SMITH_B21.0" source="/Controller/FeedBack/SmithCoefficients/Actual/B21_0"/>
+        <property name="COEFF_ACTUAL.SMITH_B21.1" source="/Controller/FeedBack/SmithCoefficients/Actual/B21_1"/>
+        <property name="COEFF_ACTUAL.SMITH_B21.2" source="/Controller/FeedBack/SmithCoefficients/Actual/B21_2"/>
+        <property name="COEFF_ACTUAL.SMITH_A22.0" source="/Controller/FeedBack/SmithCoefficients/Actual/A22_1"/>
+        <property name="COEFF_ACTUAL.SMITH_A22.1" source="/Controller/FeedBack/SmithCoefficients/Actual/A22_2"/>
+        <property name="COEFF_ACTUAL.SMITH_B22.0" source="/Controller/FeedBack/SmithCoefficients/Actual/B22_0"/>
+        <property name="COEFF_ACTUAL.SMITH_B22.1" source="/Controller/FeedBack/SmithCoefficients/Actual/B22_1"/>
+        <property name="COEFF_ACTUAL.SMITH_B22.2" source="/Controller/FeedBack/SmithCoefficients/Actual/B22_2"/>
+        <property name="COEFF.SMITH_APPLY" source="/Controller/FeedBack/SmithCoefficients/apply"/>
+
+      % endif
 
       <property name="OUT_SATURATION.EARLY.I" source="/Controller/Status/feedForwardSaturationI"/>
       <property name="OUT_SATURATION.EARLY.Q" source="/Controller/Status/feedForwardSaturationQ"/>
 
-      <property name="OUT_SATURATION.GAIN.I" source="/Controller/Status/gainSaturationI"/>
-      <property name="OUT_SATURATION.GAIN.Q" source="/Controller/Status/gainSaturationQ"/>
+      % if ( not isSincav and FW_VER_CTRL < version.parse("1.8.0") ) or ( isSincav and FW_VER_CTRL < version.parse("1.7.0") ) :
+        <property name="OUT_SATURATION.GAIN.I" source="/Controller/Status/gainSaturationI"/>
+        <property name="OUT_SATURATION.GAIN.Q" source="/Controller/Status/gainSaturationQ"/>
+      % else :
+        <property name="OUT_SATURATION.OVC" source="/Controller/Status/ovcSaturation"/>
+      % endif
 
       <property name="OUT_SATURATION.LATE.I" source="/Controller/Status/offsetCompensationSaturationI"/>
       <property name="OUT_SATURATION.LATE.Q" source="/Controller/Status/offsetCompensationSaturationQ"/>
 
       <property name="CTRL_STATUS" source="/Controller/Status/overall"/>
 
-      <property name="ACTUAL_PULSE_LENGTH.SAMPLES" source="/Controller/Status/ActualPulseLength/samples">
-        <publish_ZMQ>true</publish_ZMQ>
-        <data_matching>exact</data_matching>
-      </property>
+      % if not isSincavSel :
+
+        <property name="ACTUAL_PULSE_LENGTH.SAMPLES" source="/Controller/Status/ActualPulseLength/samples">
+          <publish_ZMQ>true</publish_ZMQ>
+          <data_matching>exact</data_matching>
+        </property>
 
-      <property name="ACTUAL_PULSE_LENGTH.TIME" source="/Controller/Status/ActualPulseLength/time"/>
+        <property name="ACTUAL_PULSE_LENGTH.TIME" source="/Controller/Status/ActualPulseLength/time"/>
+
+      % endif
 
       <import directory="CTRL_STATUS">/Controller/Status</import>
 
@@ -382,23 +396,27 @@
 
       <property name="FFC.FINAL_LIMIT" source="/LearningFeedForward/outputLimit"/>
 
-      <D_spectrum name="PROTECT.LEVEL" source="/Controller/FastProtection/LEVEL">
-        <incrementSource>/Configuration/samplingTime</incrementSource>
-        <numberOfBuffers>16</numberOfBuffers>
-        <publish_ZMQ>true</publish_ZMQ>
-        <data_matching>exact</data_matching>
-      </D_spectrum>
-      <D_spectrum name="PROTECT.VREFL" source="/Controller/FastProtection/VREFL">
-        <incrementSource>/Configuration/samplingTime</incrementSource>
-        <numberOfBuffers>16</numberOfBuffers>
-        <publish_ZMQ>true</publish_ZMQ>
-        <data_matching>exact</data_matching>
-      </D_spectrum>
-      <property name="PROTECT.ACTIVE" source="/Controller/Status/fastProtectionActive">
-        <publish_ZMQ>true</publish_ZMQ>
-        <data_matching>exact</data_matching>
-      </property>
-      <import directory="PROTECT">/Controller/FastProtection</import>
+      % if not isSincavSel :
+
+        <D_spectrum name="PROTECT.LEVEL" source="/Controller/FastProtection/LEVEL">
+          <incrementSource>/Configuration/samplingTime</incrementSource>
+          <numberOfBuffers>16</numberOfBuffers>
+          <publish_ZMQ>true</publish_ZMQ>
+          <data_matching>exact</data_matching>
+        </D_spectrum>
+        <D_spectrum name="PROTECT.VREFL" source="/Controller/FastProtection/VREFL">
+          <incrementSource>/Configuration/samplingTime</incrementSource>
+          <numberOfBuffers>16</numberOfBuffers>
+          <publish_ZMQ>true</publish_ZMQ>
+          <data_matching>exact</data_matching>
+        </D_spectrum>
+        <property name="PROTECT.ACTIVE" source="/Controller/Status/fastProtectionActive">
+          <publish_ZMQ>true</publish_ZMQ>
+          <data_matching>exact</data_matching>
+        </property>
+        <import directory="PROTECT">/Controller/FastProtection</import>
+
+      % endif
 
       % if ( INSTANCE_TYPE != InstanceType.sincav ) or enableDynamicOVC :
         <property name="FF.ROTATION_TABLE.ENA" source="/Controller/FeedForward/RotationTable/enable"/>
@@ -418,6 +436,10 @@
       %   endfor
       % endif
 
+      % if isSincavSel :
+        <import>/Controller/FeedBackSincavSel</import>
+      % endif
+
     </location>
 
     <location name="VM.${STATION_LOCATION_SUFFIX}">
@@ -706,8 +728,10 @@
           <property name="LIMIT_DIS" source="/AdcBoard${BOARD}/Channel${CHANNEL}/limiterDisable"/>
           <property name="AMPL.LIMITER_ACTIVE" source="/AdcBoard${BOARD}/Channel${CHANNEL}/limiterActive"/>
           <property name="AMPL.PRE_LIMITER_ACTIVE" source="/AdcBoard${BOARD}/Channel${CHANNEL}/prelimiterActive"/>
-          <property name="ADC_OVERRANGE" source="/AdcBoard${BOARD}/Channel${CHANNEL}/adcOverflow"/>
-          <property name="ADC_OVERRANGE_TIME" source="/AdcBoard${BOARD}/Channel${CHANNEL}/adcOverflowTime"/>
+          % if not isSincavSel :
+            <property name="ADC_OVERRANGE" source="/AdcBoard${BOARD}/Channel${CHANNEL}/adcOverflow"/>
+            <property name="ADC_OVERRANGE_TIME" source="/AdcBoard${BOARD}/Channel${CHANNEL}/adcOverflowTime"/>
+          % endif
           <property name="FILTER_SEL" source="/AdcBoard${BOARD}/Channel${CHANNEL}/Filter/type"/>
           <property name="FILTER_BW" source="/AdcBoard${BOARD}/Channel${CHANNEL}/Filter/bandwidth"/>
           <property name="FILTER_CF" source="/AdcBoard${BOARD}/Channel${CHANNEL}/Filter/frequency"/>
@@ -1160,41 +1184,14 @@
         <property name="OUT_SATURATION.EARLY.I" source="/Controller/Status/feedForwardSaturationI"/>
         <property name="OUT_SATURATION.EARLY.Q" source="/Controller/Status/feedForwardSaturationQ"/>
 
-        <property name="OUT_SATURATION.GAIN.I" source="/Controller/Status/gainSaturationI"/>
-        <property name="OUT_SATURATION.GAIN.Q" source="/Controller/Status/gainSaturationQ"/>
+        % if ( not isSincav and FW_VER_CTRL < version.parse("1.8.0") ) or ( isSincav and FW_VER_CTRL < version.parse("1.7.0") ) :
+          <property name="OUT_SATURATION.GAIN.I" source="/Controller/Status/gainSaturationI"/>
+          <property name="OUT_SATURATION.GAIN.Q" source="/Controller/Status/gainSaturationQ"/>
+        % endif
 
         <property name="OUT_SATURATION.LATE.I" source="/Controller/Status/offsetCompensationSaturationI"/>
         <property name="OUT_SATURATION.LATE.Q" source="/Controller/Status/offsetCompensationSaturationQ"/>
 
-        % if INSTANCE_TYPE != InstanceType.sincav :
-          <property name="CTRL_STATUS.masterFeedbackLinkNotOK" source="/Controller/Status/masterFeedbackLinkNotOK"/>
-          <property name="CTRL_STATUS.synchronisationNotOK" source="/Controller/Status/synchronisationNotOK"/>
-          <property name="CTRL_STATUS.limitersModule1Probe" source="/Controller/Status/limitersModule1Probe"/>
-          <property name="CTRL_STATUS.limitersModule2Probe" source="/Controller/Status/limitersModule2Probe"/>
-          <property name="CTRL_STATUS.limitersModule1Forward" source="/Controller/Status/limitersModule1Forward"/>
-          <property name="CTRL_STATUS.limitersModule2Forward" source="/Controller/Status/limitersModule2Forward"/>
-          <property name="CTRL_STATUS.triggerLimitersModule1Probe" source="/Controller/Status/triggerLimitersModule1Probe"/>
-          <property name="CTRL_STATUS.triggerLimitersModule2Probe" source="/Controller/Status/triggerLimitersModule2Probe"/>
-          <property name="CTRL_STATUS.triggerLimitersModule1Forward" source="/Controller/Status/triggerLimitersModule1Forward"/>
-          <property name="CTRL_STATUS.triggerLimitersModule2Forward" source="/Controller/Status/triggerLimitersModule2Forward"/>
-          <property name="CTRL_STATUS.slaveFeedbackLinkNotOK" source="/Controller/Status/slaveFeedbackLinkNotOK"/>
-          <property name="CTRL_STATUS.limitersModule3Probe" source="/Controller/Status/limitersModule3Probe"/>
-          <property name="CTRL_STATUS.limitersModule4Probe" source="/Controller/Status/limitersModule4Probe"/>
-          <property name="CTRL_STATUS.limitersModule3Forward" source="/Controller/Status/limitersModule3Forward"/>
-          <property name="CTRL_STATUS.limitersModule4Forward" source="/Controller/Status/limitersModule4Forward"/>
-          <property name="CTRL_STATUS.triggerLimitersModule3Probe" source="/Controller/Status/triggerLimitersModule3Probe"/>
-          <property name="CTRL_STATUS.triggerLimitersModule4Probe" source="/Controller/Status/triggerLimitersModule4Probe"/>
-          <property name="CTRL_STATUS.triggerLimitersModule3Forward" source="/Controller/Status/triggerLimitersModule3Forward"/>
-          <property name="CTRL_STATUS.triggerLimitersModule4Forward" source="/Controller/Status/triggerLimitersModule4Forward"/>
-          <property name="CTRL_STATUS.backplaneInterlockActive" source="/Controller/Status/backplaneInterlockActive"/>
-        % else : # INSTANCE_TYPE == InstanceType.sincav  ==>
-          <property name="CTRL_STATUS.limiters" source="/Controller/Status/limiters"/>
-          <property name="CTRL_STATUS.prelimiters" source="/Controller/Status/prelimiters"/>
-          <property name="CTRL_STATUS.fastProtectionActive" source="/Controller/Status/fastProtectionActive"/>
-          <property name="CTRL_STATUS.interlockLatcher" source="/Controller/Status/interlockLatcher"/>
-          <property name="CTRL_STATUS.externalInterlock" source="/Controller/Status/externalInterlock"/>
-        % endif
-
         <property name="CTRL_STATUS" source="/Controller/Status/overall"/>
 
         <property name="ACTUAL_PULSE_LENGTH.SAMPLES" source="/Controller/Status/ActualPulseLength/samples">
@@ -1537,7 +1534,9 @@
       </location>
 
       <location name="MAIN.${MAIN_LOCATION_SUFFIX}">
-        <property name="QL" source="/Configuration/QLoaded"/>
+        <property name="QL" source="/Configuration/QLoaded">
+          <publish_ZMQ>true</publish_ZMQ>
+        </property>
         <property name="QL_SP_FUDGE" source="/Configuration/QLoadedFudge"/>
 
         <property name="PHASEMODULATION.SEL" source="/Controller/PhaseModulation/FeedForward/functionSelect"/>
@@ -1951,8 +1950,12 @@
             </property>
             <property name="PROBE.PHASE.SAMPLE" source="/AdcBoard${IDX_PROB_CM[M]}/Channel${C}/Samples/phase" type="float"/>
 
-            <property name="PROBE.CAL_SCA" source="/AdcBoard${IDX_PROB_CM[M]}/Channel${C}/Calibration/scale" type="float"/>
-            <property name="PROBE.CAL_ROT" source="/AdcBoard${IDX_PROB_CM[M]}/Channel${C}/Calibration/angle" type="float"/>
+            <property name="PROBE.CAL_SCA" source="/AdcBoard${IDX_PROB_CM[M]}/Channel${C}/Calibration/scale" type="float">
+              <publish_ZMQ>true</publish_ZMQ>
+            </property>
+            <property name="PROBE.CAL_ROT" source="/AdcBoard${IDX_PROB_CM[M]}/Channel${C}/Calibration/angle" type="float">
+              <publish_ZMQ>true</publish_ZMQ>
+            </property>
             <property name="PROBE.AMPL.LIMITER" source="/AdcBoard${IDX_PROB_CM[M]}/Channel${C}/limiter"/>
             <property name="PROBE.AMPL.PRE_LIMITER" source="/AdcBoard${IDX_PROB_CM[M]}/Channel${C}/prelimiter"/>
             <property name="PROBE.LIMIT.ENA" source="/AdcBoard${IDX_PROB_CM[M]}/Channel${C}/limiterEnable"/>
@@ -1992,8 +1995,12 @@
 
             <property name="PFORW.PEAK" source="/AdcBoard${IDX_FORW_CM[M]}/Channel${C}/peakPowerFlattop" type="float"/>
             <property name="PFORW.PEAK.FILL" source="/AdcBoard${IDX_FORW_CM[M]}/Channel${C}/peakPowerFilling" type="float"/>
-            <property name="VFORW.CAL_SCA" source="/AdcBoard${IDX_FORW_CM[M]}/Channel${C}/Calibration/scale" type="float"/>
-            <property name="VFORW.CAL_ROT" source="/AdcBoard${IDX_FORW_CM[M]}/Channel${C}/Calibration/angle" type="float"/>
+            <property name="VFORW.CAL_SCA" source="/AdcBoard${IDX_FORW_CM[M]}/Channel${C}/Calibration/scale" type="float">
+              <publish_ZMQ>true</publish_ZMQ>
+            </property>
+            <property name="VFORW.CAL_ROT" source="/AdcBoard${IDX_FORW_CM[M]}/Channel${C}/Calibration/angle" type="float">
+              <publish_ZMQ>true</publish_ZMQ>
+            </property>
             <property name="VFORW.AMPL.LIMITER" source="/AdcBoard${IDX_FORW_CM[M]}/Channel${C}/limiter"/>
             <property name="VFORW.AMPL.PRE_LIMITER" source="/AdcBoard${IDX_FORW_CM[M]}/Channel${C}/prelimiter"/>
             <property name="VFORW.LIMIT.ENA" source="/AdcBoard${IDX_FORW_CM[M]}/Channel${C}/limiterEnable"/>
@@ -2038,8 +2045,12 @@
 
             <property name="PREFL.PEAK" source="/AdcBoard${IDX_REFL_CM[M]}/Channel${C}/peakPowerFlattop" type="float"/>
             <property name="PREFL.PEAK.FILL" source="/AdcBoard${IDX_REFL_CM[M]}/Channel${C}/peakPowerFilling" type="float"/>
-            <property name="VREFL.CAL_SCA" source="/AdcBoard${IDX_REFL_CM[M]}/Channel${C}/Calibration/scale" type="float"/>
-            <property name="VREFL.CAL_ROT" source="/AdcBoard${IDX_REFL_CM[M]}/Channel${C}/Calibration/angle" type="float"/>
+            <property name="VREFL.CAL_SCA" source="/AdcBoard${IDX_REFL_CM[M]}/Channel${C}/Calibration/scale" type="float">
+              <publish_ZMQ>true</publish_ZMQ>
+            </property>
+            <property name="VREFL.CAL_ROT" source="/AdcBoard${IDX_REFL_CM[M]}/Channel${C}/Calibration/angle" type="float">
+              <publish_ZMQ>true</publish_ZMQ>
+            </property>
             <property name="VREFL.AMPL.LIMITER" source="/AdcBoard${IDX_REFL_CM[M]}/Channel${C}/limiter"/>
             <property name="VREFL.AMPL.PRE_LIMITER" source="/AdcBoard${IDX_REFL_CM[M]}/Channel${C}/prelimiter"/>
             <property name="VREFL.LIMIT.ENA" source="/AdcBoard${IDX_REFL_CM[M]}/Channel${C}/limiterEnable"/>
@@ -2325,24 +2336,20 @@
           <property name="VREFL.TRIGGER_LIMITS.ACTIVE" source="/AdcBoard${IDX_REFL_CM[M]}/Status/WORD_AMP_LIMIT_TRG_ACTIVE"/>
         </location>
 
-        <location name="ANOMALY_DETECTION.M${M}.${STATION_LOCATION_SUFFIX}">
-          % for c in range(0,8) :
-            <D_spectrum name="C${c+1}.GLR" source="/Controller/AnomalyDetection/CryoModule${(M-1)%2}/DAQ/Cavity${c}/GLR">
-              <incrementSource>/Configuration/samplingTime</incrementSource>
-              <publish_ZMQ>true</publish_ZMQ>
-              <data_matching>exact</data_matching>
-              <numberOfBuffers>16</numberOfBuffers>
-            </D_spectrum>
-            <D_spectrum name="C${c+1}.RESIDUAL" source="/Controller/AnomalyDetection/CryoModule${(M-1)%2}/DAQ/Cavity${c}/Residual">
-              <incrementSource>/Configuration/samplingTime</incrementSource>
-              <publish_ZMQ>true</publish_ZMQ>
-              <data_matching>exact</data_matching>
-              <numberOfBuffers>16</numberOfBuffers>
-            </D_spectrum>
-          % endfor
-
-          <import>/Controller/AnomalyDetection/CryoModule${(M-1)%2}</import>
-        </location>
+        % if not isSincav and FW_VER_CTRL >= version.parse("1.8.0") :
+          <location name="ANOMALY_DETECTION.M${M}.${STATION_LOCATION_SUFFIX}">
+            % for c in range(0,8) :
+              <D_spectrum name="C${c+1}.GLR" source="/Controller/AnomalyDetection/CryoModule${(M-1)%2}/Cavity${c}/DAQ/GLR">
+                <incrementSource>/Configuration/samplingTime</incrementSource>
+                <publish_ZMQ>true</publish_ZMQ>
+                <data_matching>exact</data_matching>
+                <numberOfBuffers>16</numberOfBuffers>
+              </D_spectrum>
+            % endfor
+
+            <import>/Controller/AnomalyDetection/CryoModule${(M-1)%2}</import>
+          </location>
+        % endif
 
       % endfor
 
diff --git a/llrfctrl6/templates/llrfctrl.dmap b/llrfctrl6/templates/llrfctrl.dmap
index 25609c199bc5d2913134793d113379af10c9d514..c1ef3e24d082593061c227342aa8cc249c42c7fc 100644
--- a/llrfctrl6/templates/llrfctrl.dmap
+++ b/llrfctrl6/templates/llrfctrl.dmap
@@ -5,16 +5,23 @@
   MAPFILE_ADC=[]
   for BOARD in ADCBOARD.keys() :
 
-    if "_mcav_" in ADCBOARD[BOARD]["FIRMWARE_PROJECT"] :
-      splitProjectAtUnderscore=3
-    else :
-      splitProjectAtUnderscore=2
+    if "_scav_sel_" not in ADCBOARD[BOARD]["FIRMWARE_PROJECT"] :
+
+      if "_mcav_" in ADCBOARD[BOARD]["FIRMWARE_PROJECT"] :
+          splitProjectAtUnderscore=3
+      else :
+        splitProjectAtUnderscore=2
+
+      project = '_'.join(ADCBOARD[BOARD]["FIRMWARE_PROJECT"].                                                        \
+                    split('_',splitProjectAtUnderscore)[:splitProjectAtUnderscore])
+
+      configuration = '_'.join(ADCBOARD[BOARD]["FIRMWARE_PROJECT"].                                                  \
+                              split('_',splitProjectAtUnderscore)[splitProjectAtUnderscore:])
 
-    project = '_'.join(ADCBOARD[BOARD]["FIRMWARE_PROJECT"].                                                           \
-                  split('_',splitProjectAtUnderscore)[:splitProjectAtUnderscore])
+    else:  # scav_sel
+      project = 'llrf_scav_sel'
+      configuration = 'sis8300ku'
 
-    configuration = '_'.join(ADCBOARD[BOARD]["FIRMWARE_PROJECT"].                                                     \
-                            split('_',splitProjectAtUnderscore)[splitProjectAtUnderscore:])
 
     MAPFILE_ADC.append(getMapFile('llrf',project,configuration,ADCBOARD[BOARD]["FIRMWARE_VER"], __output_folder, DYNAMIC))
 
diff --git a/llrfctrl6/templates/llrfctrl_adc.xlmap b/llrfctrl6/templates/llrfctrl_adc.xlmap
index d5b6b3c3909b933db01a30954e84308c4719d7dd..464bb687ed9e819265bdea6c4850b2f1dce51acf 100644
--- a/llrfctrl6/templates/llrfctrl_adc.xlmap
+++ b/llrfctrl6/templates/llrfctrl_adc.xlmap
@@ -8,6 +8,8 @@
   else :
     sincavFirmware = False
 
+  isSincavSel = ( sincavFirmware and FIRMWARE_PROJECT_CONTROLLER == 'llrf_scav_sel_sis8300ku' )
+
   if not sincavFirmware and ( 'FW_VER_ADC' not in locals() or FW_VER_ADC is UNDEFINED ) :
     raise OmitFileException
 
@@ -18,12 +20,10 @@
 
   # Newer firmware (mcav_fd variant only for now) omits the "WORD_" prefix in most places
   wordPrefix = "WORD_"
-  if not sincavFirmware :
+  if not sincavFirmware or isSincavSel :
     wordPrefix = ""
 
-  wordPrefixBSP = "WORD_"
-  if not sincavFirmware :
-    wordPrefixBSP = ""
+  wordPrefixBSP = wordPrefix
 
 
   rtmModule="<par>rtmType</par>"
@@ -38,6 +38,10 @@
   elif sincavFirmware and FW_VER_CTRL >= version.parse("1.4.0") :
     daqbufRegisterAmplPhase="app_daq.DAQ_FD"
     daqbufRegisterRaw="app_daq_raw.DAQ_RAW_BUF0"
+  if isSincavSel :
+    daqbufRegisterAmplPhase="DAQ_MEM.DAQ_FD"
+    daqbufRegisterRaw="DAQ_MEM_RAW.DAQ1_RAW_BUF0"
+
 
 %>\
 <logicalNameMap>
@@ -48,17 +52,19 @@
       <targetDevice><par>target</par></targetDevice>
       <targetRegister>${daqbufRegisterAmplPhase}_BUF0</targetRegister>
       <numberOfElements>${pulseLength}</numberOfElements>
-      <plugin name="doubleBuffer">
-        <parameter name="secondBuffer">${daqbufRegisterAmplPhase}_BUF1</parameter>
-        % if not sincavFirmware :
-          <parameter name="enableDoubleBuffering">DAQ.DOUBLE_BUF_ENA</parameter>
-          <parameter name="currentBufferNumber">DAQ.ACTIVE_BUF</parameter>
-        % else :
-          <parameter name="enableDoubleBuffering">DAQ.WORD_DUB_BUF_ENA</parameter>
-          <parameter name="currentBufferNumber">DAQ.WORD_DUB_BUF_CURR</parameter>
-        % endif
-        <parameter name="daqNumber"><par>amplPhaseDaq</par></parameter>
-      </plugin>
+      % if not isSincavSel :
+        <plugin name="doubleBuffer">
+          <parameter name="secondBuffer">${daqbufRegisterAmplPhase}_BUF1</parameter>
+          % if not sincavFirmware :
+            <parameter name="enableDoubleBuffering">DAQ.DOUBLE_BUF_ENA</parameter>
+            <parameter name="currentBufferNumber">DAQ.ACTIVE_BUF</parameter>
+          % else :
+            <parameter name="enableDoubleBuffering">DAQ.WORD_DUB_BUF_ENA</parameter>
+            <parameter name="currentBufferNumber">DAQ.WORD_DUB_BUF_CURR</parameter>
+          % endif
+          <parameter name="daqNumber"><par>amplPhaseDaq</par></parameter>
+        </plugin>
+      % endif
     </redirectedRegister>
 
   </module>
@@ -223,26 +229,28 @@
           <targetBit>${c}</targetBit>
         </redirectedBit>
 
-        <redirectedBit name="adcOverflow">
-          <targetDevice><par>target</par></targetDevice>
-          % if not sincavFirmware :
-            <targetRegister>APP.${wordPrefix}ADC_OV</targetRegister>
-          % else :
-            <targetRegister>APP.${wordPrefix}ADC_OV_LATCH</targetRegister>
-          % endif
-          <targetBit>${c}</targetBit>
-        </redirectedBit>
+        % if not isSincavSel :
+          <redirectedBit name="adcOverflow">
+            <targetDevice><par>target</par></targetDevice>
+            % if not sincavFirmware :
+              <targetRegister>APP.${wordPrefix}ADC_OV</targetRegister>
+            % else :
+              <targetRegister>APP.${wordPrefix}ADC_OV_LATCH</targetRegister>
+            % endif
+            <targetBit>${c}</targetBit>
+          </redirectedBit>
 
-        <redirectedRegister name="adcOverflowTime">
-          <targetDevice><par>target</par></targetDevice>
-          <targetRegister>APP.${wordPrefix}ADC_OV_TIME</targetRegister>
-          <targetStartIndex>${c}</targetStartIndex>
-          <numberOfElements>1</numberOfElements>
-          <plugin name="math">
-            <parameter name="formula"> x / samplingFreqAdc </parameter>
-            <parameter name="samplingFreqAdc">/ToControlSystem/Configuration/samplingFrequency</parameter>
-          </plugin>
-        </redirectedRegister>
+          <redirectedRegister name="adcOverflowTime">
+            <targetDevice><par>target</par></targetDevice>
+            <targetRegister>APP.${wordPrefix}ADC_OV_TIME</targetRegister>
+            <targetStartIndex>${c}</targetStartIndex>
+            <numberOfElements>1</numberOfElements>
+            <plugin name="math">
+              <parameter name="formula"> x / samplingFreqAdc </parameter>
+              <parameter name="samplingFreqAdc">/ToControlSystem/Configuration/samplingFrequency</parameter>
+            </plugin>
+          </redirectedRegister>
+        % endif
 
         <redirectedRegister name="attenuation">
           <targetDevice>(subdevice?type=3regs&amp;dataDelay=1000&amp;device=<par>target</par>&amp;address=${rtmModule}.${wordPrefix}ATT_SEL&amp;data=${rtmModule}.${wordPrefix}ATT_VAL&amp;status=${rtmModule}.${wordPrefix}ATT_STATUS&amp;map=attenuators.map)</targetDevice>
@@ -273,7 +281,7 @@
 
           <redirectedRegister name="coefficients">
             <targetDevice><par>target</par></targetDevice>
-            % if not sincavFirmware :
+            % if not sincavFirmware or isSincavSel :
                 <targetRegister>FD.${wordPrefix}IIR_COEF</targetRegister>
                 <targetStartIndex>${5*c}</targetStartIndex>
                 <numberOfElements>5</numberOfElements>
@@ -285,7 +293,7 @@
 
         </module> <!-- Filter -->
 
-        % if not sincavFirmware :
+        % if not sincavFirmware or isSincavSel :
           <redirectedRegister name="adcFifoDelay">
             <targetDevice><par>target</par></targetDevice>
             <targetRegister>BSP.ADC_DELAY</targetRegister>
@@ -381,7 +389,7 @@
 
     <module name="FirmwareSEUDetection">
 
-      % if not sincavFirmware or FW_VER_CTRL >= version.parse("1.4.0") :
+      % if not sincavFirmware or FW_VER_CTRL >= version.parse("1.4.0") or isSincavSel :
 
         <redirectedRegister name="unrecoverableErrorDetectedRaw">
           <targetDevice><par>target</par></targetDevice>
@@ -435,21 +443,45 @@
 
     <module name="Configuration">
 
-      <redirectedBit name="BOARD_CONFIG_PRIMARY_DAQ_EN">
-        <targetDevice><par>target</par></targetDevice>
-        <targetRegister>DAQ.${wordPrefix}ENABLE</targetRegister>
-        <targetBit>0</targetBit>
-        <plugin name="forceReadOnly"/>
-        <plugin name="typeHintModifier"><parameter name="type">int32</parameter></plugin> <!-- see #9747 -->
-      </redirectedBit>
+      % if sincavFirmware or FW_VER_ADC < version.parse("2.4.0") :
 
-      <redirectedBit name="BOARD_CONFIG_SECONDARY_DAQ_EN">
-        <targetDevice><par>target</par></targetDevice>
-        <targetRegister>DAQ.${wordPrefix}ENABLE</targetRegister>
-        <targetBit>1</targetBit>
-        <plugin name="forceReadOnly"/>
-        <plugin name="typeHintModifier"><parameter name="type">int32</parameter></plugin> <!-- see #9747 -->
-      </redirectedBit>
+        <redirectedBit name="BOARD_CONFIG_PRIMARY_DAQ_EN">
+          <targetDevice><par>target</par></targetDevice>
+          <targetRegister>DAQ.${wordPrefix}ENABLE</targetRegister>
+          <targetBit>0</targetBit>
+          <plugin name="forceReadOnly"/>
+          <plugin name="typeHintModifier"><parameter name="type">int32</parameter></plugin> <!-- see #9747 -->
+        </redirectedBit>
+
+        <redirectedBit name="BOARD_CONFIG_SECONDARY_DAQ_EN">
+          <targetDevice><par>target</par></targetDevice>
+          <targetRegister>DAQ.${wordPrefix}ENABLE</targetRegister>
+          <targetBit>1</targetBit>
+          <plugin name="forceReadOnly"/>
+          <plugin name="typeHintModifier"><parameter name="type">int32</parameter></plugin> <!-- see #9747 -->
+        </redirectedBit>
+
+      % else :
+
+        <redirectedRegister name="BOARD_CONFIG_PRIMARY_DAQ_EN">
+          <targetDevice><par>target</par></targetDevice>
+          <targetRegister>DAQ.${wordPrefix}ENABLE</targetRegister>
+          <targetStartIndex>0</targetStartIndex>
+          <numberOfElements>1</numberOfElements>
+          <plugin name="forceReadOnly"/>
+          <plugin name="typeHintModifier"><parameter name="type">int32</parameter></plugin> <!-- see #9747 -->
+        </redirectedRegister>
+
+        <redirectedRegister name="BOARD_CONFIG_SECONDARY_DAQ_EN">
+          <targetDevice><par>target</par></targetDevice>
+          <targetRegister>DAQ.${wordPrefix}ENABLE</targetRegister>
+          <targetStartIndex>1</targetStartIndex>
+          <numberOfElements>1</numberOfElements>
+          <plugin name="forceReadOnly"/>
+          <plugin name="typeHintModifier"><parameter name="type">int32</parameter></plugin> <!-- see #9747 -->
+        </redirectedRegister>
+
+      % endif
 
       <redirectedRegister name="BOARD_TIMING_TRG_SEL">
         <targetDevice><par>target</par></targetDevice>
@@ -657,11 +689,6 @@
 
     % if not sincavFirmware  :
 
-      <variable name="WORD_DAQ_MUX1">
-        <value>0</value>
-        <type>uint8</type>
-      </variable>
-
       <redirectedRegister name="timingDividerAdc">
         <targetDevice><par>target</par></targetDevice>
         <targetRegister>DAQ.${wordPrefix}STROBE_DIV</targetRegister>
@@ -669,25 +696,50 @@
         <numberOfElements>1</numberOfElements>
       </redirectedRegister>
 
-      <redirectedRegister name="daqEnableForRawMode">
-        <targetDevice><par>target</par></targetDevice>
-        <targetRegister>DAQ.${wordPrefix}ENABLE</targetRegister>
-        <targetStartIndex>0</targetStartIndex>
-        <numberOfElements>1</numberOfElements>
-      </redirectedRegister>
+      % if not isSincav and FW_VER_ADC >= version.parse("2.4.0") :
+        <redirectedRegister name="daqEnableAmplPhase">
+          <targetDevice><par>target</par></targetDevice>
+          <targetRegister>DAQ.${wordPrefix}ENABLE</targetRegister>
+          <targetStartIndex>0</targetStartIndex>
+          <numberOfElements>1</numberOfElements>
+        </redirectedRegister>
+        <redirectedRegister name="daqEnableRaw">
+          <targetDevice><par>target</par></targetDevice>
+          <targetRegister>DAQ.${wordPrefix}ENABLE</targetRegister>
+          <targetStartIndex>1</targetStartIndex>
+          <numberOfElements>1</numberOfElements>
+        </redirectedRegister>
+      % else :
+        <redirectedBit name="daqEnableAmplPhase">
+          <targetDevice><par>target</par></targetDevice>
+          <targetRegister>DAQ.${wordPrefix}ENABLE</targetRegister>
+          <targetBit>0</targetBit>
+          <plugin name="typeHintModifier"><parameter name="type">Boolean</parameter></plugin>
+        </redirectedBit>
+        <redirectedBit name="daqEnableRaw">
+          <targetDevice><par>target</par></targetDevice>
+          <targetRegister>DAQ.${wordPrefix}ENABLE</targetRegister>
+          <targetBit>1</targetBit>
+          <plugin name="typeHintModifier"><parameter name="type">Boolean</parameter></plugin>
+        </redirectedBit>
+      % endif
 
     % else : # sincavFirmware ==>
 
-      <redirectedRegister name="WORD_DAQ_MUX1">
-        <targetDevice><par>target</par></targetDevice>
-        <targetRegister>DAQ.${wordPrefix}MUX_SEL</targetRegister>
-        <targetStartIndex>1</targetStartIndex>
-        <numberOfElements>1</numberOfElements>
-        <plugin name="math">
-          <parameter name="formula">x == 1 ? 1 : 0</parameter>
-        </plugin>
-        <plugin name="typeHintModifier"><parameter name="type">uint8</parameter></plugin>
-      </redirectedRegister>
+      % if not isSincavSel :
+
+        <redirectedRegister name="WORD_DAQ_MUX1">
+          <targetDevice><par>target</par></targetDevice>
+          <targetRegister>DAQ.${wordPrefix}MUX_SEL</targetRegister>
+          <targetStartIndex>1</targetStartIndex>
+          <numberOfElements>1</numberOfElements>
+          <plugin name="math">
+            <parameter name="formula">x == 1 ? 1 : 0</parameter>
+          </plugin>
+          <plugin name="typeHintModifier"><parameter name="type">uint8</parameter></plugin>
+        </redirectedRegister>
+
+      % endif
 
       <redirectedRegister name="timingDividerAdc">
         <targetDevice><par>target</par></targetDevice>
diff --git a/llrfctrl6/templates/llrfctrl_controller.xlmap b/llrfctrl6/templates/llrfctrl_controller.xlmap
index e76a24f43223d2aa59fd00224336976c46913b0c..234f00127a7d5d2aa50ec1345e4017b1b18772b2 100644
--- a/llrfctrl6/templates/llrfctrl_controller.xlmap
+++ b/llrfctrl6/templates/llrfctrl_controller.xlmap
@@ -8,6 +8,9 @@ hasMcavVm = ( INSTANCE_TYPE == InstanceType.mulcavStandAlone or INSTANCE_TYPE ==
 # Boolean whether this is single-cavity firmware.
 isSincav = ( INSTANCE_TYPE == InstanceType.sincav )
 
+# Boolean whether this is scav self-excited-loop (SEL) firmware
+isSincavSel = (FIRMWARE_PROJECT_CONTROLLER == 'llrf_scav_sel_sis8300ku')
+
 # Number of regions for beam based feedback registers
 if FW_VER_CTRL >= version.parse("1.2.0") :
   nBbfRegions = 32
@@ -23,6 +26,17 @@ if FW_VER_CTRL >= version.parse("1.4.0") :
     daqbufModule="app_daq"
   daqbufName="DAQ_CTRL"
 
+if isSincavSel :
+  daqbufModule="DAQ_MEM"
+  daqbufName="DAQ_CTRL"
+
+
+wordPrefix="WORD_"
+if isSincavSel:
+  wordPrefix=""
+wordPrefixPredistorter="WORD_"
+
+
 %>\
 <logicalNameMap>
 
@@ -47,6 +61,7 @@ if FW_VER_CTRL >= version.parse("1.4.0") :
         - Error
         - FeedForward
         - FeedBack
+        - Self excited loop (SEL, only sincav-sel)
         - Output
         - LuenbergerObserver (only sincav)
         - Anomaly Detection (only mcav)
@@ -79,22 +94,22 @@ if FW_VER_CTRL >= version.parse("1.4.0") :
       % if FW_VER_CTRL >= version.parse("1.4.0") :
         <plugin name="doubleBuffer">
           <parameter name="secondBuffer">${daqbufModule}.${daqbufName}_BUF1</parameter>
-          <parameter name="enableDoubleBuffering">DAQ.WORD_DUB_BUF_ENA</parameter>
-          <parameter name="currentBufferNumber">DAQ.WORD_DUB_BUF_CURR</parameter>
+          <parameter name="enableDoubleBuffering">DAQ.${wordPrefix}DUB_BUF_ENA</parameter>
+          <parameter name="currentBufferNumber">DAQ.${wordPrefix}DUB_BUF_CURR</parameter>
           <parameter name="daqNumber">0</parameter>
         </plugin>
       % endif
     </redirectedRegister>
 
-    % if not isSincav and FW_VER_CTRL >= version.parse("1.7.0") :
+    % if not isSincav and FW_VER_CTRL >= version.parse("1.8.0") :
       <redirectedRegister name="AnoDetDaq">
         <targetDevice>CtrlBoard</targetDevice>
         <targetRegister>${daqbufModule}.DAQ_ANODET_BUF0</targetRegister>
         <numberOfElements>${pulseLength}</numberOfElements>
         <plugin name="doubleBuffer">
-          <parameter name="secondBuffer">${daqbufModule}.DAQ_ANODET_BUF1</parameter>
-          <parameter name="enableDoubleBuffering">DAQ.WORD_DUB_BUF_ENA</parameter>
-          <parameter name="currentBufferNumber">DAQ.WORD_DUB_BUF_CURR</parameter>
+          <parameter name="secondBuffer">${daqbufModule}.DAQ_ANODET_BUF0</parameter>
+          <parameter name="enableDoubleBuffering">DAQ.${wordPrefix}DUB_BUF_ENA</parameter>
+          <parameter name="currentBufferNumber">DAQ.${wordPrefix}DUB_BUF_CURR</parameter>
           <parameter name="daqNumber">2</parameter>
         </plugin>
       </redirectedRegister>
@@ -149,18 +164,20 @@ if FW_VER_CTRL >= version.parse("1.4.0") :
 
       <redirectedRegister name="timingDividerTables">
         <targetDevice>CtrlBoard</targetDevice>
-        <targetRegister>TIMING.WORD_DIVIDER_VALUE</targetRegister>
-        % if not isSincav :
+        <targetRegister>TIMING.${wordPrefix}DIVIDER_VALUE</targetRegister>
+        % if not isSincav and not isSincavSel :
           <targetStartIndex>5</targetStartIndex>
-        % else :
+        % elif not isSincavSel :
           <targetStartIndex>6</targetStartIndex>
+        % else :
+          <targetStartIndex>2</targetStartIndex>
         % endif
         <numberOfElements>1</numberOfElements>
       </redirectedRegister>
 
       <redirectedRegister name="timingDividerController">
         <targetDevice>CtrlBoard</targetDevice>
-        <targetRegister>DAQ.WORD_STROBE_DIV</targetRegister>
+        <targetRegister>DAQ.${wordPrefix}STROBE_DIV</targetRegister>
         <targetStartIndex>0</targetStartIndex>
         <numberOfElements>1</numberOfElements>
       </redirectedRegister>
@@ -250,16 +267,18 @@ if FW_VER_CTRL >= version.parse("1.4.0") :
       -->
       <module name="VectorSum">
 
-        <module name="Calibration">
-          <redirectedRegister name="sineTable">
-            <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>CTRL.WORD_VS_ROT_IM</targetRegister>
-          </redirectedRegister>
-          <redirectedRegister name="cosineTable">
-            <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>CTRL.WORD_VS_ROT_RE</targetRegister>
-          </redirectedRegister>
-        </module>
+        % if not isSincavSel:
+          <module name="Calibration">
+            <redirectedRegister name="sineTable">
+              <targetDevice>CtrlBoard</targetDevice>
+              <targetRegister>CTRL.${wordPrefix}VS_ROT_IM</targetRegister>
+            </redirectedRegister>
+            <redirectedRegister name="cosineTable">
+              <targetDevice>CtrlBoard</targetDevice>
+              <targetRegister>CTRL.${wordPrefix}VS_ROT_RE</targetRegister>
+            </redirectedRegister>
+          </module>
+        % endif
 
         <module name="DAQ">
           <redirectedChannel name="Q">
@@ -326,10 +345,12 @@ if FW_VER_CTRL >= version.parse("1.4.0") :
         ################################################################################################################
       -->
       <module name="FeedForward">
-        <redirectedRegister name="enable_actual">
-          <targetDevice>CtrlBoard</targetDevice>
-          <targetRegister>CTRL.BIT_FF_ENA</targetRegister>
-        </redirectedRegister>
+        % if not isSincavSel :
+          <redirectedRegister name="enable_actual">
+            <targetDevice>CtrlBoard</targetDevice>
+            <targetRegister>CTRL.BIT_FF_ENA</targetRegister>
+          </redirectedRegister>
+        % endif
 
         <module name="TableTotal">
           <redirectedRegister name="Q">
@@ -447,10 +468,12 @@ if FW_VER_CTRL >= version.parse("1.4.0") :
       -->
       <module name="FeedBack">
 
-        <redirectedRegister name="enable_actual">
-          <targetDevice>CtrlBoard</targetDevice>
-          <targetRegister>CTRL.BIT_FB_ENA</targetRegister>
-        </redirectedRegister>
+        % if not isSincavSel :
+          <redirectedRegister name="enable_actual">
+            <targetDevice>CtrlBoard</targetDevice>
+            <targetRegister>CTRL.BIT_FB_ENA</targetRegister>
+          </redirectedRegister>
+        % endif
 
         % if not isSincav :
 
@@ -458,25 +481,25 @@ if FW_VER_CTRL >= version.parse("1.4.0") :
 
             <redirectedBit name="outputAmplitudeLimit">
               <targetDevice>CtrlBoard</targetDevice>
-              <targetRegister>APP.WORD_CTRL_SAT_FB_OFF_EN</targetRegister>
+              <targetRegister>APP.${wordPrefix}CTRL_SAT_FB_OFF_EN</targetRegister>
               <targetBit>0</targetBit>
             </redirectedBit>
 
             <redirectedBit name="ovcSaturation">
               <targetDevice>CtrlBoard</targetDevice>
-              <targetRegister>APP.WORD_CTRL_SAT_FB_OFF_EN</targetRegister>
+              <targetRegister>APP.${wordPrefix}CTRL_SAT_FB_OFF_EN</targetRegister>
               <targetBit>1</targetBit>
             </redirectedBit>
 
             <redirectedBit name="ffFbSaturation">
               <targetDevice>CtrlBoard</targetDevice>
-              <targetRegister>APP.WORD_CTRL_SAT_FB_OFF_EN</targetRegister>
+              <targetRegister>APP.${wordPrefix}CTRL_SAT_FB_OFF_EN</targetRegister>
               <targetBit>2</targetBit>
             </redirectedBit>
 
             <redirectedBit name="ffFfcSaturation">
               <targetDevice>CtrlBoard</targetDevice>
-              <targetRegister>APP.WORD_CTRL_SAT_FB_OFF_EN</targetRegister>
+              <targetRegister>APP.${wordPrefix}CTRL_SAT_FB_OFF_EN</targetRegister>
               <targetBit>3</targetBit>
             </redirectedBit>
 
@@ -484,30 +507,34 @@ if FW_VER_CTRL >= version.parse("1.4.0") :
 
         % endif # not isSincav
 
-        <redirectedRegister name="mimoEnable">
-          <targetDevice>CtrlBoard</targetDevice>
-          <targetRegister>CTRL.WORD_MIMO_ENA</targetRegister>
-        </redirectedRegister>
+        % if not isSincavSel :
 
-        <redirectedRegister name="smithEnable">
-          <targetDevice>CtrlBoard</targetDevice>
-          <targetRegister>CTRL.WORD_SMITH_ENA</targetRegister>
-        </redirectedRegister>
+          <redirectedRegister name="mimoEnable">
+            <targetDevice>CtrlBoard</targetDevice>
+            <targetRegister>CTRL.${wordPrefix}MIMO_ENA</targetRegister>
+          </redirectedRegister>
 
-        <redirectedRegister name="smithDelay">
-          <targetDevice>CtrlBoard</targetDevice>
-          <targetRegister>CTRL.WORD_SMITH_DELAY</targetRegister>
-        </redirectedRegister>
+          <redirectedRegister name="smithEnable">
+            <targetDevice>CtrlBoard</targetDevice>
+            <targetRegister>CTRL.${wordPrefix}SMITH_ENA</targetRegister>
+          </redirectedRegister>
 
-        <redirectedRegister name="limitI">
-          <targetDevice>CtrlBoard</targetDevice>
-          <targetRegister>CTRL.WORD_CNTRL_I_LIMIT</targetRegister>
-        </redirectedRegister>
+          <redirectedRegister name="smithDelay">
+            <targetDevice>CtrlBoard</targetDevice>
+            <targetRegister>CTRL.${wordPrefix}SMITH_DELAY</targetRegister>
+          </redirectedRegister>
 
-        <redirectedRegister name="limitQ">
-          <targetDevice>CtrlBoard</targetDevice>
-          <targetRegister>CTRL.WORD_CNTRL_Q_LIMIT</targetRegister>
-        </redirectedRegister>
+          <redirectedRegister name="limitI">
+            <targetDevice>CtrlBoard</targetDevice>
+            <targetRegister>CTRL.${wordPrefix}CNTRL_I_LIMIT</targetRegister>
+          </redirectedRegister>
+
+          <redirectedRegister name="limitQ">
+            <targetDevice>CtrlBoard</targetDevice>
+            <targetRegister>CTRL.${wordPrefix}CNTRL_Q_LIMIT</targetRegister>
+          </redirectedRegister>
+
+        %endif
 
         <module name="Gain">
 
@@ -578,86 +605,185 @@ if FW_VER_CTRL >= version.parse("1.4.0") :
 
         </module> <!-- Gain -->
 
-        <module name="MimoCoefficients">
-          <redirectedRegister name="A11">
-            <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>CTRL.WORD_MIMO_A11</targetRegister>
-          </redirectedRegister>
-          <redirectedRegister name="B11">
-            <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>CTRL.WORD_MIMO_B11</targetRegister>
-          </redirectedRegister>
-          <redirectedRegister name="A12">
-            <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>CTRL.WORD_MIMO_A12</targetRegister>
-          </redirectedRegister>
-          <redirectedRegister name="B12">
-            <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>CTRL.WORD_MIMO_B12</targetRegister>
-          </redirectedRegister>
-          <redirectedRegister name="A21">
-            <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>CTRL.WORD_MIMO_A21</targetRegister>
-          </redirectedRegister>
-          <redirectedRegister name="B21">
-            <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>CTRL.WORD_MIMO_B21</targetRegister>
-          </redirectedRegister>
-          <redirectedRegister name="A22">
-            <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>CTRL.WORD_MIMO_A22</targetRegister>
-          </redirectedRegister>
-          <redirectedRegister name="B22">
-            <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>CTRL.WORD_MIMO_B22</targetRegister>
-          </redirectedRegister>
-          <redirectedRegister name="valid">
-            <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>CTRL.WORD_MIMO_COEF_VALID</targetRegister>
-          </redirectedRegister>
-        </module> <!-- MimoCoefficients -->
+        % if not isSincavSel :
 
-        <module name="SmithCoefficients">
-          <redirectedRegister name="A11">
-            <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>CTRL.WORD_SMITH_A11</targetRegister>
-          </redirectedRegister>
-          <redirectedRegister name="B11">
-            <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>CTRL.WORD_SMITH_B11</targetRegister>
-          </redirectedRegister>
-          <redirectedRegister name="A12">
-            <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>CTRL.WORD_SMITH_A12</targetRegister>
-          </redirectedRegister>
-          <redirectedRegister name="B12">
-            <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>CTRL.WORD_SMITH_B12</targetRegister>
-          </redirectedRegister>
-          <redirectedRegister name="A21">
-            <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>CTRL.WORD_SMITH_A21</targetRegister>
-          </redirectedRegister>
-          <redirectedRegister name="B21">
-            <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>CTRL.WORD_SMITH_B21</targetRegister>
-          </redirectedRegister>
-          <redirectedRegister name="A22">
-            <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>CTRL.WORD_SMITH_A22</targetRegister>
-          </redirectedRegister>
-          <redirectedRegister name="B22">
-            <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>CTRL.WORD_SMITH_B22</targetRegister>
-          </redirectedRegister>
-          <redirectedRegister name="valid">
-            <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>CTRL.WORD_SMITH_COEF_VALID</targetRegister>
-          </redirectedRegister>
-        </module> <!-- SmithCoefficients -->
+          <module name="MimoCoefficients">
+            <redirectedRegister name="A11">
+              <targetDevice>CtrlBoard</targetDevice>
+              <targetRegister>CTRL.${wordPrefix}MIMO_A11</targetRegister>
+            </redirectedRegister>
+            <redirectedRegister name="B11">
+              <targetDevice>CtrlBoard</targetDevice>
+              <targetRegister>CTRL.${wordPrefix}MIMO_B11</targetRegister>
+            </redirectedRegister>
+            <redirectedRegister name="A12">
+              <targetDevice>CtrlBoard</targetDevice>
+              <targetRegister>CTRL.${wordPrefix}MIMO_A12</targetRegister>
+            </redirectedRegister>
+            <redirectedRegister name="B12">
+              <targetDevice>CtrlBoard</targetDevice>
+              <targetRegister>CTRL.${wordPrefix}MIMO_B12</targetRegister>
+            </redirectedRegister>
+            <redirectedRegister name="A21">
+              <targetDevice>CtrlBoard</targetDevice>
+              <targetRegister>CTRL.${wordPrefix}MIMO_A21</targetRegister>
+            </redirectedRegister>
+            <redirectedRegister name="B21">
+              <targetDevice>CtrlBoard</targetDevice>
+              <targetRegister>CTRL.${wordPrefix}MIMO_B21</targetRegister>
+            </redirectedRegister>
+            <redirectedRegister name="A22">
+              <targetDevice>CtrlBoard</targetDevice>
+              <targetRegister>CTRL.${wordPrefix}MIMO_A22</targetRegister>
+            </redirectedRegister>
+            <redirectedRegister name="B22">
+              <targetDevice>CtrlBoard</targetDevice>
+              <targetRegister>CTRL.${wordPrefix}MIMO_B22</targetRegister>
+            </redirectedRegister>
+            <redirectedRegister name="valid">
+              <targetDevice>CtrlBoard</targetDevice>
+              <targetRegister>CTRL.${wordPrefix}MIMO_COEF_VALID</targetRegister>
+            </redirectedRegister>
+          </module> <!-- MimoCoefficients -->
+
+          <module name="SmithCoefficients">
+            <redirectedRegister name="A11">
+              <targetDevice>CtrlBoard</targetDevice>
+              <targetRegister>CTRL.${wordPrefix}SMITH_A11</targetRegister>
+            </redirectedRegister>
+            <redirectedRegister name="B11">
+              <targetDevice>CtrlBoard</targetDevice>
+              <targetRegister>CTRL.${wordPrefix}SMITH_B11</targetRegister>
+            </redirectedRegister>
+            <redirectedRegister name="A12">
+              <targetDevice>CtrlBoard</targetDevice>
+              <targetRegister>CTRL.${wordPrefix}SMITH_A12</targetRegister>
+            </redirectedRegister>
+            <redirectedRegister name="B12">
+              <targetDevice>CtrlBoard</targetDevice>
+              <targetRegister>CTRL.${wordPrefix}SMITH_B12</targetRegister>
+            </redirectedRegister>
+            <redirectedRegister name="A21">
+              <targetDevice>CtrlBoard</targetDevice>
+              <targetRegister>CTRL.${wordPrefix}SMITH_A21</targetRegister>
+            </redirectedRegister>
+            <redirectedRegister name="B21">
+              <targetDevice>CtrlBoard</targetDevice>
+              <targetRegister>CTRL.${wordPrefix}SMITH_B21</targetRegister>
+            </redirectedRegister>
+            <redirectedRegister name="A22">
+              <targetDevice>CtrlBoard</targetDevice>
+              <targetRegister>CTRL.${wordPrefix}SMITH_A22</targetRegister>
+            </redirectedRegister>
+            <redirectedRegister name="B22">
+              <targetDevice>CtrlBoard</targetDevice>
+              <targetRegister>CTRL.${wordPrefix}SMITH_B22</targetRegister>
+            </redirectedRegister>
+            <redirectedRegister name="valid">
+              <targetDevice>CtrlBoard</targetDevice>
+              <targetRegister>CTRL.${wordPrefix}SMITH_COEF_VALID</targetRegister>
+            </redirectedRegister>
+          </module> <!-- SmithCoefficients -->
+
+        % endif
 
       </module> <!-- FeedBack -->
 
+      <!--
+        ################################################################################################################
+      -->
+      % if isSincavSel :
+        <module name="FeedBackSincavSel">
+
+          <module name="SEL">
+
+            <redirectedRegister name="ENA">
+              <targetDevice>CtrlBoard</targetDevice>
+              <targetRegister>CTRL.PHA_FB_ENA</targetRegister>
+            </redirectedRegister>
+
+            <redirectedRegister name="PHASE_OFFSET">
+              <targetDevice>CtrlBoard</targetDevice>
+              <targetRegister>CTRL.PHA_FB_OFFSET</targetRegister>
+              <plugin name="math">
+                <parameter name="formula">x*(2^18)/360</parameter>
+              </plugin>
+            </redirectedRegister>
+
+          </module> <!-- SEL -->
+
+          <module name="GDR">
+
+            <module name="AMP">
+
+              <redirectedRegister name="FF_ENA">
+                <targetDevice>CtrlBoard</targetDevice>
+                <targetRegister>CTRL.AMP_FF_ENA</targetRegister>
+              </redirectedRegister>
+
+              <redirectedRegister name="SET_POINT">
+                <targetDevice>CtrlBoard</targetDevice>
+                <targetRegister>CTRL.AMP_SET_POINT</targetRegister>
+                <plugin name="math">
+                  <parameter name="formula">x*bitScaling</parameter>
+                  <parameter name="bitScaling">/ToControlSystem/Configuration/bitScaling</parameter>
+                  <parameter name="enable_push_parameters"/>
+                </plugin>
+              </redirectedRegister>
+
+              <redirectedRegister name="PID_ENA">
+                <targetDevice>CtrlBoard</targetDevice>
+                <targetRegister>CTRL.AMP_PID_ENA</targetRegister>
+              </redirectedRegister>
+              <redirectedRegister name="PID_RST">
+                <targetDevice>CtrlBoard</targetDevice>
+                <targetRegister>CTRL.AMP_PID_RST</targetRegister>
+              </redirectedRegister>
+              <redirectedRegister name="PID_KP">
+                <targetDevice>CtrlBoard</targetDevice>
+                <targetRegister>CTRL.AMP_PID_KP</targetRegister>
+              </redirectedRegister>
+              <redirectedRegister name="PID_KI">
+                <targetDevice>CtrlBoard</targetDevice>
+                <targetRegister>CTRL.AMP_PID_KI</targetRegister>
+              </redirectedRegister>
+
+            </module> <!-- AMP -->
+
+            <module name="PHA">
+
+              <redirectedRegister name="SET_POINT">
+                <targetDevice>CtrlBoard</targetDevice>
+                <targetRegister>CTRL.PHA_SET_POINT</targetRegister>
+                <plugin name="math">
+                  <parameter name="formula">x*(2^18)/360</parameter>
+                </plugin>
+              </redirectedRegister>
+
+              <redirectedRegister name="PID_ENA">
+                <targetDevice>CtrlBoard</targetDevice>
+                <targetRegister>CTRL.PHA_PID_ENA</targetRegister>
+              </redirectedRegister>
+              <redirectedRegister name="PID_RST">
+                <targetDevice>CtrlBoard</targetDevice>
+                <targetRegister>CTRL.PHA_PID_RST</targetRegister>
+              </redirectedRegister>
+              <redirectedRegister name="PID_KP">
+                <targetDevice>CtrlBoard</targetDevice>
+                <targetRegister>CTRL.PHA_PID_KP</targetRegister>
+              </redirectedRegister>
+              <redirectedRegister name="PID_KI">
+                <targetDevice>CtrlBoard</targetDevice>
+                <targetRegister>CTRL.PHA_PID_KI</targetRegister>
+              </redirectedRegister>
+
+            </module> <!-- PHA -->
+
+          </module> <!-- GDR -->
+
+        </module> <!-- FeedBackSincavSel -->
+      % endif
+
       <!--
         ################################################################################################################
       -->
@@ -666,11 +792,11 @@ if FW_VER_CTRL >= version.parse("1.4.0") :
         <module name="Calibration">
           <redirectedRegister name="sineTable">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>OVC.WORD_ROT_IM</targetRegister>
+            <targetRegister>OVC.${wordPrefix}ROT_IM</targetRegister>
           </redirectedRegister>
           <redirectedRegister name="cosineTable">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>OVC.WORD_ROT_RE</targetRegister>
+            <targetRegister>OVC.${wordPrefix}ROT_RE</targetRegister>
           </redirectedRegister>
         </module> <!-- (Output) Calibration -->
 
@@ -689,7 +815,7 @@ if FW_VER_CTRL >= version.parse("1.4.0") :
 
             <redirectedRegister name="enable">
               <targetDevice>CtrlBoard</targetDevice>
-              <targetRegister>OVC.WORD_DYN_ROT_EN</targetRegister>
+              <targetRegister>OVC.${wordPrefix}DYN_ROT_EN</targetRegister>
             </redirectedRegister>
 
             <redirectedBit name="bufferSelectI">
@@ -750,14 +876,15 @@ if FW_VER_CTRL >= version.parse("1.4.0") :
 
         <module name="Total">
 
-          <redirectedRegister name="limiterEnable">
+          <redirectedBit name="limiterEnable">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>OUTPUT.WORD_AMP_LIMIT_ENA</targetRegister>
-          </redirectedRegister>
+            <targetRegister>OUTPUT.${wordPrefix}AMP_LIMIT_ENA</targetRegister>
+            <targetBit>0</targetBit>
+          </redirectedBit>
 
           <redirectedRegister name="limiter">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>OUTPUT.WORD_AMP_LIMIT</targetRegister>
+            <targetRegister>OUTPUT.${wordPrefix}AMP_LIMIT</targetRegister>
             <plugin name="math">
               <parameter name="formula">x*bitScaling</parameter>
               <parameter name="bitScaling">/ToControlSystem/Configuration/bitScaling</parameter>
@@ -835,64 +962,54 @@ if FW_VER_CTRL >= version.parse("1.4.0") :
       <!--
         ################################################################################################################
       -->
-      % if not isSincav :
+      % if not isSincav and FW_VER_CTRL >= version.parse("1.8.0") :
         <module name="AnomalyDetection">
 
           % for m in range(0,2) :
             <module name="CryoModule${m}">
+              % for c in range(0,8) :
+                <module name="Cavity${c}">
 
-              <redirectedRegister name="T_GLR_BW12">
-                <targetDevice>CtrlBoard</targetDevice>
-                <targetRegister>ANOMALY_CM_${m}.T_GLR_BW12</targetRegister>
-              </redirectedRegister>
-              <redirectedRegister name="GLR_BI">
-                <targetDevice>CtrlBoard</targetDevice>
-                <targetRegister>ANOMALY_CM_${m}.GLR_BI</targetRegister>
-              </redirectedRegister>
-              <redirectedRegister name="GLR_BQ">
-                <targetDevice>CtrlBoard</targetDevice>
-                <targetRegister>ANOMALY_CM_${m}.GLR_BQ</targetRegister>
-              </redirectedRegister>
-              <redirectedRegister name="GLR_K">
-                <targetDevice>CtrlBoard</targetDevice>
-                <targetRegister>ANOMALY_CM_${m}.GLR_K</targetRegister>
-              </redirectedRegister>
-              <redirectedRegister name="GLR_SCALE">
-                <targetDevice>CtrlBoard</targetDevice>
-                <targetRegister>ANOMALY_CM_${m}.GLR_SCALE</targetRegister>
-              </redirectedRegister>
-              <redirectedRegister name="GLR_NOM">
-                <targetDevice>CtrlBoard</targetDevice>
-                <targetRegister>ANOMALY_CM_${m}.GLR_NOM</targetRegister>
-              </redirectedRegister>
-              <redirectedRegister name="GRL_THRESHOLD">
-                <targetDevice>CtrlBoard</targetDevice>
-                <targetRegister>ANOMALY_CM_${m}.GRL_THRESHOLD</targetRegister>
-              </redirectedRegister>
+                  <redirectedRegister name="COEF_X">
+                    <targetDevice>CtrlBoard</targetDevice>
+                    <targetRegister>APP.WORD_ANOMALY_COEF_X</targetRegister>
+                    <targetStartIndex>${8*m + c}</targetStartIndex>
+                    <numberOfElements>1</numberOfElements>
+                  </redirectedRegister>
+
+                  <redirectedRegister name="COEF_Y">
+                    <targetDevice>CtrlBoard</targetDevice>
+                    <targetRegister>APP.WORD_ANOMALY_COEF_Y</targetRegister>
+                    <targetStartIndex>${8*m + c}</targetStartIndex>
+                    <numberOfElements>1</numberOfElements>
+                  </redirectedRegister>
+
+                  <redirectedRegister name="WINDOW">
+                    <targetDevice>CtrlBoard</targetDevice>
+                    <targetRegister>APP.WORD_ANOMALY_WINDOW</targetRegister>
+                    <targetStartIndex>${8*m + c}</targetStartIndex>
+                    <numberOfElements>1</numberOfElements>
+                  </redirectedRegister>
+
+                  <redirectedRegister name="THRESHOLD">
+                    <targetDevice>CtrlBoard</targetDevice>
+                    <targetRegister>APP.WORD_ANOMALY_THRESHOLD</targetRegister>
+                    <targetStartIndex>${8*m + c}</targetStartIndex>
+                    <numberOfElements>1</numberOfElements>
+                  </redirectedRegister>
 
-              <module name="DAQ">
-                % for c in range(0,8) :
-                  <module name="Cavity${c}">
+                  <module name="DAQ">
                     <redirectedChannel name="GLR">
                       <targetDevice>this</targetDevice>
                       <targetRegister>/InternalHelpers/AnoDetDaq</targetRegister>
-                      <targetChannel>${16*m + 2*c+0}</targetChannel>
-                      <targetStartIndex>0</targetStartIndex>
-                      <numberOfElements>${pulseLength}</numberOfElements>
-                      <plugin name="typeHintModifier"><parameter name="type">float32</parameter></plugin>
-                    </redirectedChannel>
-                    <redirectedChannel name="Residual">
-                      <targetDevice>this</targetDevice>
-                      <targetRegister>/InternalHelpers/AnoDetDaq</targetRegister>
-                      <targetChannel>${16*m + 2*c+1}</targetChannel>
+                      <targetChannel>${8*m + c}</targetChannel>
                       <targetStartIndex>0</targetStartIndex>
                       <numberOfElements>${pulseLength}</numberOfElements>
                       <plugin name="typeHintModifier"><parameter name="type">float32</parameter></plugin>
                     </redirectedChannel>
-                  </module>
-                % endfor <!-- c -->
-
-              </module> <!-- DAQ -->
+                  </module> <!-- DAQ -->
+                </module> <!-- Cavity<n> -->
+              % endfor <!-- c -->
             </module> <!-- CryoModule${m} -->
           % endfor <!-- m -->
 
@@ -908,9 +1025,9 @@ if FW_VER_CTRL >= version.parse("1.4.0") :
           <redirectedRegister name="attenuation">
             % if hasMcavVm :
               <targetDevice>VmBoard</targetDevice>
-              <targetRegister>BSP.WORD_ATT_VAL</targetRegister>
+              <targetRegister>BSP.${wordPrefix}ATT_VAL</targetRegister>
             % else :
-              <targetDevice>(subdevice?type=3regs&amp;dataDelay=1000&amp;device=CtrlBoard&amp;address=${ADCBOARD[0]["RTM_TYPE"]}.WORD_ATT_SEL&amp;data=${ADCBOARD[0]["RTM_TYPE"]}.WORD_ATT_VAL&amp;status=${ADCBOARD[0]["RTM_TYPE"]}.WORD_ATT_STATUS&amp;map=attenuators.map)</targetDevice>
+              <targetDevice>(subdevice?type=3regs&amp;dataDelay=1000&amp;device=CtrlBoard&amp;address=${ADCBOARD[0]["RTM_TYPE"]}.${wordPrefix}ATT_SEL&amp;data=${ADCBOARD[0]["RTM_TYPE"]}.${wordPrefix}ATT_VAL&amp;status=${ADCBOARD[0]["RTM_TYPE"]}.${wordPrefix}ATT_STATUS&amp;map=attenuators.map)</targetDevice>
               <targetRegister>CHANNEL8</targetRegister>
             % endif
             <plugin name="math"><parameter name="formula">63 - 4*x</parameter></plugin>
@@ -920,13 +1037,13 @@ if FW_VER_CTRL >= version.parse("1.4.0") :
           <module name="DacOffset">
             <redirectedRegister name="I">
               <targetDevice>CtrlBoard</targetDevice>
-              <targetRegister>OUTPUT.WORD_DAC_OFFSET</targetRegister>
+              <targetRegister>OUTPUT.${wordPrefix}DAC_OFFSET</targetRegister>
               <targetStartIndex>0</targetStartIndex>
               <numberOfElements>1</numberOfElements>
             </redirectedRegister>
             <redirectedRegister name="Q">
               <targetDevice>CtrlBoard</targetDevice>
-              <targetRegister>OUTPUT.WORD_DAC_OFFSET</targetRegister>
+              <targetRegister>OUTPUT.${wordPrefix}DAC_OFFSET</targetRegister>
               <targetStartIndex>1</targetStartIndex>
               <numberOfElements>1</numberOfElements>
             </redirectedRegister>
@@ -934,20 +1051,20 @@ if FW_VER_CTRL >= version.parse("1.4.0") :
 
           <redirectedRegister name="gainCorrection">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>OVC.WORD_GAIN_CORR</targetRegister>
+            <targetRegister>OVC.${wordPrefix}GAIN_CORR</targetRegister>
           </redirectedRegister>
 
-          % if isSincav and ( ADCBOARD[0]['RTM_TYPE'] == 'DWC8VM1' or ADCBOARD[0]['RTM_TYPE'] == 'DS8VM1' ) :
+          % if isSincav and ( ADCBOARD[0]['RTM_TYPE'] == 'DWC8VM1' or ADCBOARD[0]['RTM_TYPE'] == 'DS8VM1' or ADCBOARD[0]['RTM_TYPE'] == 'RTM' ) :
             <module name="DacExtraBias">
               % for name, index, AorB in ( ('I',0,'A'), ('Q',1,'B') ) :
                 <redirectedRegister name="${name}">
                   <targetDevice>CtrlBoard</targetDevice>
-                  % if ADCBOARD[0]['RTM_TYPE'] == 'DWC8VM1' :
-                    <targetRegister>DWC8VM1.WORD_DAC</targetRegister>
+                  % if ADCBOARD[0]['RTM_TYPE'] == 'DWC8VM1' or ADCBOARD[0]['RTM_TYPE'] == 'RTM' :
+                    <targetRegister>${ADCBOARD[0]['RTM_TYPE']}.${wordPrefix}DAC</targetRegister>
                     <targetStartIndex>${index}</targetStartIndex>
                     <numberOfElements>1</numberOfElements>
                   % else :
-                    <targetRegister>DWC8VM1.WORD_DAC_${AorB}</targetRegister>
+                    <targetRegister>${ADCBOARD[0]['RTM_TYPE']}.${wordPrefix}DAC_${AorB}</targetRegister>
                   % endif
                   <plugin name="math">
                     <parameter name="formula">x + base</parameter>
@@ -962,18 +1079,18 @@ if FW_VER_CTRL >= version.parse("1.4.0") :
 
           <redirectedRegister name="qSign">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>OUTPUT.WORD_Q_SIGN</targetRegister>
+            <targetRegister>OUTPUT.${wordPrefix}Q_SIGN</targetRegister>
           </redirectedRegister>
 
           % if hasMcavVm :
             <redirectedRegister name="delay">
               <targetDevice>VmBoard</targetDevice>
-              <targetRegister>BSP.WORD_DAC_DELAY</targetRegister>
+              <targetRegister>BSP.${wordPrefix}DAC_DELAY</targetRegister>
             </redirectedRegister>
 
             <redirectedBit name="enableUpsampling">
               <targetDevice>VmBoard</targetDevice>
-              <targetRegister>BSP.WORD_APP_CTRL</targetRegister>
+              <targetRegister>BSP.${wordPrefix}APP_CTRL</targetRegister>
               <targetBit>0</targetBit>
             </redirectedBit>
           % endif
@@ -984,19 +1101,19 @@ if FW_VER_CTRL >= version.parse("1.4.0") :
               <targetRegister>PREDISTORTER.BIT_PREDISTORTER_ENA</targetRegister>
             </redirectedRegister>
             <redirectedRegister name="TABLE_BASE_I">
-              <targetDevice>(subdevice?type=2regs&amp;device=CtrlBoard&amp;address=PREDISTORTER.WORD_PREDISTORTER_MEM_SEL&amp;data=PREDISTORTER.AREA_PREDISTORTER_MEM&amp;sleep=10000&amp;map=predistorterTables.map)</targetDevice>
+              <targetDevice>(subdevice?type=2regs&amp;device=CtrlBoard&amp;address=PREDISTORTER.${wordPrefixPredistorter}PREDISTORTER_MEM_SEL&amp;data=PREDISTORTER.AREA_PREDISTORTER_MEM&amp;sleep=10000&amp;map=predistorterTables.map)</targetDevice>
               <targetRegister>TABLE_BASE_I</targetRegister>
             </redirectedRegister>
             <redirectedRegister name="TABLE_BASE_Q">
-              <targetDevice>(subdevice?type=2regs&amp;device=CtrlBoard&amp;address=PREDISTORTER.WORD_PREDISTORTER_MEM_SEL&amp;data=PREDISTORTER.AREA_PREDISTORTER_MEM&amp;sleep=10000&amp;map=predistorterTables.map)</targetDevice>
+              <targetDevice>(subdevice?type=2regs&amp;device=CtrlBoard&amp;address=PREDISTORTER.${wordPrefixPredistorter}PREDISTORTER_MEM_SEL&amp;data=PREDISTORTER.AREA_PREDISTORTER_MEM&amp;sleep=10000&amp;map=predistorterTables.map)</targetDevice>
               <targetRegister>TABLE_BASE_Q</targetRegister>
             </redirectedRegister>
             <redirectedRegister name="TABLE_DERIVATIVE_I">
-              <targetDevice>(subdevice?type=2regs&amp;device=CtrlBoard&amp;address=PREDISTORTER.WORD_PREDISTORTER_MEM_SEL&amp;data=PREDISTORTER.AREA_PREDISTORTER_MEM&amp;sleep=10000&amp;map=predistorterTables.map)</targetDevice>
+              <targetDevice>(subdevice?type=2regs&amp;device=CtrlBoard&amp;address=PREDISTORTER.${wordPrefixPredistorter}PREDISTORTER_MEM_SEL&amp;data=PREDISTORTER.AREA_PREDISTORTER_MEM&amp;sleep=10000&amp;map=predistorterTables.map)</targetDevice>
               <targetRegister>TABLE_DERIVATIVE_I</targetRegister>
             </redirectedRegister>
             <redirectedRegister name="TABLE_DERIVATIVE_Q">
-              <targetDevice>(subdevice?type=2regs&amp;device=CtrlBoard&amp;address=PREDISTORTER.WORD_PREDISTORTER_MEM_SEL&amp;data=PREDISTORTER.AREA_PREDISTORTER_MEM&amp;sleep=10000&amp;map=predistorterTables.map)</targetDevice>
+              <targetDevice>(subdevice?type=2regs&amp;device=CtrlBoard&amp;address=PREDISTORTER.${wordPrefixPredistorter}PREDISTORTER_MEM_SEL&amp;data=PREDISTORTER.AREA_PREDISTORTER_MEM&amp;sleep=10000&amp;map=predistorterTables.map)</targetDevice>
               <targetRegister>TABLE_DERIVATIVE_Q</targetRegister>
             </redirectedRegister>
           </module>
@@ -1033,279 +1150,460 @@ if FW_VER_CTRL >= version.parse("1.4.0") :
 
       <module name="Status">
 
-        <!-- Pulse length / cuts reporting -->
-        <module name="ActualPulseLength">
-          <redirectedRegister name="samples">
-            <targetDevice>CtrlBoard</targetDevice>
-            % if not isSincav :
-              <targetRegister>APP.WORD_PULSE_LENGTH</targetRegister>
-            % else :
-              <targetRegister>APP.WORD_RF_OFF_TIME</targetRegister>
-            % endif
-          </redirectedRegister>
+        % if not isSincavSel :
 
-          <redirectedRegister name="time">
-            <targetDevice>CtrlBoard</targetDevice>
-            % if not isSincav :
-              <targetRegister>APP.WORD_PULSE_LENGTH</targetRegister>
-            % else :
-              <targetRegister>APP.WORD_RF_OFF_TIME</targetRegister>
-            % endif
-            <plugin name="math">
-              <parameter name="formula">x/fs</parameter>
-              <parameter name="fs">/ToControlSystem/Configuration/samplingFrequency</parameter>
-            </plugin>
-          </redirectedRegister>
-        </module>
+          <!-- Pulse length / cuts reporting -->
+          <module name="ActualPulseLength">
+            <redirectedRegister name="samples">
+              <targetDevice>CtrlBoard</targetDevice>
+              % if not isSincav :
+                <targetRegister>APP.${wordPrefix}PULSE_LENGTH</targetRegister>
+              % else :
+                <targetRegister>APP.${wordPrefix}RF_OFF_TIME</targetRegister>
+              % endif
+            </redirectedRegister>
+
+            <redirectedRegister name="time">
+              <targetDevice>CtrlBoard</targetDevice>
+              % if not isSincav :
+                <targetRegister>APP.${wordPrefix}PULSE_LENGTH</targetRegister>
+              % else :
+                <targetRegister>APP.${wordPrefix}RF_OFF_TIME</targetRegister>
+              % endif
+              <plugin name="math">
+                <parameter name="formula">x/fs</parameter>
+                <parameter name="fs">/ToControlSystem/Configuration/samplingFrequency</parameter>
+              </plugin>
+            </redirectedRegister>
+          </module>
+
+        % endif
 
         <!-- Controller status bit mask -->
         <redirectedRegister name="controllerStatus">
           <targetDevice>CtrlBoard</targetDevice>
-          <targetRegister>APP.WORD_STATUS</targetRegister>
+          <targetRegister>APP.${wordPrefix}STATUS</targetRegister>
         </redirectedRegister>
 
         <redirectedRegister name="controllerStatusForOVC">
           <targetDevice>CtrlBoard</targetDevice>
-          <targetRegister>APP.WORD_STATUS</targetRegister>
+          <targetRegister>APP.${wordPrefix}STATUS</targetRegister>
         </redirectedRegister>
 
         <redirectedRegister name="controllerStatusForLFF">
           <targetDevice>CtrlBoard</targetDevice>
-          <targetRegister>APP.WORD_STATUS</targetRegister>
+          <targetRegister>APP.${wordPrefix}STATUS</targetRegister>
         </redirectedRegister>
 
         <constant name="bitmaskForInhibitAlgos">
           <type>uint32</type>
-          % if not isSincav :
+          % if not isSincav and FW_VER_CTRL < version.parse("1.8.0") :
             <!-- 1+2+4 => ignore outputAmplitudeLimit, controllerLimitI, controllerLimitQ -->
             <value>7</value>
-          % else :
+          % elif isSincav and FW_VER_CTRL < version.parse("1.7.0") :
             <!-- 2+4+8+16 => ignore FD prelimiter, controller limit I, controller limit Q, output amplitude limit -->
             <value>30</value>
+          % elif not isSincav :
+            <!-- ignore bits: 1 (FB off), 4 (output amplitude limit), 10, 11 (FB limit I and Q)
+                 ==> 2+16+1024+2048 -->
+            <value>3090</value>
+          % else :
+            <!-- ignore bits: 4 (output amplitude limit), 10, 11 (FB limit I and Q), 13 (FD pre-limiter)
+                 ==> 16+1024+2048+8192 -->
+            <value>11280</value>
           % endif
         </constant>
 
         <!-- Individual status bits -->
-        <redirectedBit name="outputAmplitudeLimit">
-          <targetDevice>CtrlBoard</targetDevice>
-          <targetRegister>APP.WORD_STATUS</targetRegister>
-          <targetBit>${ 0 if not isSincav else 4 }</targetBit>
-        </redirectedBit>
-        <redirectedBit name="controllerLimitI">
-          <targetDevice>CtrlBoard</targetDevice>
-          <targetRegister>APP.WORD_STATUS</targetRegister>
-          <targetBit>${ 1 if not isSincav else 2 }</targetBit>
-        </redirectedBit>
-        <redirectedBit name="controllerLimitQ">
-          <targetDevice>CtrlBoard</targetDevice>
-          <targetRegister>APP.WORD_STATUS</targetRegister>
-          <targetBit>${ 2 if not isSincav else 3 }</targetBit>
-        </redirectedBit>
-        <redirectedBit name="feedForwardSaturationI">
-          <targetDevice>CtrlBoard</targetDevice>
-          <targetRegister>APP.WORD_STATUS</targetRegister>
-          <targetBit>${ 3 if not isSincav else 5 }</targetBit>
-        </redirectedBit>
-        <redirectedBit name="feedForwardSaturationQ">
-          <targetDevice>CtrlBoard</targetDevice>
-          <targetRegister>APP.WORD_STATUS</targetRegister>
-          <targetBit>${ 4 if not isSincav else 6 }</targetBit>
-        </redirectedBit>
-        <redirectedBit name="gainSaturationI">
-          <targetDevice>CtrlBoard</targetDevice>
-          <targetRegister>APP.WORD_STATUS</targetRegister>
-          <targetBit>${ 5 if not isSincav else 9 }</targetBit>
-        </redirectedBit>
-        <redirectedBit name="gainSaturationQ">
-          <targetDevice>CtrlBoard</targetDevice>
-          <targetRegister>APP.WORD_STATUS</targetRegister>
-          <targetBit>${ 6 if not isSincav else 10 }</targetBit>
-        </redirectedBit>
-        <redirectedBit name="offsetCompensationSaturationI">
-          <targetDevice>CtrlBoard</targetDevice>
-          <targetRegister>APP.WORD_STATUS</targetRegister>
-          <targetBit>7</targetBit>
-        </redirectedBit>
-        <redirectedBit name="offsetCompensationSaturationQ">
-          <targetDevice>CtrlBoard</targetDevice>
-          <targetRegister>APP.WORD_STATUS</targetRegister>
-          <targetBit>8</targetBit>
-        </redirectedBit>
 
-        % if not isSincav :
+        % if ( not isSincav and FW_VER_CTRL < version.parse("1.8.0") ) or ( isSincav and FW_VER_CTRL < version.parse("1.7.0") ) :
+          <!-- REMOVE THIS OLD VERSION BRANCH IN FAVOUR OF THE NEW VERSION BRANCH BELOW IN FUTURE!!! -->
 
-          <redirectedBit name="masterFeedbackLinkNotOK">
+          <redirectedBit name="outputAmplitudeLimit">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>APP.WORD_STATUS</targetRegister>
-            <targetBit>9</targetBit>
+            <targetRegister>APP.${wordPrefix}STATUS</targetRegister>
+            <targetBit>${ 0 if not isSincav else 4 }</targetBit>
           </redirectedBit>
-          <redirectedBit name="synchronisationNotOK">
+          <redirectedBit name="controllerLimitI">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>APP.WORD_STATUS</targetRegister>
-            <targetBit>10</targetBit>
+            <targetRegister>APP.${wordPrefix}STATUS</targetRegister>
+            <targetBit>${ 1 if not isSincav else 2 }</targetBit>
           </redirectedBit>
-          <redirectedBit name="limitersModule1Probe">
+          <redirectedBit name="controllerLimitQ">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>APP.WORD_STATUS</targetRegister>
-            <targetBit>11</targetBit>
+            <targetRegister>APP.${wordPrefix}STATUS</targetRegister>
+            <targetBit>${ 2 if not isSincav else 3 }</targetBit>
           </redirectedBit>
-          <redirectedBit name="limitersModule2Probe">
+          <redirectedBit name="feedForwardSaturationI">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>APP.WORD_STATUS</targetRegister>
-            <targetBit>12</targetBit>
-          </redirectedBit>
-          <redirectedBit name="limitersModule1Forward">
-            <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>APP.WORD_STATUS</targetRegister>
-            <targetBit>13</targetBit>
+            <targetRegister>APP.${wordPrefix}STATUS</targetRegister>
+            <targetBit>${ 3 if not isSincav else 5 }</targetBit>
           </redirectedBit>
-          <redirectedBit name="limitersModule2Forward">
+          <redirectedBit name="feedForwardSaturationQ">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>APP.WORD_STATUS</targetRegister>
-            <targetBit>14</targetBit>
+            <targetRegister>APP.${wordPrefix}STATUS</targetRegister>
+            <targetBit>${ 4 if not isSincav else 6 }</targetBit>
           </redirectedBit>
-          <redirectedBit name="triggerLimitersModule1Probe">
+          <redirectedBit name="gainSaturationI">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>APP.WORD_STATUS</targetRegister>
-            <targetBit>15</targetBit>
+            <targetRegister>APP.${wordPrefix}STATUS</targetRegister>
+            <targetBit>${ 5 if not isSincav else 9 }</targetBit>
           </redirectedBit>
-          <redirectedBit name="triggerLimitersModule2Probe">
+          <redirectedBit name="gainSaturationQ">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>APP.WORD_STATUS</targetRegister>
-            <targetBit>16</targetBit>
+            <targetRegister>APP.${wordPrefix}STATUS</targetRegister>
+            <targetBit>${ 6 if not isSincav else 10 }</targetBit>
           </redirectedBit>
-          <redirectedBit name="triggerLimitersModule1Forward">
+          <redirectedBit name="offsetCompensationSaturationI">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>APP.WORD_STATUS</targetRegister>
-            <targetBit>17</targetBit>
+            <targetRegister>APP.${wordPrefix}STATUS</targetRegister>
+            <targetBit>7</targetBit>
           </redirectedBit>
-          <redirectedBit name="triggerLimitersModule2Forward">
+          <redirectedBit name="offsetCompensationSaturationQ">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>APP.WORD_STATUS</targetRegister>
-            <targetBit>18</targetBit>
+            <targetRegister>APP.${wordPrefix}STATUS</targetRegister>
+            <targetBit>8</targetBit>
           </redirectedBit>
-          <redirectedBit name="slaveFeedbackLinkNotOK">
+
+          % if not isSincav :
+
+            <redirectedBit name="masterFeedbackLinkNotOK">
+              <targetDevice>CtrlBoard</targetDevice>
+              <targetRegister>APP.${wordPrefix}STATUS</targetRegister>
+              <targetBit>9</targetBit>
+            </redirectedBit>
+            <redirectedBit name="synchronisationNotOK">
+              <targetDevice>CtrlBoard</targetDevice>
+              <targetRegister>APP.${wordPrefix}STATUS</targetRegister>
+              <targetBit>10</targetBit>
+            </redirectedBit>
+            <redirectedBit name="limitersModule1Probe">
+              <targetDevice>CtrlBoard</targetDevice>
+              <targetRegister>APP.${wordPrefix}STATUS</targetRegister>
+              <targetBit>11</targetBit>
+            </redirectedBit>
+            <redirectedBit name="limitersModule2Probe">
+              <targetDevice>CtrlBoard</targetDevice>
+              <targetRegister>APP.${wordPrefix}STATUS</targetRegister>
+              <targetBit>12</targetBit>
+            </redirectedBit>
+            <redirectedBit name="limitersModule1Forward">
+              <targetDevice>CtrlBoard</targetDevice>
+              <targetRegister>APP.${wordPrefix}STATUS</targetRegister>
+              <targetBit>13</targetBit>
+            </redirectedBit>
+            <redirectedBit name="limitersModule2Forward">
+              <targetDevice>CtrlBoard</targetDevice>
+              <targetRegister>APP.${wordPrefix}STATUS</targetRegister>
+              <targetBit>14</targetBit>
+            </redirectedBit>
+            <redirectedBit name="triggerLimitersModule1Probe">
+              <targetDevice>CtrlBoard</targetDevice>
+              <targetRegister>APP.${wordPrefix}STATUS</targetRegister>
+              <targetBit>15</targetBit>
+            </redirectedBit>
+            <redirectedBit name="triggerLimitersModule2Probe">
+              <targetDevice>CtrlBoard</targetDevice>
+              <targetRegister>APP.${wordPrefix}STATUS</targetRegister>
+              <targetBit>16</targetBit>
+            </redirectedBit>
+            <redirectedBit name="triggerLimitersModule1Forward">
+              <targetDevice>CtrlBoard</targetDevice>
+              <targetRegister>APP.${wordPrefix}STATUS</targetRegister>
+              <targetBit>17</targetBit>
+            </redirectedBit>
+            <redirectedBit name="triggerLimitersModule2Forward">
+              <targetDevice>CtrlBoard</targetDevice>
+              <targetRegister>APP.${wordPrefix}STATUS</targetRegister>
+              <targetBit>18</targetBit>
+            </redirectedBit>
+            <redirectedBit name="slaveFeedbackLinkNotOK">
+              <targetDevice>CtrlBoard</targetDevice>
+              <targetRegister>APP.${wordPrefix}STATUS</targetRegister>
+              <targetBit>19</targetBit>
+            </redirectedBit>
+            <redirectedBit name="limitersModule3Probe">
+              <targetDevice>CtrlBoard</targetDevice>
+              <targetRegister>APP.${wordPrefix}STATUS</targetRegister>
+              <targetBit>20</targetBit>
+            </redirectedBit>
+            <redirectedBit name="limitersModule4Probe">
+              <targetDevice>CtrlBoard</targetDevice>
+              <targetRegister>APP.${wordPrefix}STATUS</targetRegister>
+              <targetBit>21</targetBit>
+            </redirectedBit>
+            <redirectedBit name="limitersModule3Forward">
+              <targetDevice>CtrlBoard</targetDevice>
+              <targetRegister>APP.${wordPrefix}STATUS</targetRegister>
+              <targetBit>22</targetBit>
+            </redirectedBit>
+            <redirectedBit name="limitersModule4Forward">
+              <targetDevice>CtrlBoard</targetDevice>
+              <targetRegister>APP.${wordPrefix}STATUS</targetRegister>
+              <targetBit>23</targetBit>
+            </redirectedBit>
+            <redirectedBit name="triggerLimitersModule3Probe">
+              <targetDevice>CtrlBoard</targetDevice>
+              <targetRegister>APP.${wordPrefix}STATUS</targetRegister>
+              <targetBit>24</targetBit>
+            </redirectedBit>
+            <redirectedBit name="triggerLimitersModule4Probe">
+              <targetDevice>CtrlBoard</targetDevice>
+              <targetRegister>APP.${wordPrefix}STATUS</targetRegister>
+              <targetBit>25</targetBit>
+            </redirectedBit>
+            <redirectedBit name="triggerLimitersModule3Forward">
+              <targetDevice>CtrlBoard</targetDevice>
+              <targetRegister>APP.${wordPrefix}STATUS</targetRegister>
+              <targetBit>26</targetBit>
+            </redirectedBit>
+            <redirectedBit name="triggerLimitersModule4Forward">
+              <targetDevice>CtrlBoard</targetDevice>
+              <targetRegister>APP.${wordPrefix}STATUS</targetRegister>
+              <targetBit>27</targetBit>
+            </redirectedBit>
+            <redirectedBit name="backplaneInterlockActive">
+              <targetDevice>CtrlBoard</targetDevice>
+              <targetRegister>APP.${wordPrefix}STATUS</targetRegister>
+              <targetBit>31</targetBit>
+            </redirectedBit>
+
+          % else : # isSincav ==>
+
+            <redirectedBit name="limiters">
+              <targetDevice>CtrlBoard</targetDevice>
+              <targetRegister>APP.${wordPrefix}STATUS</targetRegister>
+              <targetBit>0</targetBit>
+              <plugin name="forceReadOnly"/>
+            </redirectedBit>
+            <redirectedBit name="prelimiters">
+              <targetDevice>CtrlBoard</targetDevice>
+              <targetRegister>APP.${wordPrefix}STATUS</targetRegister>
+              <targetBit>1</targetBit>
+              <plugin name="forceReadOnly"/>
+            </redirectedBit>
+            <redirectedBit name="fastProtectionActive">
+              <targetDevice>CtrlBoard</targetDevice>
+              <targetRegister>APP.${wordPrefix}STATUS</targetRegister>
+              <targetBit>11</targetBit>
+              <plugin name="forceReadOnly"/>
+            </redirectedBit>
+            <redirectedBit name="interlockLatcher">
+              <targetDevice>CtrlBoard</targetDevice>
+              <targetRegister>APP.${wordPrefix}STATUS</targetRegister>
+              <targetBit>12</targetBit>
+              <plugin name="forceReadOnly"/>
+            </redirectedBit>
+
+            <redirectedRegister name="externalInterlock">
+              <targetDevice>CtrlBoard</targetDevice>
+              <targetRegister>${ADCBOARD[0]["RTM_TYPE"]}.${wordPrefix}EXT_INTERLOCK</targetRegister>
+            </redirectedRegister>
+
+          % endif
+
+
+          <!-- Summarised status bits -->
+          <redirectedRegister name="saturation">
+            <targetDevice>this</targetDevice>
+            <targetRegister>/ToControlSystem/Controller/Status/feedForwardSaturationI</targetRegister>
+            <plugin name="math">
+              <parameter name="formula">x | FFQ | OCI | OCQ | GCI | GCQ </parameter>
+              <parameter name="FFQ">/ToControlSystem/Controller/Status/feedForwardSaturationQ</parameter>
+              <parameter name="OCI">/ToControlSystem/Controller/Status/offsetCompensationSaturationI</parameter>
+              <parameter name="OCQ">/ToControlSystem/Controller/Status/offsetCompensationSaturationQ</parameter>
+              <parameter name="GCI">/ToControlSystem/Controller/Status/gainSaturationI</parameter>
+              <parameter name="GCQ">/ToControlSystem/Controller/Status/gainSaturationQ</parameter>
+            </plugin>
+            <plugin name="typeHintModifier"><parameter name="type">Boolean</parameter></plugin>
+          </redirectedRegister>
+
+
+        % else :   # <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< NEW FIRMWARE VERSIONS WITH UNIFIED INTERFACE
+
+          <redirectedBit name="rfOff">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>APP.WORD_STATUS</targetRegister>
-            <targetBit>19</targetBit>
+            <targetRegister>APP.${wordPrefix}STATUS</targetRegister>
+            <targetBit>0</targetBit>
           </redirectedBit>
-          <redirectedBit name="limitersModule3Probe">
+          <redirectedBit name="fbOff">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>APP.WORD_STATUS</targetRegister>
-            <targetBit>20</targetBit>
+            <targetRegister>APP.${wordPrefix}STATUS</targetRegister>
+            <targetBit>1</targetBit>
           </redirectedBit>
-          <redirectedBit name="limitersModule4Probe">
+
+          <redirectedBit name="offsetCompensationSaturationI">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>APP.WORD_STATUS</targetRegister>
-            <targetBit>21</targetBit>
+            <targetRegister>APP.${wordPrefix}STATUS</targetRegister>
+            <targetBit>2</targetBit>
           </redirectedBit>
-          <redirectedBit name="limitersModule3Forward">
+          <redirectedBit name="offsetCompensationSaturationQ">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>APP.WORD_STATUS</targetRegister>
-            <targetBit>22</targetBit>
+            <targetRegister>APP.${wordPrefix}STATUS</targetRegister>
+            <targetBit>3</targetBit>
           </redirectedBit>
-          <redirectedBit name="limitersModule4Forward">
+
+          <redirectedBit name="outputAmplitudeLimit">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>APP.WORD_STATUS</targetRegister>
-            <targetBit>23</targetBit>
+            <targetRegister>APP.${wordPrefix}STATUS</targetRegister>
+            <targetBit>4</targetBit>
           </redirectedBit>
-          <redirectedBit name="triggerLimitersModule3Probe">
+
+          <redirectedBit name="ovcSaturation">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>APP.WORD_STATUS</targetRegister>
-            <targetBit>24</targetBit>
+            <targetRegister>APP.${wordPrefix}STATUS</targetRegister>
+            <targetBit>5</targetBit>
           </redirectedBit>
-          <redirectedBit name="triggerLimitersModule4Probe">
+
+          <redirectedBit name="feedForwardSaturationI">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>APP.WORD_STATUS</targetRegister>
-            <targetBit>25</targetBit>
+            <targetRegister>APP.${wordPrefix}STATUS</targetRegister>
+            <targetBit>6</targetBit>
           </redirectedBit>
-          <redirectedBit name="triggerLimitersModule3Forward">
+          <redirectedBit name="feedForwardSaturationQ">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>APP.WORD_STATUS</targetRegister>
-            <targetBit>26</targetBit>
+            <targetRegister>APP.${wordPrefix}STATUS</targetRegister>
+            <targetBit>7</targetBit>
           </redirectedBit>
-          <redirectedBit name="triggerLimitersModule4Forward">
+
+          <redirectedBit name="feedForwardCorrectionSaturationI">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>APP.WORD_STATUS</targetRegister>
-            <targetBit>27</targetBit>
+            <targetRegister>APP.${wordPrefix}STATUS</targetRegister>
+            <targetBit>8</targetBit>
           </redirectedBit>
-          <redirectedBit name="backplaneInterlockActive">
+          <redirectedBit name="feedForwardCorrectionSaturationQ">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>APP.WORD_STATUS</targetRegister>
-            <targetBit>31</targetBit>
+            <targetRegister>APP.${wordPrefix}STATUS</targetRegister>
+            <targetBit>9</targetBit>
           </redirectedBit>
 
-        % else : # isSincav ==>
-
-          <redirectedBit name="limiters">
+          <redirectedBit name="controllerLimitI">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>APP.WORD_STATUS</targetRegister>
-            <targetBit>0</targetBit>
-            <plugin name="forceReadOnly"/>
-          </redirectedBit>
-          <redirectedBit name="prelimiters">
-            <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>APP.WORD_STATUS</targetRegister>
-            <targetBit>1</targetBit>
-            <plugin name="forceReadOnly"/>
+            <targetRegister>APP.${wordPrefix}STATUS</targetRegister>
+            <targetBit>10</targetBit>
           </redirectedBit>
-          <redirectedBit name="fastProtectionActive">
+          <redirectedBit name="controllerLimitQ">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>APP.WORD_STATUS</targetRegister>
+            <targetRegister>APP.${wordPrefix}STATUS</targetRegister>
             <targetBit>11</targetBit>
-            <plugin name="forceReadOnly"/>
           </redirectedBit>
-          <redirectedBit name="interlockLatcher">
+
+          <redirectedBit name="limitersProbe">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>APP.WORD_STATUS</targetRegister>
+            <targetRegister>APP.${wordPrefix}STATUS</targetRegister>
             <targetBit>12</targetBit>
-            <plugin name="forceReadOnly"/>
           </redirectedBit>
-
-          <redirectedRegister name="externalInterlock">
+          <redirectedBit name="triggerLimitersProbe">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>${ADCBOARD[0]["RTM_TYPE"]}.WORD_EXT_INTERLOCK</targetRegister>
+            <targetRegister>APP.${wordPrefix}STATUS</targetRegister>
+            <targetBit>13</targetBit>
+          </redirectedBit>
+
+          % if not isSincav :
+            <redirectedBit name="limitersProbeSubordinate">
+              <targetDevice>CtrlBoard</targetDevice>
+              <targetRegister>APP.${wordPrefix}STATUS</targetRegister>
+              <targetBit>14</targetBit>
+            </redirectedBit>
+            <redirectedBit name="triggerLimitersProbeSubordinate">
+              <targetDevice>CtrlBoard</targetDevice>
+              <targetRegister>APP.${wordPrefix}STATUS</targetRegister>
+              <targetBit>15</targetBit>
+            </redirectedBit>
+
+            <redirectedBit name="backplaneInterlockActive">
+              <targetDevice>CtrlBoard</targetDevice>
+              <targetRegister>APP.${wordPrefix}STATUS</targetRegister>
+              <targetBit>16</targetBit>
+            </redirectedBit>
+            <redirectedBit name="backplaneInterlockActiveSubordinate">
+              <targetDevice>CtrlBoard</targetDevice>
+              <targetRegister>APP.${wordPrefix}STATUS</targetRegister>
+              <targetBit>17</targetBit>
+            </redirectedBit>
+
+            <redirectedBit name="masterFeedbackLinkNotOK">
+              <targetDevice>CtrlBoard</targetDevice>
+              <targetRegister>APP.${wordPrefix}STATUS</targetRegister>
+              <targetBit>18</targetBit>
+            </redirectedBit>
+            <redirectedBit name="slaveFeedbackLinkNotOK">
+              <targetDevice>CtrlBoard</targetDevice>
+              <targetRegister>APP.${wordPrefix}STATUS</targetRegister>
+              <targetBit>19</targetBit>
+            </redirectedBit>
+            <redirectedBit name="synchronisationNotOK">
+              <targetDevice>CtrlBoard</targetDevice>
+              <targetRegister>APP.${wordPrefix}STATUS</targetRegister>
+              <targetBit>20</targetBit>
+            </redirectedBit>
+
+          % else : # isSincav ==>
+
+            <redirectedBit name="interlockLatcher">
+              <targetDevice>CtrlBoard</targetDevice>
+              <targetRegister>APP.${wordPrefix}STATUS</targetRegister>
+              <targetBit>0</targetBit>
+              <plugin name="forceReadOnly"/>
+            </redirectedBit>
+
+            <redirectedBit name="fastProtectionActive">
+              <targetDevice>CtrlBoard</targetDevice>
+              <targetRegister>APP.${wordPrefix}STATUS</targetRegister>
+              <targetBit>1</targetBit>
+              <plugin name="forceReadOnly"/>
+            </redirectedBit>
+
+            <redirectedRegister name="externalInterlock">
+              <targetDevice>CtrlBoard</targetDevice>
+              <targetRegister>${ADCBOARD[0]["RTM_TYPE"]}.${wordPrefix}EXT_INTERLOCK</targetRegister>
+            </redirectedRegister>
+
+          % endif
+
+
+          <!-- Summarised status bits -->
+          <redirectedRegister name="saturation">
+            <targetDevice>this</targetDevice>
+            <targetRegister>/ToControlSystem/Controller/Status/feedForwardSaturationI</targetRegister>
+            <plugin name="math">
+              <parameter name="formula">x | FFQ | FFCI | FFCQ | OCI | OCQ | OVC </parameter>
+              <parameter name="FFQ">/ToControlSystem/Controller/Status/feedForwardSaturationQ</parameter>
+              <parameter name="FFCI">/ToControlSystem/Controller/Status/feedForwardCorrectionSaturationI</parameter>
+              <parameter name="FFCQ">/ToControlSystem/Controller/Status/feedForwardCorrectionSaturationQ</parameter>
+              <parameter name="OCI">/ToControlSystem/Controller/Status/offsetCompensationSaturationI</parameter>
+              <parameter name="OCQ">/ToControlSystem/Controller/Status/offsetCompensationSaturationQ</parameter>
+              <parameter name="OVC">/ToControlSystem/Controller/Status/ovcSaturation</parameter>
+            </plugin>
+            <plugin name="typeHintModifier"><parameter name="type">Boolean</parameter></plugin>
           </redirectedRegister>
 
-        % endif
 
-        <!-- Summarised status bits -->
-        <redirectedRegister name="saturation">
-          <targetDevice>this</targetDevice>
-          <targetRegister>/ToControlSystem/Controller/Status/feedForwardSaturationI</targetRegister>
-          <plugin name="math">
-            <parameter name="formula">x | FFQ | OCI | OCQ | GCI | GCQ </parameter>
-            <parameter name="FFQ">/ToControlSystem/Controller/Status/feedForwardSaturationQ</parameter>
-            <parameter name="OCI">/ToControlSystem/Controller/Status/offsetCompensationSaturationI</parameter>
-            <parameter name="OCQ">/ToControlSystem/Controller/Status/offsetCompensationSaturationQ</parameter>
-            <parameter name="GCI">/ToControlSystem/Controller/Status/gainSaturationI</parameter>
-            <parameter name="GCQ">/ToControlSystem/Controller/Status/gainSaturationQ</parameter>
-          </plugin>
-          <plugin name="typeHintModifier"><parameter name="type">Boolean</parameter></plugin>
-        </redirectedRegister>
+        % endif   # (NEW FIRMWARE VEERSIONS WITH UNIFIED INTERCACE)
+
 
       </module> <!-- Status -->
 
       <!--
         ################################################################################################################
       -->
-      % if isSincav :
+      % if isSincav and not isSincavSel :
 
         <module name="InterlockLatcher">
 
           <redirectedRegister name="ilockLatchEnable">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>APP.WORD_INTERLOCK_LATCHER_ENA</targetRegister>
+            <targetRegister>APP.${wordPrefix}INTERLOCK_LATCHER_ENA</targetRegister>
           </redirectedRegister>
 
           <redirectedRegister name="ilockLatchStatus">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>APP.WORD_INTERLOCK_LATCHER_STATUS</targetRegister>
+            <targetRegister>APP.${wordPrefix}INTERLOCK_LATCHER_STATUS</targetRegister>
           </redirectedRegister>
 
           <redirectedRegister name="ilockLatchReset">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>APP.WORD_INTERLOCK_LATCHER_RESET</targetRegister>
+            <targetRegister>APP.${wordPrefix}INTERLOCK_LATCHER_RESET</targetRegister>
           </redirectedRegister>
 
         </module> <!-- InterlockLatcher -->
@@ -1317,21 +1615,21 @@ if FW_VER_CTRL >= version.parse("1.4.0") :
       -->
 
       <module name="FirmwareSEUDetection">
-        % if FW_VER_CTRL >= version.parse("1.4.0") :
+        % if FW_VER_CTRL >= version.parse("1.4.0") or isSincavSel :
           <redirectedRegister name="unrecoverableErrorDetectedRaw">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>FCM.WORD_CRC_ERROR</targetRegister>
+            <targetRegister>FCM.${wordPrefix}CRC_ERROR</targetRegister>
             <plugin name="typeHintModifier"><parameter name="type">uint32</parameter></plugin>
           </redirectedRegister>
 
           <redirectedRegister name="crcErrorSinceFpgaBoot">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>FCM.WORD_CRC_ERROR_CNT</targetRegister>
+            <targetRegister>FCM.${wordPrefix}CRC_ERROR_CNT</targetRegister>
           </redirectedRegister>
 
           <redirectedRegister name="eccFixedFramesSinceFpgaBoot">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>FCM.WORD_ECC_ERROR_CNT</targetRegister>
+            <targetRegister>FCM.${wordPrefix}ECC_ERROR_CNT</targetRegister>
           </redirectedRegister>
         % else :
           <redirectedRegister name="unrecoverableErrorDetectedRaw">
@@ -1367,16 +1665,16 @@ if FW_VER_CTRL >= version.parse("1.4.0") :
         <module name="RfOffFastRamp">
           <redirectedRegister name="enable">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>OUTPUT.WORD_RF_GATE_MODE</targetRegister>
+            <targetRegister>OUTPUT.${wordPrefix}RF_GATE_MODE</targetRegister>
           </redirectedRegister>
           <redirectedRegister name="stepsize">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>OUTPUT.WORD_RF_GATE_STEP</targetRegister>
+            <targetRegister>OUTPUT.${wordPrefix}RF_GATE_STEP</targetRegister>
             <plugin name="typeHintModifier"><parameter name="type">float64</parameter></plugin>
           </redirectedRegister>
           <redirectedRegister name="useHardwareRfGate">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>APP.WORD_RTM_RF_GATE_ENA</targetRegister>
+            <targetRegister>APP.${wordPrefix}RTM_RF_GATE_ENA</targetRegister>
           </redirectedRegister>
         </module>
 
@@ -1409,12 +1707,12 @@ if FW_VER_CTRL >= version.parse("1.4.0") :
         ################################################################################################################
       -->
 
-      % if isSincav :
+      % if isSincav and not isSincavSel:
         <module name="FastProtection">
 
           <redirectedRegister name="ENA">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>APP.WORD_PROT_ENA_N</targetRegister>
+            <targetRegister>APP.${wordPrefix}PROT_ENA_N</targetRegister>
             <plugin name="math">
               <parameter name="formula">not(x)</parameter>
             </plugin>
@@ -1423,7 +1721,7 @@ if FW_VER_CTRL >= version.parse("1.4.0") :
 
           <redirectedRegister name="LIMIT_HIGH">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>APP.WORD_PROT_PLEVA</targetRegister>
+            <targetRegister>APP.${wordPrefix}PROT_PLEVA</targetRegister>
             <plugin name="math">
               <parameter name="formula">x*65536</parameter>
             </plugin>
@@ -1431,7 +1729,7 @@ if FW_VER_CTRL >= version.parse("1.4.0") :
 
           <redirectedRegister name="LIMIT_LOW">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>APP.WORD_PROT_PLEVB</targetRegister>
+            <targetRegister>APP.${wordPrefix}PROT_PLEVB</targetRegister>
             <plugin name="math">
               <parameter name="formula">x*65536</parameter>
             </plugin>
@@ -1439,7 +1737,7 @@ if FW_VER_CTRL >= version.parse("1.4.0") :
 
           <redirectedRegister name="SLOPE">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>APP.WORD_PROT_PLEVS</targetRegister>
+            <targetRegister>APP.${wordPrefix}PROT_PLEVS</targetRegister>
             <plugin name="math">
               <parameter name="formula">x*65536</parameter>
             </plugin>
@@ -1447,7 +1745,7 @@ if FW_VER_CTRL >= version.parse("1.4.0") :
 
           <redirectedRegister name="START">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>APP.WORD_PROT_T0</targetRegister>
+            <targetRegister>APP.${wordPrefix}PROT_T0</targetRegister>
             <plugin name="math">
               <parameter name="formula">(x + delay + filling) * fs</parameter>
               <parameter name="delay">/ToControlSystem/Controller/PulseShape/delay</parameter>
@@ -1459,7 +1757,7 @@ if FW_VER_CTRL >= version.parse("1.4.0") :
 
           <redirectedRegister name="STOP">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>APP.WORD_PROT_T1</targetRegister>
+            <targetRegister>APP.${wordPrefix}PROT_T1</targetRegister>
             <plugin name="math">
               <parameter name="formula">(x + delay + filling + flattop) * fs</parameter>
               <parameter name="delay">/ToControlSystem/Controller/PulseShape/delay</parameter>
@@ -1472,7 +1770,7 @@ if FW_VER_CTRL >= version.parse("1.4.0") :
 
           <redirectedRegister name="THRESHOLD">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>APP.WORD_PROT_FL_ENA</targetRegister>
+            <targetRegister>APP.${wordPrefix}PROT_FL_ENA</targetRegister>
           </redirectedRegister>
 
           <redirectedChannel name="LEVEL">
@@ -1502,7 +1800,7 @@ if FW_VER_CTRL >= version.parse("1.4.0") :
 
         <redirectedRegister name="FW_BOARD_VER_MAJOR">
           <targetDevice>CtrlBoard</targetDevice>
-          <targetRegister>BSP.WORD_PRJ_VERSION</targetRegister>
+          <targetRegister>BSP.${wordPrefix}PRJ_VERSION</targetRegister>
           <plugin name="math">
             <parameter name="formula">floor(x / 2^24) % 256</parameter>
           </plugin>
@@ -1511,7 +1809,7 @@ if FW_VER_CTRL >= version.parse("1.4.0") :
 
         <redirectedRegister name="FW_BOARD_VER_MINOR">
           <targetDevice>CtrlBoard</targetDevice>
-          <targetRegister>BSP.WORD_PRJ_VERSION</targetRegister>
+          <targetRegister>BSP.${wordPrefix}PRJ_VERSION</targetRegister>
           <plugin name="math">
             <parameter name="formula">floor(x / 2^16) % 256</parameter>
           </plugin>
@@ -1520,7 +1818,7 @@ if FW_VER_CTRL >= version.parse("1.4.0") :
 
         <redirectedRegister name="FW_BOARD_VER_PATCH">
           <targetDevice>CtrlBoard</targetDevice>
-          <targetRegister>BSP.WORD_PRJ_VERSION</targetRegister>
+          <targetRegister>BSP.${wordPrefix}PRJ_VERSION</targetRegister>
           <plugin name="math">
             <parameter name="formula">floor(x / 2^8) % 256</parameter>
           </plugin>
@@ -1529,7 +1827,7 @@ if FW_VER_CTRL >= version.parse("1.4.0") :
 
         <redirectedRegister name="FW_BOARD_VER_COMMIT">
           <targetDevice>CtrlBoard</targetDevice>
-          <targetRegister>BSP.WORD_PRJ_VERSION</targetRegister>
+          <targetRegister>BSP.${wordPrefix}PRJ_VERSION</targetRegister>
           <plugin name="math">
             <parameter name="formula">x % 256</parameter>
           </plugin>
@@ -1538,7 +1836,7 @@ if FW_VER_CTRL >= version.parse("1.4.0") :
 
         <redirectedRegister name="fpgaClockError">
           <targetDevice>CtrlBoard</targetDevice>
-          <targetRegister>BSP.WORD_CLK_ERR</targetRegister>
+          <targetRegister>BSP.${wordPrefix}CLK_ERR</targetRegister>
           % if hasMcavVm :
             <plugin name="math">
               <parameter name="formula">x or uvmError</parameter>
@@ -1551,19 +1849,19 @@ if FW_VER_CTRL >= version.parse("1.4.0") :
         % if hasMcavVm :
           <redirectedRegister name="fpgaClockError_vm">
             <targetDevice>VmBoard</targetDevice>
-            <targetRegister>BSP.WORD_CLK_ERROR</targetRegister>
+            <targetRegister>BSP.${wordPrefix}CLK_ERROR</targetRegister>
           </redirectedRegister>
         % endif
 
         % if not isSincav :
           <redirectedBit name="fpgaClockError_NoExtClock">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>BSP.WORD_CLK_ERR</targetRegister>
+            <targetRegister>BSP.${wordPrefix}CLK_ERR</targetRegister>
             <targetBit>0</targetBit>
           </redirectedBit>
           <redirectedBit name="fpgaClockError_NoPllLock">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>BSP.WORD_CLK_ERR</targetRegister>
+            <targetRegister>BSP.${wordPrefix}CLK_ERR</targetRegister>
             <targetBit>1</targetBit>
           </redirectedBit>
         % endif
@@ -1571,7 +1869,7 @@ if FW_VER_CTRL >= version.parse("1.4.0") :
         % if not isSincav :
           <redirectedBit name="BOARD_CRYO1_ENA">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>APP.WORD_CRYO_MODULE_ENA</targetRegister>
+            <targetRegister>APP.${wordPrefix}CRYO_MODULE_ENA</targetRegister>
             <targetBit>0</targetBit>
             <plugin name="forceReadOnly"/>
             <plugin name="typeHintModifier"><parameter name="type">int32</parameter></plugin> <!-- see #9747 -->
@@ -1579,7 +1877,7 @@ if FW_VER_CTRL >= version.parse("1.4.0") :
 
           <redirectedBit name="BOARD_CRYO2_ENA">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>APP.WORD_CRYO_MODULE_ENA</targetRegister>
+            <targetRegister>APP.${wordPrefix}CRYO_MODULE_ENA</targetRegister>
             <targetBit>1</targetBit>
             <plugin name="forceReadOnly"/>
             <plugin name="typeHintModifier"><parameter name="type">int32</parameter></plugin> <!-- see #9747 -->
@@ -1588,7 +1886,7 @@ if FW_VER_CTRL >= version.parse("1.4.0") :
           % if hasMcavVm :
             <redirectedRegister name="BOARD_RESET_VMGTP">
               <targetDevice>VmBoard</targetDevice>
-              <targetRegister>BSP.WORD_GTP_RESET</targetRegister>
+              <targetRegister>BSP.${wordPrefix}GTP_RESET</targetRegister>
               <plugin name="monostableTrigger">
                 <parameter name="milliseconds">5</parameter>
               </plugin>
@@ -1598,7 +1896,7 @@ if FW_VER_CTRL >= version.parse("1.4.0") :
 
           <redirectedRegister name="BOARD_RESET_N">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>BSP.WORD_RESET_N</targetRegister>
+            <targetRegister>BSP.${wordPrefix}RESET_N</targetRegister>
             <plugin name="monostableTrigger">
               <parameter name="milliseconds">5</parameter>
               <parameter name="active">0</parameter>
@@ -1609,7 +1907,7 @@ if FW_VER_CTRL >= version.parse("1.4.0") :
 
           <redirectedRegister name="MS_MASTER_MODE">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>APP.WORD_MASTER_MODE</targetRegister>
+            <targetRegister>APP.${wordPrefix}MASTER_MODE</targetRegister>
             <plugin name="forceReadOnly"/>
             <plugin name="typeHintModifier"><parameter name="type">int32</parameter></plugin> <!-- see #9747 -->
           </redirectedRegister>
@@ -1617,7 +1915,7 @@ if FW_VER_CTRL >= version.parse("1.4.0") :
           <redirectedBit name="PVS_NORM_WITHIN_CRATE">
             <!-- Note: maybe this register should be removed once the feature is tested and shall be permanently enabled! -->
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>APP.WORD_PVS_NORM</targetRegister>
+            <targetRegister>APP.${wordPrefix}PVS_NORM</targetRegister>
             <targetBit>0</targetBit>
             <plugin name="typeHintModifier"><parameter name="type">int32</parameter></plugin> <!-- see #9747 -->
           </redirectedBit>
@@ -1625,7 +1923,7 @@ if FW_VER_CTRL >= version.parse("1.4.0") :
           <redirectedBit name="PVS_NORM_MASTER_SLAVE">
             <!-- Note: maybe this register should be removed once the feature is tested and shall be permanently enabled! -->
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>APP.WORD_PVS_NORM</targetRegister>
+            <targetRegister>APP.${wordPrefix}PVS_NORM</targetRegister>
             <targetBit>1</targetBit>
             <plugin name="typeHintModifier"><parameter name="type">int32</parameter></plugin> <!-- see #9747 -->
           </redirectedBit>
@@ -1634,21 +1932,21 @@ if FW_VER_CTRL >= version.parse("1.4.0") :
             <module name="WITHIN_CRATE">
               <redirectedRegister name="STATUS">
                 <targetDevice>CtrlBoard</targetDevice>
-                <targetRegister>APP.WORD_ALIGN_CAV_STATUS</targetRegister>
+                <targetRegister>APP.${wordPrefix}ALIGN_CAV_STATUS</targetRegister>
               </redirectedRegister>
               <redirectedRegister name="ARRIVAL_TIME">
                 <targetDevice>CtrlBoard</targetDevice>
-                <targetRegister>APP.WORD_ALIGN_CAV_ARR_MON</targetRegister>
+                <targetRegister>APP.${wordPrefix}ALIGN_CAV_ARR_MON</targetRegister>
               </redirectedRegister>
             </module>
             <module name="MASTER_SLAVE">
               <redirectedRegister name="STATUS">
                 <targetDevice>CtrlBoard</targetDevice>
-                <targetRegister>APP.WORD_ALIGN_MS_STATUS</targetRegister>
+                <targetRegister>APP.${wordPrefix}ALIGN_MS_STATUS</targetRegister>
               </redirectedRegister>
               <redirectedRegister name="ARRIVAL_TIME">
                 <targetDevice>CtrlBoard</targetDevice>
-                <targetRegister>APP.WORD_ALIGN_MS_ARR_MON</targetRegister>
+                <targetRegister>APP.${wordPrefix}ALIGN_MS_ARR_MON</targetRegister>
               </redirectedRegister>
             </module>
           </module>
@@ -1656,7 +1954,7 @@ if FW_VER_CTRL >= version.parse("1.4.0") :
           % for index in range(0,24) :
             <redirectedRegister name="LLL_STATUS_${index}">
               <targetDevice>CtrlBoard</targetDevice>
-              <targetRegister>BSP.WORD_LLL_STATUS</targetRegister>
+              <targetRegister>BSP.${wordPrefix}LLL_STATUS</targetRegister>
               <numberOfElements>1</numberOfElements>
               <targetStartIndex>${index}</targetStartIndex>
             </redirectedRegister>
@@ -1674,7 +1972,7 @@ if FW_VER_CTRL >= version.parse("1.4.0") :
         % if not isSincav :
           <redirectedBit name="bootStatus">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>BSP.WORD_BOOT_STATUS</targetRegister>
+            <targetRegister>BSP.${wordPrefix}BOOT_STATUS</targetRegister>
             <targetBit>0</targetBit>
             <plugin name="typeHintModifier"><parameter name="type">Boolean</parameter></plugin>
           </redirectedBit>
@@ -1713,7 +2011,7 @@ if FW_VER_CTRL >= version.parse("1.4.0") :
           <module name="ENABLE">
             <redirectedBit name="TRAIN_${train+1}">
               <targetDevice>CtrlBoard</targetDevice>
-              <targetRegister>BLC.WORD_TRAIN_ENA</targetRegister>
+              <targetRegister>BLC.${wordPrefix}TRAIN_ENA</targetRegister>
               <targetBit>${train}</targetBit>
             </redirectedBit>
           </module>
@@ -1721,61 +2019,61 @@ if FW_VER_CTRL >= version.parse("1.4.0") :
 
         <redirectedRegister name="X2T_BUNCH_DEST_MASK">
           <targetDevice>CtrlBoard</targetDevice>
-          <targetRegister>X2TSDR.WORD_BUNCH_DEST_MASK</targetRegister>
+          <targetRegister>X2TSDR.${wordPrefix}BUNCH_DEST_MASK</targetRegister>
         </redirectedRegister>
 
         <module name="CHARGE">
           <redirectedRegister name="SOURCE">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>BLC.WORD_CHARGE_SRC</targetRegister>
+            <targetRegister>BLC.${wordPrefix}CHARGE_SRC</targetRegister>
           </redirectedRegister>
 
           <module name="PRECOMP">
             <redirectedRegister name="SOURCE">
               <targetDevice>CtrlBoard</targetDevice>
-              <targetRegister>BLC.WORD_CHARGE_PRED_SRC</targetRegister>
+              <targetRegister>BLC.${wordPrefix}CHARGE_PRED_SRC</targetRegister>
             </redirectedRegister>
             <redirectedRegister name="SELECT">
               <targetDevice>CtrlBoard</targetDevice>
-              <targetRegister>BLC.WORD_CHARGE_PRE_SEL</targetRegister>
+              <targetRegister>BLC.${wordPrefix}CHARGE_PRE_SEL</targetRegister>
               <plugin name="typeHintModifier"><parameter name="type">int32</parameter></plugin>
             </redirectedRegister>
           </module>
 
           <redirectedRegister name="THRESHOLD">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>BLC.WORD_CHARGE_THR</targetRegister>
+            <targetRegister>BLC.${wordPrefix}CHARGE_THR</targetRegister>
           </redirectedRegister>
           <redirectedRegister name="KEEP_VALUE">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>BLC.WORD_CHARGE_KEEP_VAL</targetRegister>
+            <targetRegister>BLC.${wordPrefix}CHARGE_KEEP_VAL</targetRegister>
           </redirectedRegister>
           <redirectedRegister name="KEEP_PRE_VALUE">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>BLC.WORD_CHARGE_KEEP_PRE_VAL</targetRegister>
+            <targetRegister>BLC.${wordPrefix}CHARGE_KEEP_PRE_VAL</targetRegister>
           </redirectedRegister>
 
           <module name="SCALE">
             <redirectedRegister name="SELECT">
               <targetDevice>CtrlBoard</targetDevice>
-              <targetRegister>BLC.WORD_SCALE_SEL</targetRegister>
+              <targetRegister>BLC.${wordPrefix}SCALE_SEL</targetRegister>
               <plugin name="typeHintModifier"><parameter name="type">int32</parameter></plugin>
             </redirectedRegister>
             <redirectedRegister name="SINGLE_VALUE">
               <targetDevice>CtrlBoard</targetDevice>
-              <targetRegister>BLC.WORD_SCALE_REG</targetRegister>
+              <targetRegister>BLC.${wordPrefix}SCALE_REG</targetRegister>
               <plugin name="typeHintModifier"><parameter name="type">float64</parameter></plugin>
             </redirectedRegister>
             <redirectedRegister name="PER_BUNCH_SPACING">
               <targetDevice>CtrlBoard</targetDevice>
-              <targetRegister>BLC.WORD_SCALE_TAB</targetRegister>
+              <targetRegister>BLC.${wordPrefix}SCALE_TAB</targetRegister>
             </redirectedRegister>
           </module>
 
           % if FW_VER_CTRL >= version.parse("1.7.0") :
             <redirectedRegister name="NO_KEEP_LAST">
               <targetDevice>CtrlBoard</targetDevice>
-              <targetRegister>BLC.WORD_CHARGE_NO_KEEP_LAST</targetRegister>
+              <targetRegister>BLC.${wordPrefix}CHARGE_NO_KEEP_LAST</targetRegister>
             </redirectedRegister>
           % else :
             <variable name="NO_KEEP_LAST">
@@ -1792,21 +2090,21 @@ if FW_VER_CTRL >= version.parse("1.4.0") :
 
             <redirectedBit name="enable">
               <targetDevice>CtrlBoard</targetDevice>
-              <targetRegister>BLC.WORD_LIMIT_EN</targetRegister>
+              <targetRegister>BLC.${wordPrefix}LIMIT_EN</targetRegister>
               <targetBit>0</targetBit>
               <plugin name="typeHintModifier"><parameter name="type">int32</parameter></plugin> <!-- see #9747 -->
             </redirectedBit>
 
             <redirectedBit name="status">
               <targetDevice>CtrlBoard</targetDevice>
-              <targetRegister>BLC.WORD_LIMIT_STATUS</targetRegister>
+              <targetRegister>BLC.${wordPrefix}LIMIT_STATUS</targetRegister>
               <targetBit>0</targetBit>
               <plugin name="typeHintModifier"><parameter name="type">int32</parameter></plugin>
             </redirectedBit>
 
             <redirectedRegister name="max">
               <targetDevice>CtrlBoard</targetDevice>
-              <targetRegister>BLC.WORD_AMP_LIMIT</targetRegister>
+              <targetRegister>BLC.${wordPrefix}AMP_LIMIT</targetRegister>
               <plugin name="math">
                 <parameter name="formula">x*bitScaling</parameter>
                 <parameter name="bitScaling">/ToControlSystem/Configuration/bitScaling</parameter>
@@ -1820,41 +2118,41 @@ if FW_VER_CTRL >= version.parse("1.4.0") :
 
             <redirectedBit name="enable">
               <targetDevice>CtrlBoard</targetDevice>
-              <targetRegister>BLC.WORD_LIMIT_EN</targetRegister>
+              <targetRegister>BLC.${wordPrefix}LIMIT_EN</targetRegister>
               <targetBit>1</targetBit>
               <plugin name="typeHintModifier"><parameter name="type">int32</parameter></plugin> <!-- see #9747 -->
             </redirectedBit>
 
             <redirectedBit name="statusMax">
               <targetDevice>CtrlBoard</targetDevice>
-              <targetRegister>BLC.WORD_LIMIT_STATUS</targetRegister>
+              <targetRegister>BLC.${wordPrefix}LIMIT_STATUS</targetRegister>
               <targetBit>1</targetBit>
               <plugin name="typeHintModifier"><parameter name="type">int32</parameter></plugin>
             </redirectedBit>
 
             <redirectedBit name="statusMin">
               <targetDevice>CtrlBoard</targetDevice>
-              <targetRegister>BLC.WORD_LIMIT_STATUS</targetRegister>
+              <targetRegister>BLC.${wordPrefix}LIMIT_STATUS</targetRegister>
               <targetBit>2</targetBit>
               <plugin name="typeHintModifier"><parameter name="type">int32</parameter></plugin>
             </redirectedBit>
 
             <redirectedRegister name="maxCosine">
               <targetDevice>CtrlBoard</targetDevice>
-              <targetRegister>BLC.WORD_COS_PHA_MAX</targetRegister>
+              <targetRegister>BLC.${wordPrefix}COS_PHA_MAX</targetRegister>
             </redirectedRegister>
             <redirectedRegister name="maxSine">
               <targetDevice>CtrlBoard</targetDevice>
-              <targetRegister>BLC.WORD_SIN_PHA_MAX</targetRegister>
+              <targetRegister>BLC.${wordPrefix}SIN_PHA_MAX</targetRegister>
             </redirectedRegister>
 
             <redirectedRegister name="minCosine">
               <targetDevice>CtrlBoard</targetDevice>
-              <targetRegister>BLC.WORD_COS_PHA_MIN</targetRegister>
+              <targetRegister>BLC.${wordPrefix}COS_PHA_MIN</targetRegister>
             </redirectedRegister>
             <redirectedRegister name="minSine">
               <targetDevice>CtrlBoard</targetDevice>
-              <targetRegister>BLC.WORD_SIN_PHA_MIN</targetRegister>
+              <targetRegister>BLC.${wordPrefix}SIN_PHA_MIN</targetRegister>
             </redirectedRegister>
 
           </module>
@@ -1864,26 +2162,26 @@ if FW_VER_CTRL >= version.parse("1.4.0") :
         <module name="PulseShape">
           <redirectedRegister name="pulseStopAbsolute">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>APP.WORD_PULSE_STOP_TIME</targetRegister>
+            <targetRegister>APP.${wordPrefix}PULSE_STOP_TIME</targetRegister>
           </redirectedRegister>
           <redirectedRegister name="beamStartAbsolute">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>APP.WORD_BEAM_START_TIME</targetRegister>
+            <targetRegister>APP.${wordPrefix}BEAM_START_TIME</targetRegister>
           </redirectedRegister>
           <redirectedRegister name="beamStopAbsolute">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>APP.WORD_BEAM_STOP_TIME</targetRegister>
+            <targetRegister>APP.${wordPrefix}BEAM_STOP_TIME</targetRegister>
           </redirectedRegister>
         </module>
 
         <module name="Rotation">
           <redirectedRegister name="cosineTable">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>BLC.WORD_ROT_I</targetRegister>
+            <targetRegister>BLC.${wordPrefix}ROT_I</targetRegister>
           </redirectedRegister>
           <redirectedRegister name="sineTable">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>BLC.WORD_ROT_Q</targetRegister>
+            <targetRegister>BLC.${wordPrefix}ROT_Q</targetRegister>
           </redirectedRegister>
         </module>
 
@@ -1970,29 +2268,29 @@ if FW_VER_CTRL >= version.parse("1.4.0") :
 
         <redirectedRegister name="ENA">
           <targetDevice>CtrlBoard</targetDevice>
-          <targetRegister>BBF.WORD_ENABLE</targetRegister>
+          <targetRegister>BBF.${wordPrefix}ENABLE</targetRegister>
         </redirectedRegister>
 
         <module name="MATRIX">
 
           <redirectedRegister name="A11">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>BBF.WORD_MAT_A11</targetRegister>
+            <targetRegister>BBF.${wordPrefix}MAT_A11</targetRegister>
             <plugin name="typeHintModifier"><parameter name="type">float64</parameter></plugin>
           </redirectedRegister>
           <redirectedRegister name="A12">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>BBF.WORD_MAT_A12</targetRegister>
+            <targetRegister>BBF.${wordPrefix}MAT_A12</targetRegister>
             <plugin name="typeHintModifier"><parameter name="type">float64</parameter></plugin>
           </redirectedRegister>
           <redirectedRegister name="A21">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>BBF.WORD_MAT_A21</targetRegister>
+            <targetRegister>BBF.${wordPrefix}MAT_A21</targetRegister>
             <plugin name="typeHintModifier"><parameter name="type">float64</parameter></plugin>
           </redirectedRegister>
           <redirectedRegister name="A22">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>BBF.WORD_MAT_A22</targetRegister>
+            <targetRegister>BBF.${wordPrefix}MAT_A22</targetRegister>
             <plugin name="typeHintModifier"><parameter name="type">float64</parameter></plugin>
           </redirectedRegister>
 
@@ -2001,12 +2299,12 @@ if FW_VER_CTRL >= version.parse("1.4.0") :
         <module name="AMPL">
           <redirectedRegister name="LIMIT">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>BBF.WORD_AMP_LIMIT</targetRegister>
+            <targetRegister>BBF.${wordPrefix}AMP_LIMIT</targetRegister>
           </redirectedRegister>
           % if FW_VER_CTRL >= version.parse("1.7.0") :
             <redirectedRegister name="LIMIT_ACT">
               <targetDevice>CtrlBoard</targetDevice>
-              <targetRegister>BBF.WORD_AMP_LIMIT_ACT</targetRegister>
+              <targetRegister>BBF.${wordPrefix}AMP_LIMIT_ACT</targetRegister>
               <numberOfElements>${16 if enablePerBunchSetpoints else 1}</numberOfElements> <!-- must match nMaxBeamRegions in base config -->
             </redirectedRegister>
           % endif
@@ -2015,7 +2313,7 @@ if FW_VER_CTRL >= version.parse("1.4.0") :
         <module name="PHASE">
           <redirectedRegister name="LIMIT">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>BBF.WORD_PHA_LIMIT</targetRegister>
+            <targetRegister>BBF.${wordPrefix}PHA_LIMIT</targetRegister>
             <plugin name="math">
               <parameter name="formula">
                 for ( var i:=0; i &lt; x[]; i+=1 ){
@@ -2028,7 +2326,7 @@ if FW_VER_CTRL >= version.parse("1.4.0") :
           % if FW_VER_CTRL >= version.parse("1.7.0") :
             <redirectedRegister name="LIMIT_ACT">
               <targetDevice>CtrlBoard</targetDevice>
-              <targetRegister>BBF.WORD_PHA_LIMIT_ACT</targetRegister>
+              <targetRegister>BBF.${wordPrefix}PHA_LIMIT_ACT</targetRegister>
               <numberOfElements>${16 if enablePerBunchSetpoints else 1}</numberOfElements> <!-- must match nMaxBeamRegions in base config -->
             </redirectedRegister>
           % endif
@@ -2037,7 +2335,7 @@ if FW_VER_CTRL >= version.parse("1.4.0") :
         % if FW_VER_CTRL >= version.parse("1.7.0") :
           <redirectedRegister name="LIMIT_RESET_INTERNAL">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>BBF.WORD_LIMIT_RST</targetRegister>
+            <targetRegister>BBF.${wordPrefix}LIMIT_RST</targetRegister>
             <plugin name="typeHintModifier"><parameter name="type">Void</parameter></plugin>
           </redirectedRegister>
         % endif
@@ -2045,57 +2343,57 @@ if FW_VER_CTRL >= version.parse("1.4.0") :
 
         <redirectedRegister name="BAM_SP">
           <targetDevice>CtrlBoard</targetDevice>
-          <targetRegister>BBF.WORD_BAM_SP</targetRegister>
+          <targetRegister>BBF.${wordPrefix}BAM_SP</targetRegister>
         </redirectedRegister>
         <redirectedRegister name="GAIN">
           <targetDevice>CtrlBoard</targetDevice>
-          <targetRegister>BBF.WORD_GAIN</targetRegister>
+          <targetRegister>BBF.${wordPrefix}GAIN</targetRegister>
           <plugin name="typeHintModifier"><parameter name="type">float64</parameter></plugin>
         </redirectedRegister>
         <redirectedRegister name="BCM_SP">
           <targetDevice>CtrlBoard</targetDevice>
-          <targetRegister>BBF.WORD_BCM_SP</targetRegister>
+          <targetRegister>BBF.${wordPrefix}BCM_SP</targetRegister>
         </redirectedRegister>
 
         % if FW_VER_CTRL >= version.parse("1.7.0") :
           <redirectedRegister name="CHARGE_GATE_DELAY">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>BBF.WORD_CHARGE_GATE_DELAY</targetRegister>
+            <targetRegister>BBF.${wordPrefix}CHARGE_GATE_DELAY</targetRegister>
           </redirectedRegister>
           <redirectedRegister name="CHARGE_GATE_THRESHOLD">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>BBF.WORD_CHARGE_GATE_THR</targetRegister>
+            <targetRegister>BBF.${wordPrefix}CHARGE_GATE_THR</targetRegister>
           </redirectedRegister>
           <redirectedRegister name="MIN_CHARGE">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>BBF.WORD_CHARGE_THR</targetRegister>
+            <targetRegister>BBF.${wordPrefix}CHARGE_THR</targetRegister>
           </redirectedRegister>
           <redirectedRegister name="MIN_CHARGE_SOURCE">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>BBF.WORD_CHARGE_THR_SRC</targetRegister>
+            <targetRegister>BBF.${wordPrefix}CHARGE_THR_SRC</targetRegister>
           </redirectedRegister>
           <redirectedRegister name="GATE_RAMP_ENA">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>BBF.WORD_GATE_RAMP_ENA</targetRegister>
+            <targetRegister>BBF.${wordPrefix}GATE_RAMP_ENA</targetRegister>
           </redirectedRegister>
           <redirectedRegister name="GATE_RAMP_STEP">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>BBF.WORD_GATE_RAMP_STEP</targetRegister>
+            <targetRegister>BBF.${wordPrefix}GATE_RAMP_STEP</targetRegister>
           </redirectedRegister>
         % else :
           <redirectedRegister name="CHARGE_GATE_DELAY">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>BBF.WORD_CHARGE_DELAY</targetRegister>
+            <targetRegister>BBF.${wordPrefix}CHARGE_DELAY</targetRegister>
           </redirectedRegister>
           <redirectedRegister name="CHARGE_GATE_THRESHOLD">
             <targetDevice>CtrlBoard</targetDevice>
-            <targetRegister>BBF.WORD_CHARGE_THR</targetRegister>
+            <targetRegister>BBF.${wordPrefix}CHARGE_THR</targetRegister>
             <plugin name="typeHintModifier"><parameter name="type">float32</parameter></plugin>
           </redirectedRegister>
         % endif
         <redirectedRegister name="CHARGE_GATE_MODE">
           <targetDevice>CtrlBoard</targetDevice>
-          <targetRegister>BBF.WORD_CHARGE_GATE_MODE</targetRegister>
+          <targetRegister>BBF.${wordPrefix}CHARGE_GATE_MODE</targetRegister>
         </redirectedRegister>
 
         <module name="OUT">
@@ -2179,32 +2477,32 @@ if FW_VER_CTRL >= version.parse("1.4.0") :
 
         <redirectedRegister name="ENA_0">
           <targetDevice>CtrlBoard</targetDevice>
-          <targetRegister>BBFSC.WORD_BBFSC_ENA</targetRegister>
+          <targetRegister>BBFSC.${wordPrefix}BBFSC_ENA</targetRegister>
         </redirectedRegister>
 
         <redirectedRegister name="BAM_THRESHOLD">
           <targetDevice>CtrlBoard</targetDevice>
-          <targetRegister>BBFSC.WORD_BAM_THR</targetRegister>
+          <targetRegister>BBFSC.${wordPrefix}BAM_THR</targetRegister>
         </redirectedRegister>
 
         <redirectedRegister name="BAM_SP_0">
           <targetDevice>CtrlBoard</targetDevice>
-          <targetRegister>BBFSC.WORD_BAM_SP</targetRegister>
+          <targetRegister>BBFSC.${wordPrefix}BAM_SP</targetRegister>
         </redirectedRegister>
 
         <redirectedRegister name="KP_I">
           <targetDevice>CtrlBoard</targetDevice>
-          <targetRegister>BBFSC.WORD_BAM_KP_I</targetRegister>
+          <targetRegister>BBFSC.${wordPrefix}BAM_KP_I</targetRegister>
         </redirectedRegister>
 
         <redirectedRegister name="KP_Q">
           <targetDevice>CtrlBoard</targetDevice>
-          <targetRegister>BBFSC.WORD_BAM_KP_Q</targetRegister>
+          <targetRegister>BBFSC.${wordPrefix}BAM_KP_Q</targetRegister>
         </redirectedRegister>
 
         <redirectedRegister name="BUNCH_SPACE">
           <targetDevice>CtrlBoard</targetDevice>
-          <targetRegister>BBFSC.WORD_BUNCH_SPACE</targetRegister>
+          <targetRegister>BBFSC.${wordPrefix}BUNCH_SPACE</targetRegister>
         </redirectedRegister>
 
       </module> <!-- BeamBasedFeedback -->
@@ -2225,7 +2523,7 @@ if FW_VER_CTRL >= version.parse("1.4.0") :
             <module name="${element}">
               <redirectedRegister name="${REorIM}">
                 <targetDevice>CtrlBoard</targetDevice>
-                <targetRegister>FWD_REFL_DECOUPLER.WORD_${element}_${IorQ}</targetRegister>
+                <targetRegister>FWD_REFL_DECOUPLER.${wordPrefix}${element}_${IorQ}</targetRegister>
               </redirectedRegister>
             </module>
           % endfor
@@ -2246,17 +2544,17 @@ if FW_VER_CTRL >= version.parse("1.4.0") :
 
         <redirectedRegister name="probeChannel">
           <targetDevice>CtrlBoard</targetDevice>
-          <targetRegister>APP.WORD_PIEZO_PRO_SEL</targetRegister>
+          <targetRegister>APP.${wordPrefix}PIEZO_PRO_SEL</targetRegister>
         </redirectedRegister>
 
         <redirectedRegister name="forwardChannel">
           <targetDevice>CtrlBoard</targetDevice>
-          <targetRegister>APP.WORD_PIEZO_FOR_SEL</targetRegister>
+          <targetRegister>APP.${wordPrefix}PIEZO_FOR_SEL</targetRegister>
         </redirectedRegister>
 
         <redirectedRegister name="reflectedChannel">
           <targetDevice>CtrlBoard</targetDevice>
-          <targetRegister>APP.WORD_PIEZO_REF_SEL</targetRegister>
+          <targetRegister>APP.${wordPrefix}PIEZO_REF_SEL</targetRegister>
         </redirectedRegister>
 
       </module> <!-- SincavChannelAssignment -->
diff --git a/llrfctrl6/tests/Devices.py b/llrfctrl6/tests/Devices.py
index ec46f3c6c3ca3e2711f282bc1075253d759f3ba3..65d5f457060fd5314e1210ed47f45792179ffec5 100644
--- a/llrfctrl6/tests/Devices.py
+++ b/llrfctrl6/tests/Devices.py
@@ -7,36 +7,36 @@ from packaging import version
 
 def get(settings):
     if settings['ACCELERATOR'] == 'XFEL':
-        if settings['FULL_STATION_NAME'].startswith('A') and settings['FULL_STATION_NAME'] != 'A1' and settings['FULL_STATION_NAME'] != 'AH1':
-            return TwoModules(settings)
-        elif settings['FULL_STATION_NAME'] == 'A1' or settings['FULL_STATION_NAME'] == 'AH1':
+        if settings['STATION'] == '1' or settings['STATION'] == 'H1' :
             return OneModule(settings)
-        elif settings['FULL_STATION_NAME'] == "GUN1":
+        elif settings['STATION'].startswith("GUN1"):
             return SingleCavity(settings, nExtraAdcDWC10=2)
-        elif settings['FULL_STATION_NAME'].startswith('LLTDS'):
+        elif settings['STATION'].startswith('LLTDS'):
             return SingleCavity(settings)
+        else :
+            return TwoModules(settings)
     if settings['ACCELERATOR'] == 'FLASH':
         if settings['STATION'] in ['GUN', 'BACCA', 'GUNMON']:
             return SingleCavity(settings)
         elif settings['STATION'] == 'POLARIX':
             return SingleCavity(settings, 1)
-        elif settings['FULL_STATION_NAME'] in ['ACC1', 'ACC39', 'ACC1MON', 'ACC39MON']:
+        elif settings['STATION'] in ['1', '39', '1MON', '39MON']:
             return OneModule(settings)
-        elif settings['FULL_STATION_NAME'].startswith('ACC') and settings['FULL_STATION_NAME'] != 'ACC1' and settings['FULL_STATION_NAME'] != 'ACC39':
+        else :
             return TwoModules(settings)
     if settings['ACCELERATOR'] == 'TESTFLASH':
-        if settings['FULL_STATION_NAME'] == '1':
+        if settings['STATION'] == '1':
             return TwoModules(settings)
-        if settings['FULL_STATION_NAME'] == 'RFGUN':
+        if settings['STATION'] == 'RFGUN':
             return SingleCavity(settings)
     if settings['ACCELERATOR'] == 'SINBAD':
-        if settings['FULL_STATION_NAME'] == 'AR.LI.RSB.G.1':
+        if settings['STATION'] == 'AR.LI.RSB.G.1':
             return SingleCavity(settings)
         return SingleCavity(settings, 1)
     if settings['ACCELERATOR'] == 'REGAE':
         return SingleCavity(settings)
     if settings['ACCELERATOR'] == 'AMTF':
-        if settings['FULL_STATION_NAME'] != '39CW' and settings['FULL_STATION_NAME'] != '39CWEXT':
+        if settings['STATION'] != '39CW' and settings['STATION'] != '39CWEXT':
             return OneModule(settings)
         else:
             return SingleCavity(settings)
@@ -50,7 +50,7 @@ def get(settings):
         return SingleCavity(settings, nExtraAdcDWC10=1)
     if settings['ACCELERATOR'] == 'DEVEL':
         return SingleCavity(settings)
-    print("Don't know what to do for this station: "+settings['ACCELERATOR']+"/"+settings['FULL_STATION_NAME'])
+    print("Don't know what to do for this station: "+settings['ACCELERATOR']+"/"+settings['STATION'])
     sys.exit(1)
 
 
diff --git a/llrfctrl6/tests/Tests.py b/llrfctrl6/tests/Tests.py
deleted file mode 100644
index 921833aae4d03483feaac98e8ad329ac5685ccb1..0000000000000000000000000000000000000000
--- a/llrfctrl6/tests/Tests.py
+++ /dev/null
@@ -1,62 +0,0 @@
-#!/usr/bin/python3
-import sys
-import mtca4u
-
-def get(testFacility) :
-  settings = testFacility.settings
-  if settings['ACCELERATOR'] == 'XFEL':
-    if settings['FULL_STATION_NAME'].startswith('A') and settings['FULL_STATION_NAME'] != 'A1' and settings['FULL_STATION_NAME'] != 'AH1' :
-      return TwoModules(testFacility)
-  if settings['ACCELERATOR'] == 'FLASH':
-    if settings['STATION'] in [ 'GUN', 'GUNMON', 'BACCA' ] :
-      return SingleCavity(settings)
-    elif settings['STATION'] == 'POLARIX' :
-      return SingleCavity(settings,1)
-    elif settings['FULL_STATION_NAME'].startswith('ACC') and settings['FULL_STATION_NAME'] != 'ACC1' and settings['FULL_STATION_NAME'] != 'ACC39' :
-      return TwoModules(testFacility)
-  if settings['ACCELERATOR'] == 'TESTFLASH':
-    if settings['FULL_STATION_NAME'] == '1' :
-      return TwoModules(testFacility)
-  if settings['ACCELERATOR'] == 'SINBAD':
-    if settings['FULL_STATION_NAME'] == 'AR.LI.RSB.G.1' :
-      return SingleCavity(testFacility)
-    return SingleCavity(testFacility,1)
-  if settings['ACCELERATOR'] == 'REGAE':
-    return SingleCavity(testFacility)
-  if settings['ACCELERATOR'] == 'TEST' and settings['STATION'] == 'CSI':
-    return SingleCavity(settings)
-  if settings['ACCELERATOR'] == 'CMTB':
-    return SingleCavity(testFacility)
-  if settings['ACCELERATOR'] == 'DEVEL':
-    return SingleCavity(testFacility)
-  print("Don't know what to do for this station: "+settings['ACCELERATOR']+"/"+settings['FULL_STATION_NAME'])
-  sys.exit(1)
-
-
-########################################################################################################################
-# Generic part
-class Tests:
-  def __init__(self, testFacility):
-    self.testFacility = testFacility
-    self.settings = testFacility.settings
-
-
-########################################################################################################################
-# Station dependent part: all multi-cavity stations with two cryo modules, each 8 cavities
-class TwoModules(Tests):
-  def __init__(self, testFacility):
-    super().__init__(testFacility)
-
-  def run(self):
-    print("Running tests for two modules...")
-
-
-########################################################################################################################
-# Station dependent part: single cavity systems
-class SingleCavity(Tests):
-  def __init__(self, testFacility, nExtraAdc=0):
-    super().__init__(testFacility)
-
-  def run(self):
-    print("Running tests for single cavity setup with "+str(nExtraAdc)+" extra ADC boards...")
-