diff --git a/pypcc/config/APSCTTR_LTS.yaml b/pypcc/config/APSCTTR_LTS.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..0567f52ca77bc3edf5d17170a3e319612986a939
--- /dev/null
+++ b/pypcc/config/APSCTTR_LTS.yaml
@@ -0,0 +1,404 @@
+version: "1.0"
+description: "1234"
+name: "APSCTTR"
+
+drivers:
+ - name: I2C
+   type: i2c
+   parameters: [4] #I2C port number
+ - name: I2C_CLK
+   type: i2c_dev #I2C devices
+   parent: I2C
+   status: APSCTTR_I2C_error
+ - name: SPIbb1 
+   type: spibitbang2 #SPI bitbang via GPIO expander: CLK, SDI,SDO,CS
+   parent: I2C_CLK
+   devreg: [IO1.GPIO1,IO1.GPIO1,IO1.GPIO1,IO1.GPIO1]
+   parameters: [4,7,5,6]
+ - name: SPIbb2 
+   type: spibitbang2 #SPI bitbang via GPIO expander: CLK, SDI,SDO,CS
+   parent: I2C_CLK
+   devreg: [IO2.GPIO1,IO2.GPIO1,IO2.GPIO1,IO2.GPIO1]
+   parameters: [4,7,5,6]
+
+#This is the I2C devices in the RCU
+device_registers:
+ - name: IO
+   dim: 2
+   description: IO-Expander (TCA6416APWR)
+   address: [0x20,0x21]
+   driver: I2C_CLK
+   registers:
+   - name: CONF1
+     description: Direction of port1
+     address: 6
+     store: True
+   - name: CONF2
+     description: Direction of port2
+     address: 7
+     store: True
+   - name: GPIO1
+     description: Input/Ouput port 1
+     address: [0,2]  #Read / Write address different
+     store: True
+   - name: GPIO2
+     description: Input/Ouput port 2
+     address: [1,3]  #Read / Write address different
+     store: True
+
+ - name: PLL2
+   driver: SPIbb1
+   registers:
+    - name: PLL_stat
+      description: PLL locked status
+      address: 0x0
+    - {name: r3, address: 0x03}
+    - {name: r5, address: 0x05}
+    - {name: r6, address: 0x06}
+
+ - name: PLL1
+   driver: SPIbb2
+   registers:
+    - name: PLL_stat
+      description: PLL locked status
+      address: 0x0
+    - {name: r3, address: 0x03}
+    - {name: r5, address: 0x05}
+    - {name: r6, address: 0x06}
+
+ - name: ROM
+   description: 24AA02UIDT
+   address: 0x50
+   driver: I2C_CLK
+   registers:
+   - name: ID
+     description: Random
+     address: 0xfc
+   - name: Version
+     description: Set in production
+     address: 0
+   - name: Serial
+     address: 0x20
+
+ - name: VSENSE
+   description: Monitor ADC
+   address: 0x74
+   device: LTC2495
+   driver: I2C_CLK
+   registers:
+   - name: V_0
+     address: 0xB080
+     wait: 250
+   - name: V_1
+     address: 0xB880
+     wait: 250
+   - name: V_2
+     address: 0xB180
+     wait: 250
+   - name: V_3
+     address: 0xB980
+     wait: 250
+   - name: V_4
+     address: 0xB280
+     wait: 250
+   - name: V_5
+     address: 0xBA80
+     wait: 250
+   - name: V_6
+     address: 0xB380
+     wait: 250
+   - name: Temp
+     address: 0xA0C0
+     wait: 250
+
+
+variables:
+  - name: APSCTTR_I2C_error
+    description: 0=good, >0 indicates an I2C communication error
+    driver: I2C_CLK
+    rw:  ro #server RW variable, not linked to IO
+    dtype: uint8
+
+  - name: APSCTTR_monitor_rate
+    description: Monitor rate in seconds
+    rw:  variable 
+    dtype: uint8
+
+  - name: APSCTTR_translator_busy
+    description: True when I2C line busy
+    rw:  ro #server variable, not linked to IO
+    dtype: boolean
+    dim: 1
+
+  - name: APSCT_PCB_ID
+    description: Unique PCB ID
+    driver: I2C_CLK
+    devreg:  ROM.ID
+    width: 32
+    rw:  ro
+    dtype: uint32
+
+  - name: APSCT_PCB_version
+    description: Version number
+    driver: I2C_CLK
+    devreg:  ROM.Version
+    width: 0x80  #16 characters
+    rw:  ro
+    dtype: string
+
+  - name: APSCT_PCB_number
+    description: PCB number (astron.nl/webforms/IenS-Boarden/view.php?id=xxx)
+    driver: I2C_CLK
+    devreg:  ROM.Serial
+    width: 0x80  #16 characters
+    rw:  ro
+    dtype: string
+
+
+  - name: [APSCT_PWR_PLL_200MHz_on,APSCT_PWR_PLL_160MHz_on]
+    description: CLK power status. Controlled by APSCT_xxxMHz_ON and APSCT_OFF
+    rw:  ro
+    dtype: boolean
+    driver: I2C_CLK
+    devreg:  [IO1.GPIO1,IO2.GPIO1]
+    bitoffset: 1
+    width: 1
+
+  - name: APSCT_PWR_on
+    description: CLK power status. Controlled by APSCT_xxxMHz_ON and APSCT_OFF
+    rw:  ro
+    dtype: boolean
+    driver: I2C_CLK
+    devreg:  IO1.GPIO2
+    bitoffset: 3
+    width: 1
+
+  - name: APSCT_PPS_ignore
+    rw:  rw
+    dtype: boolean
+    driver: I2C_CLK
+    devreg:  IO1.GPIO2
+    bitoffset: 2
+    width: 1
+
+  - name: [APSCT_INPUT_10MHz_good,APSCT_INPUT_PPS_good]
+    rw:  ro
+    dtype: boolean
+    driver: I2C_CLK
+    devreg:  IO2.GPIO2
+    bitoffset: [0,1]
+    width: 1
+    monitor: true
+
+
+  - name: [APSCT_PLL_200MHz_locked,APSCT_PLL_160MHz_locked]
+#    description: First status pin give lock status
+    rw:  ro
+    dtype: boolean
+    monitor: true
+    driver: I2C_CLK
+    devreg:  [IO1.GPIO1,IO2.GPIO1]
+    bitoffset: 2
+    width: 1
+
+  - name: [APSCT_PLL_200MHz_error,APSCT_PLL_160MHz_error]
+#    description: Second status pin give error
+    rw:  ro
+    dtype: boolean
+    monitor: true
+    driver: I2C_CLK
+    devreg:  [IO1.GPIO1,IO2.GPIO1]
+    bitoffset: 3
+    width: 1
+
+  - name: APSCT_PLL_200MHz_locked_SPI
+    description: 0x81=locked
+    driver: I2C_CLK
+    devreg:  PLL2.PLL_stat
+    width: 8
+    rw:  ro
+    dtype: uint8
+    debug: True
+
+  - name: APSCT_PLL_160MHz_locked_SPI
+    description: 0x81=locked
+    driver: I2C_CLK
+    devreg:  PLL1.PLL_stat
+    width: 8
+    rw:  ro
+    dtype: uint8
+    debug: True
+
+#  - name: [APSCT_PLL_r3,APSCT_PLL_r5,APSCT_PLL_r6]
+#    driver: I2C_CLK
+#    devreg:  [PLL.r3,PLL.r5,PLL.r6]
+#    width: 8
+#    rw:  ro
+#    dtype: uint8
+#    debug: True
+
+  - name: [APSCT_IO1_GPIO1,APSCT_IO1_GPIO2,APSCT_IO2_GPIO1,APSCT_IO2_GPIO2]
+    driver: I2C_CLK
+    devreg:  [IO1.GPIO1,IO1.GPIO2,IO2.GPIO1,IO2.GPIO2]
+    width: 8
+    rw:  ro
+    dtype: uint8
+    debug: True
+
+  - name: APSCT_IO2_GPIO1
+    driver: I2C_CLK
+    devreg:  IO2.GPIO1
+    width: 8
+    rw:  ro
+    dtype: uint8
+    debug: True
+
+  - name: APSCT_TEMP
+    description: Temperature sensor on PCB
+    driver: I2C_CLK
+    devreg:  VSENSE.Temp
+    width: 23
+    scale: 3.8265e-3
+    convert_unit: Kelvin2Celsius
+    rw:  ro
+    dtype: double
+    monitor: true
+
+  - name: [APSCT_PWR_INPUT_3V3,APSCT_PWR_PLL_160MHz_3V3,APSCT_PWR_PLL_200MHz_3V3,APSCT_PWR_CLKDIST1_3V3,APSCT_PWR_CLKDIST2_3V3,APSCT_PWR_PPSDIST_3V3,APSCT_PWR_CTRL_3V3]
+    driver: I2C_CLK
+    devreg:  [VSENSE.V_0,VSENSE.V_1,VSENSE.V_2,VSENSE.V_3,VSENSE.V_4,VSENSE.V_5,VSENSE.V_6]
+    width: 23
+    scale: 1.12165e-6
+    rw:  ro
+    dtype: double
+    monitor: true
+
+
+methods:
+  - name: APSCTTR_Init #Called after startup to load. Should have all stored registers  
+    driver: I2C_CLK
+    debug: True
+    instructions:   
+      - APSCTTR_I2C_error : 0
+      - APSCT_IO1_GPIO1 : Update
+      - APSCT_IO1_GPIO2 : Update
+      - APSCT_IO2_GPIO1 : Update
+      - APSCT_IO2_GPIO2 : Update
+      - IO1.CONF1: Update
+      - IO1.CONF2: Update
+      - IO2.CONF1: Update
+      - IO2.CONF2: Update
+      - APSCTTR_Update: 0
+
+  - name: APSCTTR_Update
+    driver: I2C_CLK
+    debug: True
+    instructions:   
+      - APSCT_PCB_ID : Update
+      - APSCT_PCB_version : Update
+      - APSCT_PCB_number : Update
+      - APSCT_PWR_on: Update
+      - APSCT_PWR_PLL_200MHz_on: Update
+      - APSCT_PLL_200MHz_locked: Update
+      - APSCT_PLL_200MHz_error: Update
+      - APSCT_PWR_PLL_160MHz_on: Update
+      - APSCT_PLL_160MHz_locked: Update
+      - APSCT_PLL_160MHz_error: Update
+      - APSCT_PPS_ignore : Update
+
+  - name: APSCT_200MHz_on  
+    driver: I2C_CLK
+    description: Configure clock. Monitored using APSCT_PWR_on, APSCT_PLL_error and APSCT_PLL_locked
+    instructions:   
+     - APSCTTR_I2C_error : 0
+     - IO1.CONF1: 0x2C #0010 1100 PPS/PWR output, SCLK,CS,SDI
+     - IO1.CONF2: 0x00 
+     - IO2.CONF1: 0x2C #0010 1100 PPS/PWR output, SCLK,CS,SDI
+     - IO2.CONF2: 0x03 #
+     - IO1.GPIO1: 0x42 #0100 0010 high:200MHz PLL enable, CS high
+     - IO1.GPIO2: 0xF8 #PWR enable  ##Check if not 4??
+     - IO2.GPIO1: 0x00 #All low
+     - IO2.GPIO2: 0x00 #All low (just inputs)
+
+     - WAIT: 200        
+     - APSCT_PLL200_setup: 0
+     - WAIT: 200         #ms to wait before checking lock
+     - APSCTTR_Update: 0   #refresh all settings
+
+  - name: APSCT_160MHz_on  
+    driver: I2C_CLK
+    description: Configure clock. Monitored using APSCT_PWR_on, APSCT_PLL_error and APSCT_PLL_locked
+    instructions:   
+     - APSCTTR_I2C_error : 0
+     - IO1.CONF1: 0x2C #0010 1100 PPS/PWR output, SCLK,CS,SDI
+     - IO1.CONF2: 0x00 
+     - IO2.CONF1: 0x2C #0010 1100 PPS/PWR output, SCLK,CS,SDI
+     - IO2.CONF2: 0x03 #
+     - IO1.GPIO1: 0x00      
+     - IO1.GPIO2: 0x08 #PWR enable  ##Check if not 4??
+     - IO2.GPIO1: 0x42 #0100 0010 high:160MHz PLL enable, CS high
+     - IO2.GPIO2: 0x00 #All low (just inputs)
+
+     - WAIT: 200        
+     - APSCT_PLL160_setup: 0
+     - WAIT: 200         #ms to wait before checking lock
+     - APSCTTR_Update: 0   #refresh all settings
+
+  - name: APSCT_off  
+    driver: I2C_CLK
+    description: Switch clock off. Monitored using APSCT_PWR_on
+    instructions:   
+     - APSCTTR_I2C_error : 0
+     - IO1.GPIO1: 0x00
+     - IO1.GPIO2: 0x00 
+     - IO2.GPIO1: 0x00 
+     - IO2.GPIO2: 0x00 
+     - APSCTTR_Update: 0   #refresh all settings
+
+  - name: APSCT_PLL200_setup  
+    driver: I2C_CLK
+    debug: true
+    instructions:   
+#   - PLL2.0x03: 0x08 #Set power, this is default
+#x    - PLL2.0x04: 0xCF #LTS worked without it 
+    - PLL2.0x05: 0x17 #was 97, set lock time = =x17?
+    - PLL2.0x06: 0x10
+
+    - PLL2.0x07: 0x04 #Stop R divider
+    - PLL2.0x08: 0x01 #Set R divider
+    - PLL2.0x07: 0x00 #Start R divider
+
+    - PLL2.0x09: 0x10 #Stop N divider
+    - PLL2.0x0A: 0x14 #Set N divider=20, 200MHz/20=10MHz = input clock
+    - PLL2.0x09: 0x00 #Start N divider
+
+    - PLL2.0x0D: 0x01 #Divider output 1=1 
+    - PLL2.0x0F: 0x01 #Divider output 2=1
+    - PLL2.0x11: 0x01 #Divider output 3=1
+    - PLL2.0x13: 0x01 #Divider output 4=1
+
+
+  - name: APSCT_PLL160_setup  
+    driver: I2C_CLK
+    debug: true
+    instructions:   
+#   - PLL1.0x03: 0x08 #Set power, this is default
+    - PLL1.0x04: 0xCF #
+    - PLL1.0x05: 0x97 #was 97, set lock time = =x17?
+    - PLL1.0x06: 0x10
+
+    - PLL1.0x07: 0x04 #Stop R divider
+    - PLL1.0x08: 0x01 #Set R divider
+    - PLL1.0x07: 0x00 #Start R divider
+
+    - PLL1.0x09: 0x10 #Stop N divider
+    - PLL1.0x0A: 0x10 #Set N divider=16, 160MHz/16=10MHz = input clock
+    - PLL1.0x09: 0x00 #Start N divider
+
+    - PLL1.0x0D: 0x01 #Divider output 1=1 
+    - PLL1.0x0F: 0x01 #Divider output 2=1
+    - PLL1.0x11: 0x01 #Divider output 3=1
+    - PLL1.0x13: 0x01 #Divider output 4=1
+
+
+
diff --git a/pypcc/config/RECVTR_HB_none.yaml b/pypcc/config/RECVTR_HB_none.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..e13becafe3a1dc9c52ddcca074504f27de51759f
--- /dev/null
+++ b/pypcc/config/RECVTR_HB_none.yaml
@@ -0,0 +1,914 @@
+version: "1.0"
+description: "1234"
+name: "RECVTR"
+
+drivers:
+ - name: I2C1 #TCA9548
+   type: i2c_switch
+   devreg: [0x70,0x71,0x72,0x73]
+   parameters: [1] #I2C port number
+ - name: I2C_RCU 
+   type: i2c_array #An array of similar devices connected to an I2C switch
+   parent: I2C1
+#   parameters: [20,22,0,2,     4,6,10,12,     14,16,18,24,    26,28,30,8,          7,5,3,1,     23,21,19,13,     11,9,15,17,  31,29,27,25] #RCU lookup table 
+   parameters: [32,32,32,32  ,32,32,32,32  ,32,32,32,32  ,32,32,32,32  ,32,32,32,32  ,32,32,32,32  ,32,32,32,32  ,32,32,32,32] #RCU lookup table 
+#   parameters: [20,22,0,2,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32] #RCU lookup table 
+#   parameters: [22,0,2,4,6,10,22,0,2,4,6,10,22,0,2,4,6,10,22,0,2,4,6,10,22,0,2,4,6,10,22,0]#repeat 1..7 for RCUH BF test
+#    12,14,16,18,24,26,28,30,8,7,5,3,1,23,21,19,13,11,9,15,17,31,29,27,25] #RCU lookup table 
+   I2Ccut: 35 #error count to disable I2C (14 for LTS?)
+   status: RECVTR_I2C_error
+ - name: I2C_HBAT
+   type: hba1 #Special driver to manage HBAT1s.
+   parent: I2C_RCU
+   devreg: [0x40.0xFF] #I2C broadcast register
+   parameters: [24] #PPS GPIO pin
+ - name: I2Cbb1 
+   type: i2cbitbangp #I2C bitbang via GPIO expander
+   devreg: [IO3.GPIO2,IO3.GPIO2,IO3.CONF2]
+   parameters: [5,6,6] #pins
+   parent: I2C_RCU
+ - name: I2Cbb2
+   type: i2cbitbangp
+   devreg: [IO3.GPIO2,IO3.GPIO2,IO3.CONF2]
+   parameters: [4,6,6]
+   parent: I2C_RCU
+ - name: I2Cbb3
+   type: i2cbitbangp
+   devreg: [IO3.GPIO2,IO3.GPIO2,IO3.CONF2]
+   parameters: [3,6,6]
+   parent: I2C_RCU
+# - name: I2Cbbp
+#   type: i2cbitbangp
+#   devreg: [IO3.GPIO2,IO3.GPIO2,IO3.CONF2]
+#   parameters: [5,4,3,6,6,6,6,6,6]
+#   parent: I2C_RCU
+ - name: SPIbb1 
+   type: spibitbang1 #SPI bitbang via GPIO expander: CLK, SDIO, SDIOdir,CS
+   devreg: [IO3.GPIO1,IO3.GPIO1,IO3.CONF1,IO3.GPIO2]
+   parameters: [1,0,0,0]
+   parent: I2C_RCU
+ - name: SPIbb2
+   type: spibitbang1
+   devreg: [IO3.GPIO1,IO3.GPIO1,IO3.CONF1,IO3.GPIO2]
+   parameters: [3,2,2,1]
+   parent: I2C_RCU
+ - name: SPIbb3
+   type: spibitbang1
+   devreg: [IO3.GPIO1,IO3.GPIO1,IO3.CONF1,IO3.GPIO2]
+   parameters: [5,4,4,2]
+   parent: I2C_RCU
+
+# - name: SPI3bb 
+#   type: spibitbang3 #SPI bitbang via GPIO expander: CLK, SDIO, SDIOdir,CS
+#   devreg: [IO3.GPIO1,IO3.GPIO1,IO3.CONF1,IO3.GPIO2]
+#   parameters: [1,3,5,  0,2,4,  0,2,4,  0,1,2]
+#   parent: I2C_RCU
+# - name: HBA_trigger
+#   type: gpio_hba_trigger
+#   parameters: [15] #PPS GPIO pin
+#   devreg: [0x40.0x10] #I2C broadcast register
+#   parent: I2C_RCU
+
+#This is the I2C devices in the RCU
+device_registers:
+ - name: IO
+   dim: 4
+   description: [IO-Expander for filter selection,IO-Expander for ON/OFF, Band, BUFx2,IO-Expander for ADC control]
+   address: [0x75,0x76,0x20,0x77]
+   device: [TCA9539,TCA9539,TCA6416,TCA9539]
+   driver: I2C1
+   registers:
+   - name: CONF1
+     description: Direction of port1
+     address: 6
+     store: True
+   - name: CONF2
+     description: Direction of port2
+     address: 7
+     store: True
+   - name: GPIO1
+     description: Input/Ouput port 1
+     address: [0,2]  #Read / Write address different
+     store: True
+   - name: GPIO2
+     description: Input/Ouput port 2
+     address: [1,3]
+     store: True
+   - name: DIR1
+     address: 4
+   - name: DIR2
+     address: 5
+
+ - name: ROM
+   description: IO-Expander for filter selection
+   address: 0x50
+   driver: I2C1
+   registers:
+   - name: ID
+     description: Random
+     address: 0xfc
+   - name: Version
+     description: Set in production
+     address: 0
+   - name: Serial
+     address: 0x20
+ 
+ - name: AN
+   description: Monitor ADC on RCU
+   address: 0x74 #was 0x14 on RCU2-DIG PCBs
+   device: LTC2495
+   driver: I2C1
+   registers:
+   - name: V_1v8
+     address: 0xB080
+   - name: V_2v5
+     address: 0xB880
+   - name: V_3v3
+     address: 0xB180
+   - name: I_Ant0
+     address: 0xB980
+   - name: I_Ant1
+     address: 0xB280
+   - name: I_Ant2
+     address: 0xBA80
+   - name: V_Ant_I0
+     address: 0xB380
+   - name: V_Ant_O0
+     address: 0xBB80
+   - name: V_Ant_I1
+     address: 0xB480
+   - name: V_Ant_O1
+     address: 0xBC80
+   - name: V_Ant_I2
+     address: 0xB580
+   - name: V_Ant_O2
+     address: 0xBD80
+   - name: Temp
+     address: 0xA0C0
+
+#This 'special' devices that uses I2C
+
+ - name: HB_UC
+   description: RCU microcontroller 
+   address: 0x40
+   driver: I2C1
+   registers:
+   - { name: "waitPPS", address: 12, description: "1=wait for PPS"}
+   - { name: "VREF", address: 13, description: "0..15/16 ratio of Vref"}
+   - { name: "firmware", address: 0x10, description: "software version"}
+
+# - name: HB_UC_update
+#   description: RCU microcontroller 
+#   address: 0x40
+#   driver: HBA_trigger
+#   registers:
+#   - name: wait_pps
+#     address: 10
+
+ - name: HBAT
+   dim: 3
+   address: [0x41,0x42,0x43]
+   description: Virtual HBAT0 interface
+   driver: I2C_HBAT
+   registers:
+   - name: XY
+     address: 0x10
+     description: XY delay register
+     store: "w" #only store on write
+   - name: Version
+     address: 127
+     description: HBAT server version
+
+ - name: ADC
+   dim: 3
+   description:  ADC SPI control
+   device: AD9683
+   driver: [SPIbb1,SPIbb2,SPIbb3]
+   registers:
+    - name: PLL_stat
+      description: PLL locked status
+      address: 0x0A
+    - name: JESD_control1
+      description: JESD link control
+      address: 0x5F
+    - name: SYNC_control
+      address: 0x3A
+    - name: CML_level
+      description: CML output adjust
+      address: 0x15
+    - name: Update
+      description: Global device uptate
+      address: 0xFF
+    - name: testmode
+      address: 0x0D
+    - name: dither
+      address: 0x0C
+    - name: JESDscramble
+      address: 0x6E
+    - name: PDWNmodes
+      address: 0x08
+    - name: DCcorrect
+      address: 0x40
+
+ - name: DTH
+   dim: 3
+   description: CW dither source
+   device: SI4012
+   driver: [I2Cbb1,I2Cbb2,I2Cbb3]
+   address: 0x70
+   registers:
+    - name: Freq
+      description: Frequency
+      address: [0x1240,0x1140]
+    - name: Property
+      description: Properties
+      address: [0x12,0x11]
+    - name: State
+      address: [0x61,0x60]
+    - name: Start
+      description: Start CW
+      address: [0x62,0x62]
+    - name: Stop
+      description: Stop CW
+      address: [0x67,0x67]
+    - name: Rev
+      address: 0x10
+    - name: Tune
+      address: [0x1221,0x1121]
+    - name: CONF
+      address: [0x1210,0x1110]
+    - name: PA_CONFIG
+      address: [0x1260,0x1160]
+      store: True
+
+variables:
+   - name: RECVTR_monitor_rate
+     description: Rate at which monitored points are polled (seconds)
+     driver: I2C_RCU
+     rw:  variable 
+     dtype: uint8
+
+   - name: ANT_mask
+     description: Only RF chains with a true mask is set
+     driver: I2C_RCU
+     rw:  variable #server RW variable, not linked to IO
+     dtype: boolean
+     dim: 96
+     dim2: [3,32]
+
+   - name: RCU_mask
+     description: Only RCUs with a true mask is set
+     driver: I2C_RCU
+     rw:  variable #server RW variable, not linked to IO
+     dtype: boolean
+     dim: 32
+
+   - name: RECVTR_I2C_error
+     description: 0=Good, >0 communication error
+     driver: I2C_RCU
+     rw:  ro #server RW variable, not linked to IO
+     dtype: uint8
+     mask: RCU_mask
+     dim: 32
+
+#   - name: RCU_state
+#     description: State of RCUs 0=unknown, 1=ready, 2=busy, 3= wait PPS, 4=error
+#     driver: I2C_RCU
+#     rw:  ro #server variable, not linked to IO
+#     dtype: uint8
+#     dim: 1
+
+   - name: RECVTR_translator_busy
+     description: True when I2C line is busy
+     rw:  ro #server variable, not linked to IO
+     dtype: boolean
+     dim: 1
+
+   - name: RCU_attenuator_dB
+     description: RCU Attenuation (dB)
+     driver: I2C_RCU
+     devreg:  [IO1.GPIO1,IO1.GPIO2,IO2.GPIO1]
+     bitoffset: [0,0,0]
+     width: 6
+     rw:  rw
+     dtype: uint8
+     dim: 96
+     dim2: [3,32]
+     mask: ANT_mask
+
+   - name: RCU_band_select
+     description: Band select for highband 2,1,4 for 110-190,170-230,210-240
+     driver: I2C_RCU
+     devreg:  [IO2.GPIO2,IO2.GPIO2,IO4.GPIO2]
+     bitoffset: [0,3,0]
+     width: 3
+     rw:  rw
+     dtype: uint8
+     dim: 96
+     dim2: [3,32]
+     mask: ANT_mask
+
+   - name: [RCU_IO1_GPIO1,RCU_IO1_GPIO2,RCU_IO2_GPIO1,RCU_IO2_GPIO2,RCU_IO3_GPIO1,RCU_IO3_GPIO2]
+     driver: I2C_RCU
+     devreg:  [IO1.GPIO1,IO1.GPIO2,IO2.GPIO1,IO2.GPIO2,IO3.GPIO1,IO3.GPIO2]
+     width: 8
+     rw:  ro
+     dtype: uint8
+     dim: 32
+     mask: RCU_mask
+     debug: True
+
+   - name: RCU_LED_red_on
+     driver: I2C_RCU
+     description: Red LED on front panel
+     devreg:  IO2.GPIO2
+     bitoffset: 6
+     width: 1
+     rw:  rw
+     dtype: boolean
+     convert_unit: bool_invert
+     dim: 32
+     mask: RCU_mask
+
+   - name: RCU_LED_green_on
+     driver: I2C_RCU
+     description: Green LED on front panel
+     devreg:  IO2.GPIO2
+     bitoffset: 7
+     width: 1
+     rw:  rw
+     dtype: boolean
+     convert_unit: bool_invert
+     dim: 32
+     mask: RCU_mask
+
+   - name: RCU_TEMP
+     description: RCU PCB Temperature (Celsius)
+     driver: I2C_RCU
+     devreg:  AN.Temp
+     width: 23
+     scale: 4.210e-3 #Scaled 1.1 for 3.3V ref. 3.827e-3 for 3.0V  #T=DATAOUT * Vref/12.25/32. Vref=1.5 V
+     convert_unit: Kelvin2Celsius
+     rw:  ro
+     dtype: double
+     dim: 32
+     monitor: true
+     read_parallel: true
+     mask: RECVTR_I2C_error
+
+   - name: RCU_PWR_3V3
+     description: RCU 3.3V voltage (V)
+     driver: I2C_RCU
+     devreg:  AN.V_3v3
+     width: 23
+     scale: 1.609e-6 #Scaled 1.1: 1.463e-6 #3.0V
+     rw:  ro
+     dtype: double
+     dim: 32
+     read_parallel: true
+     monitor: true
+     mask: RECVTR_I2C_error
+
+   - name: RCU_PWR_1V8
+     description: RCU 1.8V voltage (V)
+     driver: I2C_RCU
+     devreg:  AN.V_1v8
+     width: 23
+     scale: 7.8679e-7 #Scaled 1.1: 7.1526e-7 #3.0V ref
+     rw:  ro
+     dtype: double
+     dim: 32
+     read_parallel: true
+     monitor: true
+     mask: RECVTR_I2C_error
+
+   - name: RCU_PWR_2V5
+     description: RCU 2.5V voltage (V)
+     driver: I2C_RCU
+     devreg:  AN.V_2v5
+     width: 23
+     scale: 7.8679e-7 #Scaled 1.1: 7.1526e-7 #3.0V ref
+     rw:  ro
+     dtype: double
+     dim: 32
+     read_parallel: true
+     monitor: true
+     mask: RECVTR_I2C_error
+
+   - name: RCU_PWR_ANT_VOUT
+     description: Voltage on antenna output of RCU (V). Controlled by ANT_PWR_ON.
+     driver: I2C_RCU
+     devreg:  [AN.V_Ant_O0,AN.V_Ant_O1,AN.V_Ant_O2]
+     width: 23
+     scale: 1.57356e-5 #Scaled 1.1: 1.43051e-5 #3V ref
+     rw:  ro
+     dtype: double
+     dim: 96
+     dim2: [3,32]
+     read_parallel: true
+     monitor: true
+     mask: RECVTR_I2C_error
+
+   - name: RCU_PWR_ANT_VIN
+     description: RCU antenna voltage before switch (V)
+     driver: I2C_RCU
+     devreg:  [AN.V_Ant_I0,AN.V_Ant_I1,AN.V_Ant_I2]
+     width: 23
+     scale: 1.57356e-5 #Scaled 1.1: 1.43051e-5 #3V ref
+     rw:  ro
+     dtype: double
+     dim: 96
+     dim2: [3,32]
+     read_parallel: true
+     monitor: true
+     mask: RECVTR_I2C_error
+
+   - name: RCU_PWR_ANT_IOUT
+     description: Current drawn on antenna output of RCU (A). 15mA offset due to LED on RCU
+     driver: I2C_RCU
+     devreg:  [AN.I_Ant0,AN.I_Ant1,AN.I_Ant2]
+     width: 23
+     scale: 2.62262e-7 #4.5K res
+     rw:  ro
+     dtype: double
+     dim: 96
+     dim2: [3,32]
+     read_parallel: true
+     monitor: true
+     mask: RECVTR_I2C_error
+
+   - name: RCU_PWR_DIGITAL_on
+     description: RCU digital power enable. Controlled by calling RCU_on/RCU_off
+     driver: I2C_RCU
+     devreg:  IO2.GPIO1
+     width: 1
+     bitoffset: 6
+     rw:  ro #rw for testing
+     dtype: boolean
+     dim: 32
+     mask: RCU_mask
+
+   - name: RCU_PWR_good
+     description: Status of RCU power given by LDOs.
+     driver: I2C_RCU
+     devreg:  IO2.GPIO1
+     width: 1
+     bitoffset: 7
+     rw:  ro
+     dtype: boolean
+     dim: 32
+     monitor: true
+     mask: RECVTR_I2C_error
+
+   - name: RCU_PWR_ANALOG_on
+     description: RCU analog power enable. Controlled by RCU_on/off
+     driver: I2C_RCU
+     devreg:  IO1.GPIO2
+     width: 1
+     bitoffset: 7
+     rw:  rw #rw for testing
+     dtype: boolean
+     dim: 32
+     mask: RCU_mask
+
+   - name: RCU_DTH_shutdown
+     description: False means dither source & ADC powered on.
+     driver: I2C_RCU
+     devreg:  [IO3.GPIO1,IO3.GPIO1,IO3.GPIO2]
+     width: 1
+     bitoffset: [7,6,7]
+     rw:  ro
+     dtype: boolean
+     dim: 96
+     dim2: [3,32]
+     mask: ANT_mask
+     debug: True
+
+   - name: RCU_PWR_ANT_on
+     description: Antenna power output ON/OFF control. Monitored by Ant_VOUT.
+     driver: I2C_RCU
+     devreg:  [IO1.GPIO1,IO1.GPIO1,IO1.GPIO2]
+     width: 1
+     bitoffset: [6,7,6]
+     rw:  rw
+     dtype: boolean
+     dim: 96
+     dim2: [3,32]
+     mask: ANT_mask
+
+
+   - name: RCU_PCB_ID
+     description: Unique PCB ID
+     driver: I2C_RCU
+     devreg:  ROM.ID
+     width: 32
+     rw:  ro
+     dtype: uint32
+     dim: 32
+     mask: RCU_mask
+
+   - name: RCU_PCB_version
+     description: RCU version number
+     driver: I2C_RCU
+     devreg:  ROM.Version
+     width: 0x80  #16 characters
+     rw:  ro
+     dtype: string
+     dim: 32
+     mask: RCU_mask
+
+   - name: RCU_PCB_number
+     description: PCB number (astron.nl/webforms/IenS-Boarden/view.php?id=xxx)
+     driver: I2C_RCU
+     devreg:  ROM.Serial
+     width: 0x80  #16 characters
+     rw:  ro
+     dtype: string
+     dim: 32
+     mask: RCU_mask
+
+     
+   - name: RCU_ADC_locked
+     description: RCU ADC lock status. May generated noise and polling disabled in future
+     driver: I2C_RCU
+     devreg:  [ADC1.PLL_stat,ADC2.PLL_stat,ADC3.PLL_stat]
+     width: 1
+     rw:  ro
+     dtype: boolean
+     dim: 96
+     dim2: [3,32]
+#     monitor: true
+     read_parallel: true
+
+   - name: RCU_ADC_sync
+     driver: I2C_RCU
+     devreg:  [ADC1.SYNC_control,ADC2.SYNC_control,ADC3.SYNC_control]
+     width: 8
+     rw:  ro
+     dtype: uint8
+     dim: 96
+     dim2: [3,32]
+     debug: true
+
+   - name: RCU_ADC_JESD
+     driver: I2C_RCU
+     devreg:  [ADC1.JESD_control1,ADC2.JESD_control1,ADC3.JESD_control1]
+     width: 8
+     rw:  ro
+     dtype: uint8
+     dim: 96
+     dim2: [3,32]
+     debug: true
+
+   - name: RCU_ADC_CML_level
+     driver: I2C_RCU
+     devreg:  [ADC1.CML_level,ADC2.CML_level,ADC3.CML_level]
+     width: 8
+     rw:  ro
+     dtype: uint8
+     dim: 96
+     dim2: [3,32]
+     debug: true
+
+   - name: RCU_DTH_freq
+     description: RCU Dither source frequency (Hz). Should be around 102MHz.
+     driver: I2C_RCU
+     devreg:  [DTH1.Freq,DTH2.Freq,DTH3.Freq]
+     width: 32
+     rw:  rw
+     dtype: uint32
+     dim: 96
+     dim2: [3,32]
+     mask: ANT_mask
+     read_parallel: all
+
+   - name: RCU_DTH_PWR
+     description: RCU Dither source power
+     driver: I2C_RCU
+     devreg:  [DTH1.PA_CONFIG,DTH2.PA_CONFIG,DTH3.PA_CONFIG]
+     width: 48
+     rw:  rw
+     dtype: double
+     scale: si4012_6bytes_to_pwr
+     dim: 96
+     dim2: [3,32]
+     mask: ANT_mask
+     read_parallel: all
+#     debug: true
+
+   - name: RCU_DTH_on
+     description: RCU Dither on. Controlled by RCU_DTH_on/off
+     driver: I2C_RCU
+     devreg:  [DTH1.State,DTH2.State,DTH3.State]
+     width: 1 #read only first of 2 bytes
+     bitoffset: [1,1,1]
+     rw:  ro
+     dtype: boolean
+     dim: 96
+     dim2: [3,32]
+     mask: ANT_mask
+     read_parallel: all
+
+
+#RCU2H points
+   - name: RCU_DAB_select
+     description: Band select ...
+     driver: I2C_RCU
+     devreg:  [IO4.GPIO1,IO4.GPIO1,IO4.GPIO1]
+     bitoffset: [0,2,4]
+     width: 2
+     rw:  rw
+     dtype: uint8
+     dim: 96
+     dim2: [3,32]
+     mask: ANT_mask
+
+   - name: RCU_firmware_version
+     description: git firmware version
+     driver: I2C_RCU
+     devreg: HB_UC.firmware
+     width: 32
+     rw:  ro
+     dtype: uint32
+     endian: "<"
+     dim: 32
+     mask: RCU_mask
+
+#HBAT points
+   - name: HBAT_BF_delay_steps
+     description: HBAT1 frontend delays (0.5ns steps)
+     driver: I2C_HBAT
+     devreg:  [HBAT1.XY,HBAT2.XY,HBAT3.XY]
+     bitoffset: [2,2,2]
+     width: 5
+     rw:  rw
+     dtype: uint8
+     dim: 3072
+     dim2: [32,96]
+     mask: ANT_mask
+     wait: PPS 
+#     wait: 1000 #ms 
+
+   - name: [RCU_IO4_GPIO1,RCU_IO4_GPIO2]
+     driver: I2C_RCU
+     devreg:  [IO4.GPIO1,IO4.GPIO2]
+     width: 8
+     rw:  ro
+     dtype: uint8
+     dim: 32
+     mask: RCU_mask
+     debug: True
+
+
+   - name: HBAT_LED_on
+     description: HBA frontend control
+     driver: I2C_HBAT
+     devreg:  [HBAT1.XY,HBAT2.XY,HBAT3.XY]
+     bitoffset: 0
+     width: 1
+     rw:  rw
+     dtype: boolean
+     dim: 3072
+     dim2: [32,96]
+     mask: ANT_mask
+     wait: 100 #ms
+   - name: HBAT_PWR_LNA_on
+     description: HBA frontend control
+     driver: I2C_HBAT
+     devreg:  [HBAT1.XY,HBAT2.XY,HBAT3.XY]
+     bitoffset: 7
+     width: 1
+     rw:  rw
+     dtype: boolean
+     dim: 3072
+     dim2: [32,96]
+     mask: ANT_mask
+     wait: 100 #ms
+   - name: HBAT_PWR_on
+     description: HBA frontend control
+     driver: I2C_HBAT
+     devreg:  [HBAT1.XY,HBAT2.XY,HBAT3.XY]
+     bitoffset: 1
+     width: 1
+     rw:  rw
+     dtype: boolean
+     convert_unit: bool_invert
+     dim: 3072
+     dim2: [32,96]
+     mask: ANT_mask
+     wait: 100 #ms
+
+methods:
+  - name: RECVTR_Init #Called after startup to load. Should have all stored registers  
+    driver: I2C_RCU
+    debug: True
+    instructions:   
+    - RCU_IO1_GPIO1: Update
+    - RCU_IO1_GPIO2: Update
+    - RCU_IO2_GPIO1: Update
+    - RCU_IO2_GPIO2: Update
+    - RCU_IO3_GPIO1: Update
+    - RCU_IO3_GPIO2: Update
+#    - IO1.GPIO2: Update
+#    - IO2.GPIO1: Update
+#    - IO2.GPIO2: Update
+#    - IO3.GPIO1: Update
+#    - IO3.GPIO2: Update
+    - IO3.CONF1: Update
+    - RCU_update: 0
+    - RCU_ADC_locked: Update #check if not also in RCU_update
+    - RCU_DTH_on: Update #check if not also in RCU_update
+    - RCU_IO4_GPIO1: Update #should be last, as it will fail for low-band
+    - RCU_IO4_GPIO2: Update
+
+  - name: RCU_on
+    description: Initialize RCU and it in the ON state
+    driver: I2C_RCU
+    mask: RCU_mask
+    instructions:
+     - RECVTR_I2C_error: 0
+     - IO2.CONF1: 0x80 #Pgood on 0x80
+     - IO2.GPIO1: 0x4A #0x40 Dig on, 0x0a =10dB att
+     - IO2.GPIO2: 0x52 #0x09 #Band0 (or 0x12 or 0x24)  #LED green=on=low 0x40
+#     - IO3.GPIO1: 0xD5 #ADC_SDIO=high, clk=low, DTH_EN=high
+#     - IO3.GPIO2: 0xC7 #ADC SC=high, DTH_SDA=high
+     - IO3.GPIO1: 0x15 #ADC_SDIO=high, clk=low, DTH_EN=low
+     - IO3.GPIO2: 0x47 #ADC SC=high, DTH_SDA=high
+     - IO1.GPIO1: 0x0A #0x0a = 10dB att
+     - IO1.GPIO2: 0x8A #0x80 Analog on, 0x0a=10dB att
+     - IO2.CONF2: 0
+     - IO3.CONF1: 0
+     - IO3.CONF2: 0
+     - IO3.DIR1: 0
+     - IO3.DIR2: 0
+     - IO1.CONF1: 0
+     - IO1.CONF2: 0
+     - IO4.CONF1: 0xC0 #pin 0x40, 0x80 not used
+     - IO4.CONF2: 0xF8 
+     - IO4.GPIO1: 0x2A #DAB switch states: 0x2A or 0x51
+     - IO4.GPIO2: 0x02 #Band select
+     - HB_UC.waitPPS: 1 #wait for PPS
+     - HB_UC.VREF: 0x0C 
+
+     - RCU_update: 0
+#     - RCU_GPIO1: Update
+#     - RCU_GPIO2: Update
+#     - RCU_attenuator: [10,10,10]  #Set OPC-UA variable
+#     - WAIT: 500         #ms to wait
+     - ADC1_on: 0        #call another opc-ua method
+     - ADC2_on: 0
+     - ADC3_on: 0
+#     - IO3.GPIO1: 0xD5 #DTH_EN=high -> ADCs disables
+#     - IO3.GPIO2: 0xC7 #
+     - RCU_DTH_shutdown : [1,1,1]
+     - WAIT: 100         #ms to wait
+     - RCU_DTH_shutdown : [0,0,0]
+#     - IO3.GPIO1: 0x15 #DTH_EN=low -> ADC enabled
+#     - IO3.GPIO2: 0x47 
+     - RCU_DTH_on: Update #check dither while giving ADCs some time to lock
+     - RCU_ADC_locked: Update #disabled for testing
+
+
+  - name: RCU_update
+    driver: I2C_RCU
+    mask: RCU_mask
+    debug: True
+    instructions:
+      - RCU_PWR_DIGITAL_on: Update  #Read value and update the OPC-UA variable
+      - RCU_PWR_ANALOG_on: Update 
+      - RCU_PWR_ANT_on: Update 
+      - RCU_PCB_ID: Update
+      - RCU_PCB_version: Update
+      - RCU_PCB_number: Update
+      - RCU_LED_red_on: Update
+      - RCU_LED_green_on: Update
+      - RCU_attenuator_dB: Update
+      - RCU_band_select: Update
+#      - RCU_ADC_locked: Update #disabled for testing
+#      - RCU_ADC_sync: Update #disabled for testing
+#      - RCU_DTH_shutdown: Update
+#      - RCU_DTH_freq: Update
+#      - RCU_DTH_on: Update #disabled for testing
+#      - RCU_hband_select: Update
+      - RCU_DAB_select: Update
+      - RCU_firmware_version: Update
+      - RCU_IO1_GPIO1: Update  #needed for debug/testing
+      - RCU_IO1_GPIO2: Update
+      - RCU_IO2_GPIO1: Update
+      - RCU_IO2_GPIO2: Update
+      - RCU_IO3_GPIO1: Update
+      - RCU_IO3_GPIO2: Update
+      - RCU_IO4_GPIO1: Update
+      - RCU_IO4_GPIO2: Update
+
+
+  - name: ADC1_on
+    driver: I2C_RCU
+    debug: True
+#    rw: hidden
+    instructions:
+     - ADC1.JESD_control1 : 0x14
+     - ADC1.SYNC_control: 1  #Setup ADCs
+     - ADC1.CML_level: 0x7
+     - ADC1.dither : 0x00
+     - ADC1.Update: 1       #Needed to update ADC registers
+     
+  - name: ADC2_on
+    driver: I2C_RCU
+    debug: True
+#    rw: hidden
+    instructions:
+     - ADC2.JESD_control1 : 0x14
+     - ADC2.SYNC_control: 1  #Setup ADCs
+     - ADC2.CML_level: 0x7
+     - ADC2.dither : 0x00
+     - ADC2.Update: 1       #Needed to update ADC registers
+
+  - name: ADC3_on
+    driver: I2C_RCU
+    debug: True
+#    rw: hidden
+    instructions:
+     - ADC3.JESD_control1 : 0x14
+     - ADC3.SYNC_control: 1  #Setup ADCs
+     - ADC3.CML_level: 0x7
+     - ADC3.dither : 0x00
+     - ADC3.Update: 1       #Needed to update ADC registers
+
+  - name: RCU_off
+    description: Put RCU in low-power state
+    driver: I2C_RCU
+    mask: RCU_mask
+    instructions:
+     - RECVTR_I2C_error: 0
+     - RCU_PWR_ANALOG_on: 0 #Switch power off
+     - RCU_PWR_DIGITAL_on: 0 #Switch power off
+     - IO2.GPIO1: 0
+     - IO2.GPIO2: 0
+     - IO3.GPIO1: 0
+     - IO3.GPIO2: 0
+     - IO1.GPIO1: 0
+     - IO1.GPIO2: 0
+     - RCU_update: 0
+     #todo, also make all GPIO pins (except power enables) inputs to remove all power from devices.
+
+#  - name: RCU_HBAT_WAIT_PPS
+#    driver: I2C_RCU
+#    mask: RCU_mask
+#    debug: True
+#    instructions:
+#     - RCU_state: 3
+#     - HB_UC_update.wait_pps : 1
+#     - RCU_state: 1
+
+
+  - name: RCU_DTH_on
+    description: Switch dither source on
+    driver: I2C_RCU
+    mask: RCU_mask
+#    rw: hidden
+    instructions:
+#     - RCU_DTH_config : [0,0,0]
+#     - RCU_DTH_config: Update #debug
+     - DTH1.CONF : [0,0,0]
+     - DTH2.CONF : [0,0,0]
+     - DTH3.CONF : [0,0,0]
+     - DTH1.Tune :    [0,0] #no tuning
+     - DTH2.Tune :    [0,0] #no tuning
+     - DTH3.Tune :    [0,0] #no tuning
+#     - RCU_DTH_tune: Update #debug
+     - DTH1.Start :    [0,1,0,0,1]
+     - DTH2.Start :    [0,1,0,0,1]
+     - DTH3.Start :    [0,1,0,0,1]
+     - RCU_DTH_on : Update
+
+  - name: RCU_DTH_off
+    description: Switch dither source off
+    driver: I2C_RCU
+    mask: RCU_mask
+#    rw: hidden
+    instructions:
+#     - RCU_DTH_SHUTDOWN : [1,1,1]
+#     - WAIT: 100
+#     - RCU_DTH_SHUTDOWN : [0,0,0]
+#     - RCU_DTH_SHUTDOWN : 1
+     - DTH1.Stop :    [0,0]
+     - DTH2.Stop :    [0,0]
+     - DTH3.Stop :    [0,0]
+#     - DTH1.State :    [0,0]
+#     - DTH2.State :    [0,0]
+#     - DTH3.State :    [0,0]
+#     - RCU_DTH_on: Update 
+
+  - name: RCU_DTH_restart #restart to update frequency
+    driver: I2C_RCU
+    mask: RCU_mask
+    debug: True
+    instructions:
+     - DTH1.Stop :    [0,0]
+     - DTH2.Stop :    [0,0]
+     - DTH3.Stop :    [0,0]
+     - DTH1.Start :    [0,1,0,0,1]
+     - DTH2.Start :    [0,1,0,0,1]
+     - DTH3.Start :    [0,1,0,0,1]
+
diff --git a/pypcc/config/RECVTR_LTS.yaml b/pypcc/config/RECVTR_LTS.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..9b835756a19e90e29d34b6abf5c6cb2adc737b91
--- /dev/null
+++ b/pypcc/config/RECVTR_LTS.yaml
@@ -0,0 +1,803 @@
+version: "1.0"
+description: "1234"
+name: "RECVTR"
+
+drivers:
+ - name: I2C1 #TCA9548
+   type: i2c_switch
+   devreg: [0x70,0x71,0x72,0x73]
+   parameters: [1] #I2C port number
+ - name: I2C_RCU 
+   type: i2c_array #An array of similar devices connected to an I2C switch
+   parent: I2C1
+#   parameters: [20,22,0,2,     4,6,10,12,     14,16,18,24,    26,28,30,8,          7,5,3,1,     23,21,19,13,     11,9,15,17,  31,29,27,25] #RCU lookup table 
+   parameters: [1,0,3,2     ,4,5,32,32  ,32,32,32,32  ,32,32,32,32  ,32,32,32,32  ,32,32,32,32  ,32,32,32,32  ,32,32,32,32] #RCU lookup table 
+#   parameters: [20,22,0,2,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32] #RCU lookup table 
+#   parameters: [22,0,2,4,6,10,22,0,2,4,6,10,22,0,2,4,6,10,22,0,2,4,6,10,22,0,2,4,6,10,22,0]#repeat 1..7 for RCUH BF test
+#    12,14,16,18,24,26,28,30,8,7,5,3,1,23,21,19,13,11,9,15,17,31,29,27,25] #RCU lookup table 
+   I2Ccut: 35 #error count to disable I2C (14 for LTS?)
+   status: RECVTR_I2C_error
+ - name: I2Cbb1 
+   type: i2cbitbangp #I2C bitbang via GPIO expander
+   devreg: [IO3.GPIO2,IO3.GPIO2,IO3.CONF2]
+   parameters: [5,6,6] #pins
+   parent: I2C_RCU
+ - name: I2Cbb2
+   type: i2cbitbangp
+   devreg: [IO3.GPIO2,IO3.GPIO2,IO3.CONF2]
+   parameters: [4,6,6]
+   parent: I2C_RCU
+ - name: I2Cbb3
+   type: i2cbitbangp
+   devreg: [IO3.GPIO2,IO3.GPIO2,IO3.CONF2]
+   parameters: [3,6,6]
+   parent: I2C_RCU
+# - name: I2Cbbp
+#   type: i2cbitbangp
+#   devreg: [IO3.GPIO2,IO3.GPIO2,IO3.CONF2]
+#   parameters: [5,4,3,6,6,6,6,6,6]
+#   parent: I2C_RCU
+ - name: SPIbb1 
+   type: spibitbang1 #SPI bitbang via GPIO expander: CLK, SDIO, SDIOdir,CS
+   devreg: [IO3.GPIO1,IO3.GPIO1,IO3.CONF1,IO3.GPIO2]
+   parameters: [1,0,0,0]
+   parent: I2C_RCU
+ - name: SPIbb2
+   type: spibitbang1
+   devreg: [IO3.GPIO1,IO3.GPIO1,IO3.CONF1,IO3.GPIO2]
+   parameters: [3,2,2,1]
+   parent: I2C_RCU
+ - name: SPIbb3
+   type: spibitbang1
+   devreg: [IO3.GPIO1,IO3.GPIO1,IO3.CONF1,IO3.GPIO2]
+   parameters: [5,4,4,2]
+   parent: I2C_RCU
+
+
+#This is the I2C devices in the RCU
+device_registers:
+ - name: IO
+   dim: 3
+   description: [IO-Expander for filter selection,IO-Expander for ON/OFF, Band, BUFx2,IO-Expander for ADC control]
+   address: [0x75,0x76,0x20]
+   device: [TCA9539,TCA9539,TCA6416]
+   driver: I2C1
+   registers:
+   - name: CONF1
+     description: Direction of port1
+     address: 6
+     store: True
+   - name: CONF2
+     description: Direction of port2
+     address: 7
+     store: True
+   - name: GPIO1
+     description: Input/Ouput port 1
+     address: [0,2]  #Read / Write address different
+     store: True
+   - name: GPIO2
+     description: Input/Ouput port 2
+     address: [1,3]
+     store: True
+   - name: DIR1
+     address: 4
+   - name: DIR2
+     address: 5
+
+ - name: ROM
+   description: IO-Expander for filter selection
+   address: 0x50
+   driver: I2C1
+   registers:
+   - name: ID
+     description: Random
+     address: 0xfc
+   - name: Version
+     description: Set in production
+     address: 0
+   - name: Serial
+     address: 0x20
+ 
+ - name: AN
+   description: Monitor ADC on RCU
+   address: 0x74 #was 0x14 on RCU2-DIG PCBs
+   device: LTC2495
+   driver: I2C1
+   registers:
+   - name: V_1v8
+     address: 0xB080
+   - name: V_2v5
+     address: 0xB880
+   - name: V_3v3
+     address: 0xB180
+   - name: I_Ant0
+     address: 0xB980
+   - name: I_Ant1
+     address: 0xB280
+   - name: I_Ant2
+     address: 0xBA80
+   - name: V_Ant_I0
+     address: 0xB380
+   - name: V_Ant_O0
+     address: 0xBB80
+   - name: V_Ant_I1
+     address: 0xB480
+   - name: V_Ant_O1
+     address: 0xBC80
+   - name: V_Ant_I2
+     address: 0xB580
+   - name: V_Ant_O2
+     address: 0xBD80
+   - name: Temp
+     address: 0xA0C0
+
+#This 'special' devices that uses I2C
+
+ - name: ADC
+   dim: 3
+   description:  ADC SPI control
+   device: AD9683
+   driver: [SPIbb1,SPIbb2,SPIbb3]
+   registers:
+    - name: PLL_stat
+      description: PLL locked status
+      address: 0x0A
+    - name: JESD_control1
+      description: JESD link control
+      address: 0x5F
+    - name: SYNC_control
+      address: 0x3A
+    - name: CML_level
+      description: CML output adjust
+      address: 0x15
+    - name: Update
+      description: Global device uptate
+      address: 0xFF
+    - name: testmode
+      address: 0x0D
+    - name: dither
+      address: 0x0C
+    - name: JESDscramble
+      address: 0x6E
+    - name: PDWNmodes
+      address: 0x08
+    - name: DCcorrect
+      address: 0x40
+
+ - name: DTH
+   dim: 3
+   description: CW dither source
+   device: SI4012
+   driver: [I2Cbb1,I2Cbb2,I2Cbb3]
+   address: 0x70
+   registers:
+    - name: Freq
+      description: Frequency
+      address: [0x1240,0x1140]
+    - name: Property
+      description: Properties
+      address: [0x12,0x11]
+    - name: State
+      address: [0x61,0x60]
+    - name: Start
+      description: Start CW
+      address: [0x62,0x62]
+    - name: Stop
+      description: Stop CW
+      address: [0x67,0x67]
+    - name: Rev
+      address: 0x10
+    - name: Tune
+      address: [0x1221,0x1121]
+    - name: CONF
+      address: [0x1210,0x1110]
+    - name: PA_CONFIG
+      address: [0x1260,0x1160]
+      store: True
+
+variables:
+   - name: RECVTR_monitor_rate
+     description: Rate at which monitored points are polled (seconds)
+     driver: I2C_RCU
+     rw:  variable 
+     dtype: uint8
+
+   - name: ANT_mask
+     description: Only RF chains with a true mask is set
+     driver: I2C_RCU
+     rw:  variable #server RW variable, not linked to IO
+     dtype: boolean
+     dim: 96
+     dim2: [3,32]
+
+   - name: RCU_mask
+     description: Only RCUs with a true mask is set
+     driver: I2C_RCU
+     rw:  variable #server RW variable, not linked to IO
+     dtype: boolean
+     dim: 32
+
+   - name: RECVTR_I2C_error
+     description: 0=Good, >0 communication error
+     driver: I2C_RCU
+     rw:  ro #server RW variable, not linked to IO
+     dtype: uint8
+     mask: RCU_mask
+     dim: 32
+
+#   - name: RCU_state
+#     description: State of RCUs 0=unknown, 1=ready, 2=busy, 3= wait PPS, 4=error
+#     driver: I2C_RCU
+#     rw:  ro #server variable, not linked to IO
+#     dtype: uint8
+#     dim: 1
+
+   - name: RECVTR_translator_busy
+     description: True when I2C line is busy
+     rw:  ro #server variable, not linked to IO
+     dtype: boolean
+     dim: 1
+
+   - name: RCU_attenuator_dB
+     description: RCU Attenuation (dB)
+     driver: I2C_RCU
+#     devreg:  [IO1.GPIO1,IO1.GPIO2,IO2.GPIO1]
+     devreg:  [IO2.GPIO1,IO1.GPIO2,IO1.GPIO1] #first bottom
+     bitoffset: [0,0,0]
+     width: 6
+     rw:  rw
+     dtype: uint8
+     dim: 96
+     dim2: [3,32]
+     mask: ANT_mask
+
+   - name: RCU_band_select
+     description: Band select 1=10MHz,2=30MHz
+     driver: I2C_RCU
+     devreg:  [IO2.GPIO2,IO2.GPIO2,IO2.GPIO2]
+#     bitoffset: [0,2,4]
+     bitoffset: [4,2,0] #first on bottom
+     width: 2
+     rw:  rw
+     dtype: uint8
+     dim: 96
+     dim2: [3,32]
+     mask: ANT_mask
+
+   - name: [RCU_IO1_GPIO1,RCU_IO1_GPIO2,RCU_IO2_GPIO1,RCU_IO2_GPIO2,RCU_IO3_GPIO1,RCU_IO3_GPIO2]
+     driver: I2C_RCU
+     devreg:  [IO1.GPIO1,IO1.GPIO2,IO2.GPIO1,IO2.GPIO2,IO3.GPIO1,IO3.GPIO2]
+     width: 8
+     rw:  ro
+     dtype: uint8
+     dim: 32
+     mask: RCU_mask
+     debug: True
+
+   - name: RCU_LED_red_on
+     driver: I2C_RCU
+     description: Red LED on front panel
+     devreg:  IO2.GPIO2
+     bitoffset: 6
+     width: 1
+     rw:  rw
+     dtype: boolean
+     convert_unit: bool_invert
+     dim: 32
+     mask: RCU_mask
+
+   - name: RCU_LED_green_on
+     driver: I2C_RCU
+     description: Green LED on front panel
+     devreg:  IO2.GPIO2
+     bitoffset: 7
+     width: 1
+     rw:  rw
+     dtype: boolean
+     convert_unit: bool_invert
+     dim: 32
+     mask: RCU_mask
+
+   - name: RCU_TEMP
+     description: RCU PCB Temperature (Celsius)
+     driver: I2C_RCU
+     devreg:  AN.Temp
+     width: 23
+     scale: 3.827e-3  #T=DATAOUT * Vref/12.25/32. Vreg=1.5 V
+     convert_unit: Kelvin2Celsius
+     rw:  ro
+     dtype: double
+     dim: 32
+     monitor: true
+     read_parallel: true
+     mask: RECVTR_I2C_error
+
+   - name: RCU_PWR_3V3
+     description: RCU 3.3V voltage (V)
+     driver: I2C_RCU
+     devreg:  AN.V_3v3
+     width: 23
+     scale: 1.463e-6
+     rw:  ro
+     dtype: double
+     dim: 32
+     read_parallel: true
+     monitor: true
+     mask: RECVTR_I2C_error
+
+   - name: RCU_PWR_1V8
+     description: RCU 1.8V voltage (V)
+     driver: I2C_RCU
+     devreg:  AN.V_1v8
+     width: 23
+     scale: 7.1526e-7
+     rw:  ro
+     dtype: double
+     dim: 32
+     read_parallel: true
+     monitor: true
+     mask: RECVTR_I2C_error
+
+   - name: RCU_PWR_2V5
+     description: RCU 2.5V voltage (V)
+     driver: I2C_RCU
+     devreg:  AN.V_2v5
+     width: 23
+     scale: 7.1526e-7
+     rw:  ro
+     dtype: double
+     dim: 32
+     read_parallel: true
+     monitor: true
+     mask: RECVTR_I2C_error
+
+   - name: RCU_PWR_ANT_VOUT
+     description: Voltage on antenna output of RCU (V). Controlled by ANT_PWR_ON.
+     driver: I2C_RCU
+#     devreg:  [AN.V_Ant_O0,AN.V_Ant_O1,AN.V_Ant_O2]
+     devreg:  [AN.V_Ant_O2,AN.V_Ant_O1,AN.V_Ant_O0] #first on bottom
+     width: 23
+     scale: 2.7895e-6
+     rw:  ro
+     dtype: double
+     dim: 96
+     dim2: [3,32]
+     read_parallel: true
+     monitor: true
+     mask: RECVTR_I2C_error
+
+   - name: RCU_PWR_ANT_VIN
+     description: RCU antenna voltage before switch (V)
+     driver: I2C_RCU
+#     devreg:  [AN.V_Ant_I0,AN.V_Ant_I1,AN.V_Ant_I2]
+     devreg:  [AN.V_Ant_I2,AN.V_Ant_I1,AN.V_Ant_I0] #first on bottom
+     width: 23
+     scale: 2.7895e-6
+     rw:  ro
+     dtype: double
+     dim: 96
+     dim2: [3,32]
+     read_parallel: true
+     monitor: true
+     mask: RECVTR_I2C_error
+
+   - name: RCU_PWR_ANT_IOUT
+     description: Current drawn on antenna output of RCU (A). 15mA offset due to LED on RCU
+     driver: I2C_RCU
+     devreg:  [AN.I_Ant0,AN.I_Ant1,AN.I_Ant2]
+     width: 23
+     scale: 7.1526e-8
+     rw:  ro
+     dtype: double
+     dim: 96
+     dim2: [3,32]
+     read_parallel: true
+     monitor: true
+     mask: RECVTR_I2C_error
+
+   - name: RCU_PWR_DIGITAL_on
+     description: RCU digital power enable. Controlled by calling RCU_on/RCU_off
+     driver: I2C_RCU
+     devreg:  IO2.GPIO1
+     width: 1
+     bitoffset: 6
+     rw:  ro #rw for testing
+     dtype: boolean
+     dim: 32
+     mask: RCU_mask
+
+   - name: RCU_PWR_good
+     description: Status of RCU power given by LDOs.
+     driver: I2C_RCU
+     devreg:  IO2.GPIO1
+     width: 1
+     bitoffset: 7
+     rw:  ro
+     dtype: boolean
+     dim: 32
+     monitor: true
+     mask: RECVTR_I2C_error
+
+   - name: RCU_PWR_ANALOG_on
+     description: RCU analog power enable. Controlled by RCU_on/off
+     driver: I2C_RCU
+     devreg:  IO1.GPIO2
+     width: 1
+     bitoffset: 7
+     rw:  rw #rw for testing
+     dtype: boolean
+     dim: 32
+     mask: RCU_mask
+
+   - name: RCU_DTH_shutdown
+     description: False means dither source & ADC powered on.
+     driver: I2C_RCU
+     devreg:  [IO3.GPIO1,IO3.GPIO1,IO3.GPIO2]
+     width: 1
+     bitoffset: [7,6,7]
+     rw:  ro
+     dtype: boolean
+     dim: 96
+     dim2: [3,32]
+     mask: ANT_mask
+     debug: True
+
+   - name: RCU_PWR_ANT_on
+     description: Antenna power output ON/OFF control. Monitored by Ant_VOUT.
+     driver: I2C_RCU
+     devreg:  [IO1.GPIO1,IO1.GPIO1,IO1.GPIO2]
+     width: 1
+     bitoffset: [6,7,6]
+     rw:  rw
+     dtype: boolean
+     dim: 96
+     dim2: [3,32]
+     mask: ANT_mask
+
+   - name: RCU_PCB_ID
+     description: Unique PCB ID
+     driver: I2C_RCU
+     devreg:  ROM.ID
+     width: 32
+     rw:  ro
+     dtype: uint32
+     dim: 32
+     mask: RCU_mask
+
+   - name: RCU_PCB_version
+     description: RCU version number
+     driver: I2C_RCU
+     devreg:  ROM.Version
+     width: 0x80  #16 characters
+     rw:  ro
+     dtype: string
+     dim: 32
+     mask: RCU_mask
+
+   - name: RCU_PCB_number
+     description: PCB number (astron.nl/webforms/IenS-Boarden/view.php?id=xxx)
+     driver: I2C_RCU
+     devreg:  ROM.Serial
+     width: 0x80  #16 characters
+     rw:  ro
+     dtype: string
+     dim: 32
+     mask: RCU_mask
+
+   - name: RCU_ADC_locked
+     description: RCU ADC lock status. May generated noise and polling disabled in future
+     driver: I2C_RCU
+#     devreg:  [ADC1.PLL_stat,ADC2.PLL_stat,ADC3.PLL_stat]
+     devreg:  [ADC3.PLL_stat,ADC2.PLL_stat,ADC1.PLL_stat] #first on bottom
+     width: 1
+     rw:  ro
+     dtype: boolean
+     dim: 96
+     dim2: [3,32]
+#     monitor: true
+     read_parallel: true
+
+   - name: RCU_ADC_sync
+     driver: I2C_RCU
+#     devreg:  [ADC1.SYNC_control,ADC2.SYNC_control,ADC3.SYNC_control]
+     devreg:  [ADC3.SYNC_control,ADC2.SYNC_control,ADC1.SYNC_control] #first bottom
+     width: 8
+     rw:  ro
+     dtype: uint8
+     dim: 96
+     dim2: [3,32]
+     debug: true
+
+   - name: RCU_ADC_testmode
+     driver: I2C_RCU
+#     devreg:  [ADC1.testmode,ADC2.testmode,ADC3.testmode]
+     devreg:  [ADC3.testmode,ADC2.testmode,ADC1.testmode] #first bottom
+     width: 8
+     rw:  rw
+     dtype: uint8
+     dim: 96
+     dim2: [3,32]
+#     debug: true
+
+   - name: RCU_ADC_JESD
+     driver: I2C_RCU
+#     devreg:  [ADC1.JESD_control1,ADC2.JESD_control1,ADC3.JESD_control1]
+     devreg:  [ADC3.JESD_control1,ADC2.JESD_control1,ADC1.JESD_control1] #first bottom
+     width: 8
+     rw:  ro
+     dtype: uint8
+     dim: 96
+     dim2: [3,32]
+     debug: true
+
+   - name: RCU_ADC_CML_level
+     driver: I2C_RCU
+#     devreg:  [ADC1.CML_level,ADC2.CML_level,ADC3.CML_level]
+     devreg:  [ADC3.CML_level,ADC2.CML_level,ADC1.CML_level] #first bottom
+     width: 8
+     rw:  ro
+     dtype: uint8
+     dim: 96
+     dim2: [3,32]
+     debug: true
+
+   - name: RCU_DTH_freq
+     description: RCU Dither source frequency (Hz). Should be around 102MHz.
+     driver: I2C_RCU
+     devreg:  [DTH1.Freq,DTH2.Freq,DTH3.Freq]
+     width: 32
+     rw:  rw
+     dtype: uint32
+     dim: 96
+     dim2: [3,32]
+     mask: ANT_mask
+     read_parallel: all
+
+   - name: RCU_DTH_PWR
+     description: RCU Dither source power
+     driver: I2C_RCU
+     devreg:  [DTH1.PA_CONFIG,DTH2.PA_CONFIG,DTH3.PA_CONFIG]
+     width: 48
+     rw:  rw
+     dtype: double
+     scale: si4012_6bytes_to_pwr
+     dim: 96
+     dim2: [3,32]
+     mask: ANT_mask
+     read_parallel: all
+#     debug: true
+
+
+#   - name: RCU_DTH_tune
+#     driver: I2C_RCU
+#     devreg:  [DTH1.Tune,DTH2.Tune,DTH3.Tune]
+#     width: 16
+#     rw:  rw
+#     dtype: uint32
+#     dim: 96
+#     dim2: [3,32]
+#     mask: ANT_mask
+#     debug: true
+#     read_parallel: all
+
+#   - name: RCU_DTH_config
+#     driver: I2C_RCU
+#     devreg:  [DTH1.CONF,DTH2.CONF,DTH3.CONF]
+#     width: 8
+#     rw:  rw
+#     dtype: uint32
+#     dim: 96
+#     dim2: [3,32]
+#     mask: ANT_mask
+#     debug: true
+#     read_parallel: all
+
+   - name: RCU_DTH_on
+     description: RCU Dither on. Controlled by RCU_DTH_on/off
+     driver: I2C_RCU
+     devreg:  [DTH1.State,DTH2.State,DTH3.State]
+     width: 1 #read only first of 2 bytes
+     bitoffset: [1,1,1]
+     rw:  ro
+     dtype: boolean
+     dim: 96
+     dim2: [3,32]
+     mask: ANT_mask
+     read_parallel: all
+
+#   - name: RCU_DTH_Rev
+#     driver: I2C_RCU
+#     devreg:  [DTH1.Rev,DTH2.Rev,DTH3.Rev]
+#     width: 88
+#     rw:  rw
+#     dtype: uint32
+#     dim: 96
+#     dim2: [3,32]
+#     mask: ANT_mask
+#     debug: true
+#     read_parallel: all
+
+methods:
+  - name: RECVTR_Init #Called after startup to load. Should have all stored registers  
+    driver: I2C_RCU
+    debug: True
+    instructions:   
+    - RCU_IO1_GPIO1: Update
+    - RCU_IO1_GPIO2: Update
+    - RCU_IO2_GPIO1: Update
+    - RCU_IO2_GPIO2: Update
+    - RCU_IO3_GPIO1: Update
+    - RCU_IO3_GPIO2: Update
+#    - IO1.GPIO2: Update
+#    - IO2.GPIO1: Update
+#    - IO2.GPIO2: Update
+#    - IO3.GPIO1: Update
+#    - IO3.GPIO2: Update
+    - IO3.CONF1: Update
+    - RCU_update: 0
+    - RCU_ADC_locked: Update #check if not also in RCU_update
+    - RCU_DTH_on: Update #check if not also in RCU_update
+
+  - name: RCU_on
+    description: Initialize RCU and it in the ON state
+    driver: I2C_RCU
+    mask: RCU_mask
+    instructions:
+     - RECVTR_I2C_error: 0
+     - IO2.CONF1: 0x80 #Pgood on 0x80
+     - IO2.GPIO1: 0x4A #0x40 Dig on, 0x0a =10dB att
+     - IO2.GPIO2: 0x55 #0x15 #Band0 (or 0x2a band 1)  #LED green=on=low
+     - IO3.GPIO1: 0x15 #ADC_SDIO=high, clk=low, DTH_EN=low
+     - IO3.GPIO2: 0x47 #ADC SC=high, DTH_SDA=high, DTH_EN=low
+     - IO1.GPIO1: 0x0A #0x0a = 10dB att
+     - IO1.GPIO2: 0x8A #0x80 Analog on, 0x0a=10dB att
+     - IO2.CONF2: 0
+     - IO3.CONF1: 0
+     - IO3.CONF2: 0
+     - IO3.DIR1: 0
+     - IO3.DIR2: 0
+     - IO1.CONF1: 0
+     - IO1.CONF2: 0
+#     - RCU_GPIO1: Update
+#     - RCU_GPIO2: Update
+#     - RCU_attenuator: [10,10,10]  #Set OPC-UA variable
+#name="RCU_DTH_shutdown"
+     - RCU_update: 0
+     - WAIT: 500         #ms to wait
+     - ADC3_on: 0        #call another opc-ua method
+     - WAIT: 500         #ms to wait
+     - ADC2_on: 0
+     - WAIT: 500         #ms to wait
+     - ADC1_on: 0
+     - WAIT: 500         #ms to wait
+#Toggle enable pin
+#     - IO3.GPIO1: 0xD5 #ADC_SDIO=high, clk=low, DTH_EN=high
+#     - IO3.GPIO2: 0xC7 #ADC SC=high, DTH_SDA=high, DTH_EN=high
+#     - WAIT: 100         #ms to wait #todo: test if necessary
+#     - IO3.GPIO1: 0x15 #enable ADC 0,1
+#     - IO3.GPIO2: 0x47 #enable ADC 2
+
+#     - RCU_DTH_on: Update #check dither while giving ADCs some time to lock
+     - WAIT: 500         #ms to wait
+     - RCU_ADC_locked: Update #disabled for testing
+
+  - name: RCU_update
+    driver: I2C_RCU
+    mask: RCU_mask
+    debug: True
+    instructions:
+      - RCU_PWR_DIGITAL_on: Update  #Read value and update the OPC-UA variable
+      - RCU_PWR_ANALOG_on: Update 
+      - RCU_PWR_ANT_on: Update 
+      - RCU_PCB_ID: Update
+      - RCU_PCB_version: Update
+      - RCU_PCB_number: Update
+      - RCU_LED_red_on: Update
+      - RCU_LED_green_on: Update
+      - RCU_attenuator_dB: Update
+      - RCU_band_select: Update
+      - RCU_ADC_testmode: Update
+#      - RCU_ADC_locked: Update #disabled for testing
+#      - RCU_ADC_sync: Update #disabled for testing
+#      - RCU_DTH_shutdown: Update
+#      - RCU_DTH_freq: Update
+#      - RCU_DTH_on: Update #disabled for testing
+      - RCU_IO1_GPIO1: Update  #needed for debug/testing
+      - RCU_IO1_GPIO2: Update
+      - RCU_IO2_GPIO1: Update
+      - RCU_IO2_GPIO2: Update
+      - RCU_IO3_GPIO1: Update
+      - RCU_IO3_GPIO2: Update
+
+
+  - name: ADC1_on
+    driver: I2C_RCU
+    debug: True
+#    rw: hidden
+    instructions:
+     - ADC1.JESD_control1 : 0x14
+     - ADC1.SYNC_control: 1  #Setup ADCs
+     - ADC1.CML_level: 0x7
+#     - ADC1.dither : 0x00
+#     - ADC1.testmode : 0x00 #output long PSN
+     - ADC1.Update: 1       #Needed to update ADC registers
+     
+  - name: ADC2_on
+    driver: I2C_RCU
+    debug: True
+#    rw: hidden
+    instructions:
+     - ADC2.JESD_control1 : 0x14
+     - ADC2.SYNC_control: 1  #Setup ADCs
+     - ADC2.CML_level: 0x7
+#     - ADC2.dither : 0x00
+#     - ADC2.testmode : 0x00 #output long PSN
+     - ADC2.Update: 1       #Needed to update ADC registers
+
+  - name: ADC3_on
+    driver: I2C_RCU
+    debug: True
+#    rw: hidden
+    instructions:
+     - ADC3.JESD_control1 : 0x14
+     - ADC3.SYNC_control: 1  #Setup ADCs
+     - ADC3.CML_level: 0x7
+#     - ADC3.dither : 0x00
+#     - ADC3.testmode : 0x00 #output long PSN
+     - ADC3.Update: 1       #Needed to update ADC registers
+
+  - name: RCU_off
+    description: Put RCU in low-power state
+    driver: I2C_RCU
+    mask: RCU_mask
+    instructions:
+     - RECVTR_I2C_error: 0
+     - RCU_PWR_ANALOG_on: 0 #Switch power off
+     - RCU_PWR_DIGITAL_on: 0 #Switch power off
+     - IO2.GPIO1: 0
+     - IO2.GPIO2: 0
+     - IO3.GPIO1: 0
+     - IO3.GPIO2: 0
+     - IO1.GPIO1: 0
+     - IO1.GPIO2: 0
+     - RCU_update: 0
+     #todo, also make all GPIO pins (except power enables) inputs to remove all power from devices.
+
+  - name: RCU_DTH_on
+    description: Switch dither source on
+    driver: I2C_RCU
+    mask: RCU_mask
+#    rw: hidden
+    instructions:
+#     - RCU_DTH_config : [0,0,0]
+#     - RCU_DTH_config: Update #debug
+     - DTH1.CONF : [0,0,0]
+     - DTH2.CONF : [0,0,0]
+     - DTH3.CONF : [0,0,0]
+     - DTH1.Tune :    [0,0] #no tuning
+     - DTH2.Tune :    [0,0] #no tuning
+     - DTH3.Tune :    [0,0] #no tuning
+#     - RCU_DTH_tune: Update #debug
+     - DTH1.Start :    [0,1,0,0,1]
+     - DTH2.Start :    [0,1,0,0,1]
+     - DTH3.Start :    [0,1,0,0,1]
+     - RCU_DTH_on : Update
+
+  - name: RCU_DTH_off
+    description: Switch dither source off
+    driver: I2C_RCU
+    mask: RCU_mask
+#    rw: hidden
+    instructions:
+#     - RCU_DTH_SHUTDOWN : [1,1,1]
+#     - WAIT: 100
+#     - RCU_DTH_SHUTDOWN : [0,0,0]
+#     - RCU_DTH_SHUTDOWN : 1
+     - DTH1.Stop :    [0,0]
+     - DTH2.Stop :    [0,0]
+     - DTH3.Stop :    [0,0]
+#     - DTH1.State :    [0,0]
+#     - DTH2.State :    [0,0]
+#     - DTH3.State :    [0,0]
+#     - RCU_DTH_on: Update 
+
diff --git a/pypcc/i2cserv/i2c_array.py b/pypcc/i2cserv/i2c_array.py
index b2b31a26de4608a5b048da417ee1d2279c7a1985..7e66439ca8dfcdc07c8e95f2c5db35a23029d3d2 100644
--- a/pypcc/i2cserv/i2c_array.py
+++ b/pypcc/i2cserv/i2c_array.py
@@ -23,6 +23,7 @@ class i2c_array(i2c_dev):
         print("enable mask",self.enablemask) 
         self.I2Cmask=[0]*self.N
         self.disableI2ConError=self.I2Ccut>0;
+        self.RCUi=0
 #        self.devregs,RCU_storeReg=DevRegList(yaml)
 #        print("Init",config['name'],'len=',len(self.RCU_Switch1),' stored reg=',RCU_storeReg)
 #        self.previous   =np.zeros([self.N,RCU_storeReg],dtype='int')
diff --git a/start_LTS.sh b/start_LTS.sh
new file mode 100755
index 0000000000000000000000000000000000000000..bab9369bd343ed51952b25873d86a696b8589086
--- /dev/null
+++ b/start_LTS.sh
@@ -0,0 +1,5 @@
+tmux new -s translators  'cd ~/pypcc;python3 pypcc2.py -p 4840 -c RECVTR'  \; \
+  new-window 'cd ~/pypcc;python3 pypcc2.py -p 4843 -c CLK' \; \
+  detach-client
+#\
+#    detach-client