diff --git a/config/UNB2.yaml b/config/UNB2.yaml
index e187ac81108168d9c823cbb708fb5460c79e4693..7ba4245c941563ed6e794cb2a87a9c1f9788e94a 100644
--- a/config/UNB2.yaml
+++ b/config/UNB2.yaml
@@ -1,41 +1,37 @@
 version: "0.0"
-description: "UNB2 LTS" 
+description: "UNB2 DTS first draft" 
 
 drivers:
  - name: I2C1
-   type: UNB2_switch #Special driver mapping internal i2c line address to the 3 switches. 
-   #Address -> switch states       -> array of i2c-devices
-   #00:2F   -> [0:1][0:3][0:3,6:7] -> QSFP
-   #30:38   -> [0:1][0:3][4]       -> DDR4
-   #40:48   -> [0:1][0:3][5]       -> FPGA_PS
-   #80:81   -> [0:1][4]            -> PS
-   #A0:A1   -> [0:1][5]            -> Front panel
+   type: UNB2_switch 
    devreg: [APSCT_SWITCH.MASK,UB2_SWITCH1.MASK,UB2_SWITCH2.MASK] 
    parameters: [1,0,0,0] #I2C port number, 3x switch reset pins 
-   
- - name: d_QSFP 
-   type: i2c_array #An array of similar devices connected to an I2C switch
+ - name: switch_UNB2
+   type: i2c_array 
    parent: I2C1
-   parameters: [0,48] #start,number of QSFP (2 UB x 2 nodes * 6 QSFP)
- - name: d_DDR4
+   parameters: [0,1] 
+ - name: switch_PS
    type: i2c_array 
    parent: I2C1
-   parameters: [0x30,8] 
- - name: d_FPGA_PS
+   parameters: [0,1,  4] 
+ - name: switch_FP
    type: i2c_array 
    parent: I2C1
-   parameters: [0x40,48] 
- - name: d_PS
+   parameters: [0,1,  5] 
+ - name: switch_QSFP 
+   type: i2c_array #An array of similar devices connected to an I2C switch
+   parent: I2C1
+   parameters: [0,1,  0,3,  0,3, 6,7] #Parameters: APSCT_Switch, main switch, 2nd switch, 2nd switch
+ - name: switch_DDR4
    type: i2c_array 
    parent: I2C1
-   parameters: [0x80,2] 
- - name: d_front_panel
+   parameters: [0,1,  0,3,  4,4]
+ - name: switch_FPGA_PS
    type: i2c_array 
    parent: I2C1
-   parameters: [0xA0,2] 
-# - name: GPIO
-#   type: GPIO
-#   parameters: [1] #pin numbers
+   parameters: [0,1,  0,3,  5,5] 
+ - name: GPIO
+   type: GPIO
 
   
 #This is the I2C devices in the RCU
@@ -76,44 +72,192 @@ device_registers:
     address: [0,1]  #Read / Write address different
     store: True
 
-- name: POL_FPGA_CORE
-  address: 0x01
-  driver: d_FPGA_PS
-  device: BMR4xx
-  registers:
-  - name: READ_VOUT
-    address: 0x8B
-  - name: READ_IOUT
-    address: 0x8C
-  - name: READ_TEMP
-    address: 0x8D
 
 variables:
+#When I2C bus timeout, bus_OK set to False.  Can we set to True again to retry.
+   - name: UNB2_I2C_bus_OK
+     driver: switch_UNB2
+     rw:  variable
+     dtype: boolean
+     dim: 2
+   - name: UNB2_I2C_bus_QSFP_OK
+     driver: switch_QSFP
+     rw:  variable
+     dtype: boolean
+     dim: 48
+   - name: UNB2_I2C_bus_DDR4_OK
+     driver: switch_QSFP
+     rw:  variable
+     dtype: boolean
+     dim: 8
+   - name: UNB2_I2C_bus_FPGA_PS_OK
+     driver: switch_FPGA_PS
+     rw:  variable
+     dtype: boolean
+     dim: 8
+   - name: UNB2_I2C_bus_PS_OK
+     driver: switch_PS
+     rw:  variable
+     dtype: boolean
+     dim: 2
+
+##Central MP for whole Uniboard2
    - name: UNB2_mask
      rw:  variable #translator variable
      dtype: boolean
      dim: 2
 
