diff --git a/bin/recvtr2 b/bin/recvtr2
index 0469cecb2de9deefbe5098a9d41b7992d173fc67..471721afd670a4837318f862fee0ec17834b40b6 100755
--- a/bin/recvtr2
+++ b/bin/recvtr2
@@ -9,9 +9,10 @@ then
    conffile="RECVTR_LB"
 fi
 
+#CCD should not run
 if [ $lmp_id -eq 10 ] || [ $lmp_id -eq 21 ] 
 then
-   conffile="CCDTR"
+   conffile="None"
 fi
 
 echo $lmp_id,$conffile
diff --git a/pypcc/config/CCDTR_EEPROM.yaml b/pypcc/config/CCDTR_EEPROM.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..b5e902ef859ffa9f680074a26a764f6438afee5d
--- /dev/null
+++ b/pypcc/config/CCDTR_EEPROM.yaml
@@ -0,0 +1,89 @@
+version: "1.0"
+description: "1234"
+
+drivers:
+ - name: I2C
+   type: i2c
+   parameters: [1] #I2C port number
+ - name: I2C_CLK
+   type: i2c_dev #I2C devices
+   parent: I2C
+   status: CCDTR_I2C_error
+
+#This is the I2C devices in the RCU
+device_registers:
+ - 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
+
+
+
+variables:
+  - name: CCDTR_I2C_error
+    description: 0=good, >0 indicates an I2C communication error to CCD
+    driver: I2C_CLK
+    rw:  ro #server RW variable, not linked to IO
+    dtype: uint8
+
+  - name: CCDTR_monitor_rate
+    description: Monitor rate in seconds
+    rw:  variable 
+    dtype: uint8
+
+  - name: CCDTR_translator_busy
+    description: True when I2C lines are busy
+    rw:  ro #server variable, not linked to IO
+    dtype: boolean
+    dim: 1
+
+  - name: CCD_PCB_ID
+    description: Unique PCB ID
+    driver: I2C_CLK
+    devreg:  ROM.ID
+    width: 32
+    rw:  ro
+    dtype: uint32
+
+  - name: CCD_PCB_version
+    description: PCB version number
+    driver: I2C_CLK
+    devreg:  ROM.Version
+    width: 0x80  #16 characters
+    rw:  ro
+    dtype: string
+
+  - name: CCD_PCB_number
+    description: PCB number
+    driver: I2C_CLK
+    devreg:  ROM.Serial
+    width: 0x80  #16 characters
+    rw:  ro
+    dtype: string
+
+
+
+methods:
+  - name: CCDTR_Init #Called after startup to load. Should have all stored registers  
+    driver: I2C_CLK
+    debug: True
+    instructions:   
+      - CCDTR_I2C_error : 0
+      - CCDTR_Update: 0
+
+  - name: CCDTR_Update
+    driver: I2C_CLK
+    debug: True
+    instructions:   
+      - CCD_PCB_ID : Update
+      - CCD_PCB_version : Update
+      - CCD_PCB_number : Update
diff --git a/pypcc/testing/check_ip.py b/pypcc/testing/check_ip.py
index a0b22090afd8eec2eb7993e36dbcca470826a0ba..9d1c268080ee45d07d3ddda2b09da8e125227e33 100644
--- a/pypcc/testing/check_ip.py
+++ b/pypcc/testing/check_ip.py
@@ -1,5 +1,6 @@
 IP_CCD=       '10.99.250.90'
 IP_APSCT_TEST='10.99.100.100'
+IP_UNKNOWN   ='10.99.250.99'
 #IP_APSCT_subrack='10.99.x.100'
 
 import logging
@@ -62,13 +63,16 @@ def check_ip():
  ID=get_LMP_ID()
  logging.info("LMP id="+hex(ID))
 
- ip_new=IP_CCD #default (CCD)
+ ip_new=IP_UNKNOWN #default (CCD)
  if ID==0x3F:  #APSCT in test setup
    ip_new=IP_APSCT_TEST
    logging.info("APSCT test setup, ip=%s"%ip_new)
  if ID in [0,1,2,3]: #APSCT in subrack
    ip_new='10.99.%i.100'%ID
    logging.info("APSCT subrack, ip=%s"%ip_new)
+ if ID in [21,10]:
+   ip_new=IP_CCD
+   logging.info("CCD detected, ip=%s"%ip_new)
 
  if (ip_new!=ip_current) and not(ip_current is None):
    logging.warning("Change IP to %s"%ip_new)
diff --git a/pypcc/testing/pitr_main.py b/pypcc/testing/pitr_main.py
index dbad246e30260ee83cfe99c284b4cff5ed475ed8..5aa6f657b3688162670dc21c8fd64f81e7fb3df8 100644
--- a/pypcc/testing/pitr_main.py
+++ b/pypcc/testing/pitr_main.py
@@ -4,12 +4,12 @@ import subprocess
 import signal
 import logging
 from queue import Queue
