diff --git a/pypcc/config/RECVTR_HBQM_TEST.yaml b/pypcc/config/RECVTR_HBQM_TEST.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..0c4ed159efa66121f9de0b1792da3c1d95a08ab3
--- /dev/null
+++ b/pypcc/config/RECVTR_HBQM_TEST.yaml
@@ -0,0 +1,654 @@
+version: "1.0"
+description: "1234"
+name: "RECVTR"
+
+drivers:
+ - name: I2C1 #TCA9548
+   type: i2c_iss
+   parameters: [4] #COM port
+ - name: I2C_RCU
+   type: i2c_dev #I2C devices
+   parent: I2C1
+   status: CLK_I2C_STATUS
+ - 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: i2cbitbang1 #I2C bitbang via GPIO expander
+   devreg: [IO3.GPIO2,IO3.GPIO2,IO3.CONF2]
+   parameters: [5,6,6] #pins
+   parent: I2C_RCU
+ - name: I2Cbb2
+   type: i2cbitbang1
+   devreg: [IO3.GPIO2,IO3.GPIO2,IO3.CONF2]
+   parameters: [4,6,6]
+   parent: I2C_RCU
+ - name: I2Cbb3
+   type: i2cbitbang1
+   devreg: [IO3.GPIO2,IO3.GPIO2,IO3.CONF2]
+   parameters: [3,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: 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: I2C_RCU
+   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: RCU_I2C_STATUS
+     driver: I2C_RCU
+     rw:  ro #server RW variable, not linked to IO
+     dtype: uint8
+
+   - name: [CH1_attenuator_dB,CH2_attenuator_dB,CH3_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: 3
+
+   - name: [CH1_band_select,CH2_band_select,CH3_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
+
+
+   - 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
+
+   - 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
+
+   - 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
+
+   - 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
+
+   - 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
+
+   - 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
+
+   - 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
+
+   - name: [CH1_PWR_ANT_VOUT,CH2_PWR_ANT_VOUT,CH3_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
+
+   - name: [CH1_PWR_ANT_VIN,CH2_PWR_ANT_VIN,CH3_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
+
+   - name: [CH1_PWR_ANT_IOUT,CH2_PWR_ANT_IOUT,CH3_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
+
+   - 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
+
+   - 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
+
+   - 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
+
+   - name: [CH1_DTH_shutdown,CH2_DTH_shutdown,CH3_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
+
+   - name: CH1_PWR_ANT_on
+     description: Antenna power output ON/OFF control. Monitored by Ant_VOUT.
+     driver: I2C_RCU
+     devreg:  IO1.GPIO1
+     width: 1
+     bitoffset: 6
+     rw:  rw
+     dtype: boolean
+
+   - name: CH2_PWR_ANT_on
+     description: Antenna power output ON/OFF control. Monitored by Ant_VOUT.
+     driver: I2C_RCU
+     devreg:  IO1.GPIO1
+     width: 1
+     bitoffset: 7
+     rw:  rw
+     dtype: boolean
+
+   - name: [CH3_PWR_ANT_on]
+     description: Antenna power output ON/OFF control. Monitored by Ant_VOUT.
+     driver: I2C_RCU
+     devreg:  IO1.GPIO2
+     width: 1
+     bitoffset: 6
+     rw:  rw
+     dtype: boolean
+
+#   - name: [CH1_PWR_ANT_on,CH2_PWR_ANT_on,CH3_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
+
+
+   - name: RCU_PCB_ID
+     description: Unique PCB ID
+     driver: I2C_RCU
+     devreg:  ROM.ID
+     width: 32
+     rw:  ro
+     dtype: uint32
+
+   - name: RCU_PCB_version
+     description: RCU version number
+     driver: I2C_RCU
+     devreg:  ROM.Version
+     width: 0x100  #32 characters
+     rw:  ro
+     dtype: string
+
+   - name: RCU_PCB_number
+     description: PCB number (astron.nl/webforms/IenS-Boarden/view.php?id=xxx)
+     driver: I2C_RCU
+     devreg:  ROM.Serial
+     width: 0x100  #32 characters
+     rw:  ro
+     dtype: string
+
+     
+   - name: [CH1_ADC_locked,CH2_ADC_locked,CH3_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
+
+   - name: [CH1_ADC_sync,CH2_ADC_sync,CH3_ADC_sync]
+     driver: I2C_RCU
+     devreg:  [ADC1.SYNC_control,ADC2.SYNC_control,ADC3.SYNC_control]
+     width: 8
+     rw:  ro
+     dtype: uint8
+
+   - name: [CH1_ADC_JESD,CH2_ADC_JESD,CH3_ADC_JESD]
+     driver: I2C_RCU
+     devreg:  [ADC1.JESD_control1,ADC2.JESD_control1,ADC3.JESD_control1]
+     width: 8
+     rw:  ro
+     dtype: uint8
+
+   - name: [CH1_ADC_CML_level,CH2_ADC_CML_level,CH3_ADC_CML_level]
+     driver: I2C_RCU
+     devreg:  [ADC1.CML_level,ADC2.CML_level,ADC3.CML_level]
+     width: 8
+     rw:  ro
+     dtype: uint8
+
+   - name: [CH1_DTH_freq,CH2_DTH_freq,CH3_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
+
+   - name: [CH1_DTH_PWR,CH2_DTH_PWR,CH3_DTH_PWR]
+     description: RCU Dither source power (dBm). Range -25 to -4. 
+     driver: I2C_RCU
+     devreg:  [DTH1.PA_CONFIG,DTH2.PA_CONFIG,DTH3.PA_CONFIG]
+     width: 48
+     rw:  rw
+     dtype: double
+     scale: si4012_6bytes_to_pwr
+
+   - name: [CH1_DTH_on,CH2_DTH_on,CH3_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
+
+
+#RCU2H points
+   - name: [CH1_RCU_DAB_filter_on,CH2_RCU_DAB_filter_on,CH3_RCU_DAB_filter_on]
+     description: DAB filter enable
+     driver: I2C_RCU
+     devreg:  [IO4.GPIO1,IO4.GPIO1,IO4.GPIO1]
+     bitoffset: [0,2,4]
+     width: 2
+     rw:  rw
+     dtype: boolean
+     convert_unit: int12_to_bool
+
+   - name: RCU_firmware_version
+     description: git firmware version
+     driver: I2C_RCU
+     devreg: HB_UC.firmware
+     width: 32
+     rw:  ro
+     dtype: uint32
+     endian: "<"
+
+#HBAT points
+   - name: CH1_HBAT_BF_byte
+     driver: I2C_HBAT
+     devreg:  HBAT1.XY
+     bitoffset: 0
+     width: 8
+     rw:  rw
+     dtype: uint8
+     dim: 32
+     wait: 1000 #ms 
+   - name: CH2_HBAT_BF_byte
+     driver: I2C_HBAT
+     devreg:  HBAT2.XY
+     bitoffset: 0
+     width: 8
+     rw:  rw
+     dtype: uint8
+     dim: 32
+     wait: 1000 #ms 
+   - name: CH3_HBAT_BF_byte
+     driver: I2C_HBAT
+     devreg:  HBAT3.XY
+     bitoffset: 0
+     width: 8
+     rw:  rw
+     dtype: uint8
+     dim: 32
+     wait: 1000 #ms 
+
+   - name: CH1_HBAT_BF2_byte
+     driver: I2C_RCU
+     devreg:  HBAT1.XY
+     bitoffset: 0
+     width: 8
+     rw:  rw
+     dtype: uint8
+     dim: 32
+     wait: 1000 #ms 
+   - name: CH2_HBAT_BF2_byte
+     driver: I2C_RCU
+     devreg:  HBAT2.XY
+     bitoffset: 0
+     width: 8
+     rw:  rw
+     dtype: uint8
+     dim: 32
+     wait: 1000 #ms 
+   - name: CH3_HBAT_BF2_byte
+     driver: I2C_RCU
+     devreg:  HBAT3.XY
+     bitoffset: 0
+     width: 8
+     rw:  rw
+     dtype: uint8
+     dim: 32
+     wait: 1000 #ms 
+
+   - name: [RCU_IO4_GPIO1,RCU_IO4_GPIO2]
+     driver: I2C_RCU
+     devreg:  [IO4.GPIO1,IO4.GPIO2]
+     width: 8
+     rw:  ro
+     dtype: uint8
+
+
+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
+    - RCU_IO4_GPIO1: Update
+    - 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.DIR1: 0
+     - IO3.DIR2: 0
+     - 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
+     - 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
+
+
+  - name: RCU_off
+    driver: I2C_RCU
+    mask: RCU_mask
+    instructions:
+     - IO1.GPIO1: 0
+     - IO1.GPIO2: 0
+     - IO2.GPIO1: 0
+     - IO2.GPIO2: 0
+     - IO3.GPIO1: 0
+     - IO3.GPIO2: 0
+     - IO4.GPIO1: 0
+     - IO4.GPIO2: 0
+     - IO2.CONF1: 0x80 #Pgood on 0x80
+     - IO2.CONF2: 0
+     - IO1.CONF1: 0
+     - IO1.CONF2: 0
+     - IO4.CONF1: 0xC0 #pin 0x40, 0x80 not used
+     - IO4.CONF2: 0xF8 
+
+  - name: ADC_on
+    driver: I2C_RCU
+    debug: True
+    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
+     - 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
+     - 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
\ No newline at end of file
diff --git a/pypcc/config/RECVTR_HB_TEST.yaml b/pypcc/config/RECVTR_HB_TEST.yaml
index 73a37c38569b812be5f15ecce713f8240ed0d14f..7b84b2b9285daeee5ba11f78dee2031d8aebab15 100644
--- a/pypcc/config/RECVTR_HB_TEST.yaml
+++ b/pypcc/config/RECVTR_HB_TEST.yaml
@@ -38,12 +38,12 @@ drivers:
  - name: SPIbb2
    type: spibitbang1
    devreg: [IO3.GPIO1,IO3.GPIO1,IO3.CONF1,IO3.GPIO2]
-   parameters: [3,2,2,1]
+   parameters: [1,2,2,1]
    parent: I2C_RCU
  - name: SPIbb3
    type: spibitbang1
    devreg: [IO3.GPIO1,IO3.GPIO1,IO3.CONF1,IO3.GPIO2]
-   parameters: [5,4,4,2]
+   parameters: [1,4,4,2]
    parent: I2C_RCU
 
 #This is the I2C devices in the RCU
@@ -362,24 +362,61 @@ variables:
      rw:  rw #rw for testing
      dtype: boolean
 
-   - name: [CH1_DTH_shutdown,CH2_DTH_shutdown,CH3_DTH_shutdown]
-     description: False means dither source & ADC powered on.
+   - name: RCU_DTH_shutdown
+     description: False means dither source powered on.
      driver: I2C_RCU
-     devreg:  [IO3.GPIO1,IO3.GPIO1,IO3.GPIO2]
+     devreg:  IO3.GPIO2
      width: 1
-     bitoffset: [7,6,7]
-     rw:  ro
+     bitoffset: 7
+     rw:  rw
+     dtype: boolean
+
+   - name: [CH1_ADC_shutdown,CH2_ADC_shutdown,CH3_ADC_shutdown]
+     description: False means ADC powered on.
+     driver: I2C_RCU
+     devreg:  [IO3.GPIO1,IO3.GPIO1,IO3.GPIO1]
+     width: 1
+     bitoffset: [6,3,5]
+     rw:  rw
      dtype: boolean
 
-   - name: [CH1_PWR_ANT_on,CH2_PWR_ANT_on,CH3_PWR_ANT_on]
+
+   - name: CH1_PWR_ANT_on
      description: Antenna power output ON/OFF control. Monitored by Ant_VOUT.
      driver: I2C_RCU
-     devreg:  [IO1.GPIO1,IO1.GPIO1,IO1.GPIO2]
+     devreg:  IO1.GPIO1
      width: 1
-     bitoffset: [6,7,6]
+     bitoffset: 6
      rw:  rw
      dtype: boolean
 
+   - name: CH2_PWR_ANT_on
+     description: Antenna power output ON/OFF control. Monitored by Ant_VOUT.
+     driver: I2C_RCU
+     devreg:  IO1.GPIO1
+     width: 1
+     bitoffset: 7
+     rw:  rw
+     dtype: boolean
+
+   - name: [CH3_PWR_ANT_on]
+     description: Antenna power output ON/OFF control. Monitored by Ant_VOUT.
+     driver: I2C_RCU
+     devreg:  IO1.GPIO2
+     width: 1
+     bitoffset: 6
+     rw:  rw
+     dtype: boolean
+
+#   - name: [CH1_PWR_ANT_on,CH2_PWR_ANT_on,CH3_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
+
 
    - name: RCU_PCB_ID
      description: Unique PCB ID
@@ -483,58 +520,69 @@ variables:
      endian: "<"
 
 #HBAT points
-   - name: [CH1_HBAT_BF_delay_steps,CH2_HBAT_BF_delay_steps,CH3_HBAT_BF_delay_steps]
-     description: HBAT1 frontend delays (0.5ns steps)
+   - name: CH1_HBAT_BF_byte
      driver: I2C_HBAT
-     devreg:  [HBAT1.XY,HBAT2.XY,HBAT3.XY]
-     bitoffset: [2,2,2]
-     width: 5
+     devreg:  HBAT1.XY
+     bitoffset: 0
+     width: 8
      rw:  rw
      dtype: uint8
      dim: 32
-     wait: PPS 
-#     wait: 1000 #ms 
-
-   - name: [RCU_IO4_GPIO1,RCU_IO4_GPIO2]
-     driver: I2C_RCU
-     devreg:  [IO4.GPIO1,IO4.GPIO2]
+     wait: 1000 #ms 
+   - name: CH2_HBAT_BF_byte
+     driver: I2C_HBAT
+     devreg:  HBAT2.XY
+     bitoffset: 0
      width: 8
-     rw:  ro
+     rw:  rw
      dtype: uint8
-
-
-   - name: [CH1_HBAT_LED_on,CH2_HBAT_LED_on,CH3_HBAT_LED_on]
-     description: HBA frontend control
+     dim: 32
+     wait: 1000 #ms 
+   - name: CH3_HBAT_BF_byte
      driver: I2C_HBAT
-     devreg:  [HBAT1.XY,HBAT2.XY,HBAT3.XY]
+     devreg:  HBAT3.XY
      bitoffset: 0
-     width: 1
+     width: 8
      rw:  rw
-     dtype: boolean
+     dtype: uint8
      dim: 32
+     wait: 1000 #ms 
 
-   - name: [CH1_HBAT_PWR_LNA_on,CH2_HBAT_PWR_LNA_on,CH3_HBAT_PWR_LNA_on]
-     description: HBA frontend control
-     driver: I2C_HBAT
-     devreg:  [HBAT1.XY,HBAT2.XY,HBAT3.XY]
-     bitoffset: 7
-     width: 1
+   - name: CH1_HBAT_BF2_byte
+     driver: I2C_RCU
+     devreg:  HBAT1.XY
+     bitoffset: 0
+     width: 8
      rw:  rw
-     dtype: boolean
+     dtype: uint8
      dim: 32
-     wait: 1000
-
-   - name: [CH1_HBAT_PWR_on,CH2_HBAT_PWR_on,CH3_HBAT_PWR_on]
-     description: HBA frontend control
-     driver: I2C_HBAT
-     devreg:  [HBAT1.XY,HBAT2.XY,HBAT3.XY]
-     bitoffset: 1
-     width: 1
+     wait: 1000 #ms 
+   - name: CH2_HBAT_BF2_byte
+     driver: I2C_RCU
+     devreg:  HBAT2.XY
+     bitoffset: 0
+     width: 8
      rw:  rw
-     dtype: boolean
-     convert_unit: bool_invert
+     dtype: uint8
+     dim: 32
+     wait: 1000 #ms 
+   - name: CH3_HBAT_BF2_byte
+     driver: I2C_RCU
+     devreg:  HBAT3.XY
+     bitoffset: 0
+     width: 8
+     rw:  rw
+     dtype: uint8
      dim: 32
-     wait: 1000
+     wait: 1000 #ms 
+
+   - name: [RCU_IO4_GPIO1,RCU_IO4_GPIO2]
+     driver: I2C_RCU
+     devreg:  [IO4.GPIO1,IO4.GPIO2]
+     width: 8
+     rw:  ro
+     dtype: uint8
+
 
 methods:
   - name: RECVTR_Init #Called after startup to load. Should have all stored registers  
@@ -594,3 +642,30 @@ methods:
      - IO1.CONF2: 0
      - IO4.CONF1: 0xC0 #pin 0x40, 0x80 not used
      - IO4.CONF2: 0xF8 
+
+  - name: ADC_on
+    driver: I2C_RCU
+    debug: True
+    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
+     - 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
+     - 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
+     - CH1_ADC_shutdown : 1
+     - CH2_ADC_shutdown : 1
+     - CH3_ADC_shutdown : 1
+     - WAIT: 100         #ms to wait
+     - CH1_ADC_shutdown : 0
+     - CH2_ADC_shutdown : 0
+     - CH3_ADC_shutdown : 0
\ No newline at end of file
diff --git a/pypcc/i2cdirect.py b/pypcc/i2cdirect.py
index 2c1ff4e4cbf2ea6ba192191e556d19afa6e5a953..cbbe0f779b786a8561fb1a5e3dba97c3b9ff75af 100644
--- a/pypcc/i2cdirect.py
+++ b/pypcc/i2cdirect.py
@@ -36,6 +36,16 @@ class i2cdirect():
         data=data[0].data
         return byte2var(var1,data),var1
 
+    def GetRaw(self,name):
+        varid=self.conf.getvarid(name);
+        if varid is None:
+            logging.error("Variable "+name+" not found")
+            return None,None
+        var1=self.conf.getvars()[varid]
+        drv=var1.get('drivercls');
+        data=drv.OPCUAReadVariable(varid,var1,[])
+        return data,var1
+
 
     def SetVal(self,name,data):
         varid=self.conf.getvarid(name);
diff --git a/pypcc/i2cserv/hba1.py b/pypcc/i2cserv/hba1.py
index 65d1fe56815757ed261fb9164c2dca1145f949c7..cf8a353accfb4f53e4578919db5cc0a03a323d45 100644
--- a/pypcc/i2cserv/hba1.py
+++ b/pypcc/i2cserv/hba1.py
@@ -28,10 +28,11 @@ class hba1(hwdev):
   def OPCUASetVariable(self,varid,var1,data,mask):
        logging.info(str(("HBA set Var",var1['name'],len(data),len(mask),data[:32*3],mask[:12])))
        self.conf['parentcls'].SetGetVarValueMask(var1,data,mask,getalso=False)
-       RCUmask=[(mask[i*3] | mask[i*3+1] | mask[i*3+2]) for i in range(32)]
+       if len(mask)>0:
+         RCUmask=[(mask[i*3] | mask[i*3+1] | mask[i*3+2]) for i in range(32)]
 #       print(RCUmask)
        #Wait for PPS if required else wait a bit
-       self.conf['parentcls'].SetSwitchMask(RCUmask)
+         self.conf['parentcls'].SetSwitchMask(RCUmask)
        if var1.get('wait')=="PPS":
          logging.info("HBA wait PPS")
          channel=GPIO.wait_for_edge(self.pin,GPIO.RISING,timeout=1500)
@@ -82,4 +83,4 @@ class hba1(hwdev):
       logging.debug("getHba addr=0x%x reg=0x%x data=%s",addr,reg,str((data)))
       if data is None:  return False
 #      data[:]=[255]*len(data)
-      return True;
\ No newline at end of file
+      return True;
diff --git a/pypcc/i2cserv/i2c_dev.py b/pypcc/i2cserv/i2c_dev.py
index 2e9900af3645b1f578b56d0d1210ed9feac93d65..12cfffac1ada88507493f0b523556fa4fa1ac707 100644
--- a/pypcc/i2cserv/i2c_dev.py
+++ b/pypcc/i2cserv/i2c_dev.py
@@ -149,7 +149,7 @@ class i2c_dev(hwdev):
     def i2csetget(self,*args,**kwargs):
        return self.conf['parentcls'].i2csetget(*args,**kwargs)
     
-    def SetGetVarValueMask(self,var1,data,mask):
+    def SetGetVarValueMask(self,var1,data,mask,getalso=False):
         Step,Step2=GetSteps(var1);
         value1=[0]*Step*Step2;
 #        Step=(len(var1['devreg']) if isinstance(var1['devreg'],list) else 1)
diff --git a/python_scripts/RCU_test1.py b/python_scripts/RCU_test1.py
index 5ba14022d39e8eee6b02a79bee75001b0a980ec1..3ae209ee0b91b68e4ae8ec44cb5fc6f64a3dcbba 100644
--- a/python_scripts/RCU_test1.py
+++ b/python_scripts/RCU_test1.py
@@ -5,7 +5,7 @@ import logging
 logging.basicConfig(level="ERROR",format='%(asctime)s [%(levelname)-8s,%(filename)-20s:%(lineno)-3d] %(message)s')
 #logging.basicConfig(level="DEBUG",format='%(asctime)s [%(levelname)-8s,%(filename)-20s:%(lineno)-3d] %(message)s')
 
-d1=i2cdirect('RECVTR_LB_TEST.yaml')
+d1=i2cdirect('RECVTR_LB_TEST')
 
 def RCU_off(d1):
  logging.warning("Switch RCU Power off");