+   - name: UNB2_Power_ON_OFF
+     driver: GPIO
+     mask: UNB2_mask
+     width: 1
+     rw:  rw
+     dtype: boolean
+     dim: 2
+
    - name: UNB2_Front_Panel_LED
-     description: LED on front panel
+     description: bit 0=Red, 1=Blue, 2=Green
      mask: UNB2_mask
+     driver: switch_FP
      devreg: FP_IO.GPIO
-     driver: d_front_panel
-     rw:  rw
-     dtype: uint8
      bitoffset: 4
      width: 3
+     rw:  rw
+     dtype: uint8
+     dim: 2
+
+   - name: UNB2_EEPROM_Serial_Number
+     driver: switch_UNB2
+     devreg: 0x50.0
+     width: 80  #10 characters
+     rw:  ro
+     dtype: string
+     dim: 2
+
+   - name: UNB2_EEPROM_ID
+     driver: switch_UNB2
+     mask: UNB2_I2C_bus_OK
+     devreg: 0x50.0xFC
+     width: 32
+     rw:  ro
+     dtype: uint32
+     dim: 2
+
+   - name: [UNB2_DC_DC_48V_12V_VIN,UNB2_DC_DC_48V_12V_VOUT,UNB2_DC_DC_48V_12V_IOUT,UNB2_DC_DC_48V_12V_TEMP]
+     driver: switch_PS
+     mask: UNB2_I2C_bus_PS_OK
+     devreg:  [0x2C.0x88,0x2C.0x8B,0x2C.0x8C,0x2C.0x8D]
+     width: 16
+     rw:  ro
+     dtype: double
+     scale: 1.2207e-4 #2^-13
      dim: 2
 