-#try:
-from .check_ip import check_ip
-from .setEEPROM import SetEEPROM
-#except:
-#from check_ip import check_ip
-#from setEEPROM import SetEEPROM
+try:
+ from .check_ip import check_ip
+ from .setEEPROM import SetEEPROM
+except:
+ from check_ip import check_ip
+ from setEEPROM import SetEEPROM
 
 port=4899
 
@@ -66,6 +66,7 @@ def start_translator(ObjectId,tr_action):
 
 if True:
     pcb_type=''
+    conffile=''
     i2c_nr=-1
     i2c1=subprocess.run(['i2cdetect','-y','1'],stdout=subprocess.PIPE).stdout.decode()
     i2c5=subprocess.run(['i2cdetect','-y','5'],stdout=subprocess.PIPE).stdout.decode()
@@ -74,9 +75,11 @@ if True:
     if i2c5[1]=='50': 
        logging.info("EEPROM detected on I2C 5")
        pcb_type='APSCT'
+       conffile='APSCTTR'
        i2c_nr=5
     elif i2c1[1]=='50': 
        logging.info("EEPROM detected on I2C 1")
+       conffile='CCDTR_EEPROM'
        pcb_type='CCD'
        i2c_nr=1
 
@@ -107,10 +110,10 @@ def testEEPROMcode(value):
 def EEPROM_code_changed():
 #   try:
    EEPROM_ID.set_value(byte2int(get_i2c('0xfc',4)))
-   value=SetEEPROM("APSCTTR","APSCT_PCB_number",None);
+   value=SetEEPROM(conffile,pcb_type+"_PCB_number",None);
    EEPROM_number.set_value(value)
    EEPROM_number_new.set_value(value)
-   value=SetEEPROM("APSCTTR","APSCT_PCB_version",None);
+   value=SetEEPROM(conffile,pcb_type+"_PCB_version",None);
    EEPROM_version.set_value(value)
    EEPROM_version_new.set_value(value)
 #   except:
@@ -125,6 +128,7 @@ def update_temperature():
 if True:
 #    global server,running,PCCobj,DEBUGobj,idx,sub;
     server = Server()
+    logging.getLogger('asyncua').setLevel(logging.ERROR)
     server.set_endpoint("opc.tcp://0.0.0.0:{}/".format(port))
 
     idx = server.register_namespace("http://lofar.eu")
@@ -184,11 +188,11 @@ if True:
                         EEPROM_code_changed()
           elif (nodeid==EEPROM_number_new.nodeid.Identifier):
                  if EEPROM_number_new.get_value()!=EEPROM_number.get_value():
-                        newvalue=SetEEPROM("APSCTTR","APSCT_PCB_number",EEPROM_number_new.get_value());
+                        newvalue=SetEEPROM(conffile,pcb_type+"_PCB_number",EEPROM_number_new.get_value());
                         EEPROM_number.set_value(newvalue)
           elif (nodeid==EEPROM_version_new.nodeid.Identifier):
                  if EEPROM_version_new.get_value()!=EEPROM_version.get_value():
-                        newvalue=SetEEPROM("APSCTTR","APSCT_PCB_version",EEPROM_version_new.get_value());
+                        newvalue=SetEEPROM(conffile,pcb_type+"_PCB_version",EEPROM_version_new.get_value());
                         EEPROM_version.set_value(newvalue)
 #      sleep(10)
 #P1.GetVarNames("",AddVar);
diff --git a/pypcc/testing/setEEPROM.py b/pypcc/testing/setEEPROM.py
index 6fc18e19799e71997e8cf943784a6ee04c43a7cf..c196178d0c010b6b26a6211e29105873cfe8f2e3 100644
--- a/pypcc/testing/setEEPROM.py
+++ b/pypcc/testing/setEEPROM.py
@@ -106,7 +106,13 @@ def SetEEPROM(configfile,varSet,value):
 
 if __name__=="__main__":
   logging.basicConfig(level="INFO",format='%(asctime)s [%(levelname)-8s,%(filename)-20s:%(lineno)-3d] %(message)s')
-  newval=SetEEPROM("APSCTTR","APSCT_PCB_version","123")
-  print("new value=",newval)
-  newval=SetEEPROM("APSCTTR","APSCT_PCB_version","123")
-  print("new value=",newval)
+  if False:
+    newval=SetEEPROM("APSCTTR","APSCT_PCB_version","123")
+    print("new value=",newval)
+    newval=SetEEPROM("APSCTTR","APSCT_PCB_version","123")
+    print("new value=",newval)
+  else:
+    newval=SetEEPROM("CCDTR","CCD_PCB_version","123")
+    print("new value=",newval)
+    newval=SetEEPROM("CCDTR","CCD_PCB_version","123")
+    print("new value=",newval)