-   - name: UNB2_POL_FPGA_CORE_VOUT
-     driver: d_FPGA_PS
-     devreg:  POL_FPGA_CORE.READ_VOUT
+   - name: [UNB2_POL_QSFP_N01_VOUT,UNB2_POL_QSFP_N01_IOUT,UNB2_POL_QSFP_N01_TEMP,UNB2_POL_QSFP_N23_VOUT,UNB2_POL_QSFP_N23_IOUT,UNB2_POL_QSFP_N23_TEMP]
+     driver: switch_PS
+     mask: UNB2_I2C_bus_PS_OK
+     devreg:  [0x2.0x8B,0x2.0x8C,0x2.0x8D,0x1.0x8B,0x1.0x8C,0x1.0x8D]
+     width: 16
+     rw:  ro
+     dtype: double
+     scale: 1.2207e-4 #2^-13
+     dim: 2
+
+   - name: [UNB2_POL_SWITCH_1V2_VOUT,UNB2_POL_SWITCH_1V2_IOUT,UNB2_POL_SWITCH_1V2_TEMP,UNB2_POL_SWITCH_PHY_VOUT,UNB2_POL_SWITCH_PHY_IOUT,UNB2_POL_SWITCH_PHY_TEMP]
+     driver: switch_PS
+     mask: UNB2_I2C_bus_PS_OK
+     devreg:  [0xF.0x8B,0xF.0x8C,0xF.0x8D,0xE.0x8B,0xE.0x8C,0xE.0x8D]
+     width: 16
+     rw:  ro
+     dtype: double
+     scale: 1.2207e-4 #2^-13
+     dim: 2
+
+   - name: [UNB2_POL_CLOCK_VOUT,UNB2_POL_CLOCK_IOUT,UNB2_POL_CLOCK_TEMP]
+     driver: switch_PS
+     mask: UNB2_I2C_bus_PS_OK
+     devreg:  [0xD.0x8B,0xD.0x8C,0xD.0x8D]
+     width: 16
+     rw:  ro
+     dtype: double
+     scale: 1.2207e-4 #2^-13
+     dim: 2
+
+##Local MP per FPGA node
+   - name: UNB2_FPGA_DDR4_SLOT_TEMP
+     description: Signed I2C!
+     driver: switch_DDR4
+     mask: UNB2_I2C_bus_DDR4_OK
+     devreg:  [0x18.0x5,0x19.0x5]
+     width: 13
+     rw:  ro
+     dtype: double
+     scale: 0.0625 
+     dim: 16
+
+   - name: UNB2_FPGA_DDR4_SLOT0_PART_NUMBER
+     driver: switch_DDR4
+     mask: UNB2_I2C_bus_DDR4_OK
+     devreg:  [0x18.0x149,0x19.0x149]
+     width: 160
+     rw:  ro
+     dtype: string
+     dim: 16
+
+   - name: [UNB2_POL_FPGA_CORE_VOUT,UNB2_FPGA_POL_CORE_IOUT,UNB2_FPGA_POL_CORE_TEMP,UNB2_FPGA_POL_ERAM_VOUT,UNB2_FPGA_POL_ERAM_IOUT,UNB2_FPGA_POL_ERAM_TEMP]
+     driver: switch_FPGA_PS
+     mask: UNB2_I2C_bus_FGPA_PS_OK
+     devreg:  [0x1.0x8B,0x1.0x8C,0x1.0x8D,0xD.0x8B,0xD.0x8C,0xD.0x8D]
+     width: 16
+     rw:  ro
+     dtype: double
+     scale: 1.2207e-4 #2^-13
+     dim: 8
+
+   - name: [UNB2_FPGA_POL_RXGXB_VOUT,UNB2_FPGA_POL_RXGXB_IOUT,UNB2_FPGA_POL_RXGXB_TEMP,UNB2_FPGA_POL_TXGXB_VOUT,UNB2_FPGA_POL_TXGXB_IOUT,PUNB2_OL_FPGA_TXGXB_TEMP]
+     driver: switch_FPGA_PS
+     mask: UNB2_I2C_bus_FGPA_PS_OK
+     devreg:  [0xE.0x8B,0xE.0x8C,0xE.0x8D,0xF.0x8B,0xF.0x8C,0xF.0x8D]
+     width: 16
+     rw:  ro
+     dtype: double
+     scale: 1.2207e-4 #2^-13
+     dim: 8
+
+   - name: [UNB2_FPGA_POL_HGXB_VOUT,UNB2_FPGA_POL_HGXB_IOUT,UNB2_FPGA_POL_HGXB_TEMP,UNB2_FPGA_POL_PGM_VOUT,UNB2_FPGA_POL_PGM_IOUT,UNB2_FPGA_POL_PGM_TEMP]
+     driver: switch_FPGA_PS
+     mask: UNB2_I2C_bus_FGPA_PS_OK
+     devreg:  [0x10.0x8B,0x10.0x8C,0x10.0x8D,0x11.0x8B,0x11.0x8C,0x11.0x8D]
      width: 16
      rw:  ro
      dtype: double
      scale: 1.2207e-4 #2^-13
      dim: 8
-     mask: UNB2_node_mask
+
+
+
+##Local MP per FPGA node, QSFP cage
+   - name: UNB2_FPGA_QSFP_CAGE_TEMP
+     description: Signed I2C!
+     driver: switch_QSFP
+     mask: UNB2_I2C_bus_QSFP_OK
+     devreg:  0x50.0x16
+     width: 16
+     rw:  ro
+     dtype: double
+     scale: 0.0625 #TBC
+     dim: 48
+
+   - name: UNB2_FPGA_QSFP_CAGE_LOS
+     description: Bits for 4 TX, 4 RX channels
+     driver: switch_QSFP
+     mask: UNB2_I2C_bus_QSFP_OK
+     devreg:  0x50.0x03
+     width: 8
+     rw:  ro
+     dtype: uint8
+     dim: 48
+
 
 methods:
   - name: UNB2_on