diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/CMakeLists.txt b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/CMakeLists.txt
index a81ffae4d7d0e2bfd935690ba10042889178d52c..74626ab803c14e7a063ad448d9cd5a96a4ca4889 100644
--- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/CMakeLists.txt
+++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/CMakeLists.txt
@@ -102,6 +102,9 @@ atlas_add_test( TestMonReadNewConf
 atlas_add_test( TestParametersNewConf
                 SCRIPT python -m SCT_ConditionsAlgorithms.SCT_ConditionsParameterTestAlgConfig
                 PROPERTIES TIMEOUT 600 )
+atlas_add_test( TestReadoutNewConf
+                SCRIPT python -m SCT_ConditionsAlgorithms.SCT_ReadoutTestAlgConfig
+                PROPERTIES TIMEOUT 600 )
 atlas_add_test( TestRodVetoNewConf
                 SCRIPT python -m SCT_ConditionsAlgorithms.SCT_RODVetoTestAlgConfig
                 PROPERTIES TIMEOUT 600 )
diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/python/SCT_ReadoutTestAlgConfig.py b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/python/SCT_ReadoutTestAlgConfig.py
new file mode 100644
index 0000000000000000000000000000000000000000..ed4a7cc2f0f760b7c8c8be42d0ef3c97cbf173b3
--- /dev/null
+++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/python/SCT_ReadoutTestAlgConfig.py
@@ -0,0 +1,81 @@
+"""Define method to configure and test SCT_ReadoutTestAlg
+
+Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
+"""
+from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
+from AthenaConfiguration.ComponentFactory import CompFactory
+
+def SCT_ReadoutTestAlgCfg(flags, name="SCT_ReadoutTestAlg", **kwargs):
+    """Return a configured SCT_ReadoutTestAlg"""
+    acc = ComponentAccumulator()
+    from InDetConfig.InDetRecToolConfig import SCT_ReadoutToolCfg
+    kwargs.setdefault("SCT_ReadoutTool", acc.popToolsAndMerge(SCT_ReadoutToolCfg(flags)))
+
+    # Module type and link status
+    # kwargs.setdefault("ModuleId", 143704064) # Endcap (default is barrel)
+    # kwargs.setdefault("LinkOStatus", False)  # Link 0 disabled (default is 'good')
+    # kwargs.setdefault("Link1Status", False)  # Link 1 disabled (default is 'good')
+
+    # Some possible chip configs strings
+    masterChip       = "10110000000001"
+    slaveChip        = "10110000000101"
+    # slaveChipIn1     = "10110000010101"
+    # slaveChipOut1    = "10110000001101"
+    endChip          = "10110000000111"
+    # masterAndEndChip = "10110000000011"
+
+    # Some test module configs
+    defaultLink            = [masterChip] + [slaveChip]*4 + [endChip]
+    # noEndLink              = [masterChip] + [slaveChip]*5
+    # endAt2Link             = [masterChip] + [slaveChip] + [endChip] + [slaveChip]*3
+    # bypass2Link            = [masterChip] + [slaveChipIn1] + [slaveChip] + [slaveChipOut1]  + [slaveChip] + [endChip]
+    # master3Link            = [slaveChip]*3 + [masterChip] + [slaveChip] + [endChip]
+    # noMapped4Link          = [masterChip] + [slaveChip]*3 + [slaveChipIn1] + [endChip]
+    # nothingTalkingTo2Link  = [masterChip] + [slaveChip] + [slaveChipIn1] + [slaveChip]*2 + [endChip]
+    # allExcept1Link0Mod     = [masterChip] + [slaveChip]*4 + [slaveChipIn1] + [slaveChipOut1] + [masterAndEndChip] + [slaveChip]*3 + [endChip]
+    # allLink0EndcapMod      = [masterChip] + [slaveChip]*10 + [endChip]
+    # allLink1EndcapMod      = [slaveChip]*5 + [endChip] + [masterChip] + [slaveChip]*5
+    # infiniteEndcapMod      = [masterChip] + [slaveChip]*11
+
+    kwargs.setdefault("ChipConfigurationList", defaultLink*2)
+    # kwargs.setdefault("ChipConfigurationList", defaultLink + endAt2Link)
+    # kwargs.setdefault("ChipConfigurationList", bypass2Link + defaultLink)
+    # kwargs.setdefault("ChipConfigurationList", master3Link + defaultLink)
+    # kwargs.setdefault("ChipConfigurationList", defaultLink + noMapped4Link)
+    # kwargs.setdefault("ChipConfigurationList", defaultLink + nothingTalkingTo2Link)
+    # kwargs.setdefault("ChipConfigurationList", noEndLink + defaultLink)
+    # kwargs.setdefault("ChipConfigurationList", allExcept1Link1Mod)
+    # kwargs.setdefault("ChipConfigurationList", allLink0EndcapMod)
+    # kwargs.setdefault("ChipConfigurationList", allLink1EndcapMod)
+    # kwargs.setdefault("ChipConfigurationList", infiniteEndcapMod)
+
+    acc.addEventAlgo(CompFactory.SCT_ReadoutTestAlg(**kwargs))
+    return acc
+
+if __name__=="__main__":
+    from AthenaCommon.Logging import log
+    from AthenaCommon.Constants import INFO
+    log.setLevel(INFO)
+
+    from AthenaCommon.Configurable import Configurable
+    Configurable.configurableRun3Behavior=1
+    
+    from AthenaConfiguration.AllConfigFlags import ConfigFlags
+    ConfigFlags.Input.isMC = True
+    ConfigFlags.Input.ProjectName = "mc16_13TeV"
+    ConfigFlags.Input.RunNumber = 300000 # MC16c 2017 run number
+    ConfigFlags.addFlag("Input.InitialTimeStamp", 1500000000)
+    ConfigFlags.IOVDb.GlobalTag = "OFLCOND-MC16-SDR-18"
+    ConfigFlags.GeoModel.AtlasVersion = "ATLAS-R2-2015-03-01-00"
+    ConfigFlags.Detector.GeometrySCT = True
+    ConfigFlags.lock()
+
+    from AthenaConfiguration.MainServicesConfig import MainServicesCfg
+    cfg = MainServicesCfg(ConfigFlags)
+
+    from McEventSelector.McEventSelectorConfig import McEventSelectorCfg
+    cfg.merge(McEventSelectorCfg(ConfigFlags))
+
+    cfg.merge(SCT_ReadoutTestAlgCfg(ConfigFlags))
+
+    cfg.run(maxEvents=20)
diff --git a/InnerDetector/InDetConfig/python/InDetRecToolConfig.py b/InnerDetector/InDetConfig/python/InDetRecToolConfig.py
index d7b58eb7e96e446239af7d66bc8041e521ea5392..bd552697ff0b1389e3513f638f00f5cb32b5b616 100644
--- a/InnerDetector/InDetConfig/python/InDetRecToolConfig.py
+++ b/InnerDetector/InDetConfig/python/InDetRecToolConfig.py
@@ -375,6 +375,10 @@ def SCT_ConfigurationCondAlgCfg(flags, name="SCT_ConfigurationCondAlg", **kwargs
   kwargs.setdefault("SCT_CablingTool", acc.popPrivateTools())
   result.merge(acc)
 
+  acc = SCT_ReadoutToolCfg(flags)
+  kwargs.setdefault("SCT_ReadoutTool", acc.popPrivateTools())
+  result.merge(acc)
+
   result.addCondAlgo(CompFactory.SCT_ConfigurationCondAlg(name, **kwargs))
   return result
 
@@ -458,12 +462,29 @@ def SCT_ByteStreamErrorsToolCfg(flags, name="SCT_ByteStreamErrorsTool", **kwargs
   return result
 
 def SCT_CablingToolCfg(flags):
-    from SCT_Cabling.SCT_CablingConfig import SCT_CablingCondAlgCfg
-    result = SCT_CablingCondAlgCfg(flags)
+  result = ComponentAccumulator()
 
-    tool = CompFactory.SCT_CablingTool()
-    result.setPrivateTools(tool)
-    return result
+  # For SCT_ID used in SCT_CablingTool
+  from AtlasGeoModel.GeoModelConfig import GeoModelCfg
+  result.merge(GeoModelCfg(flags))
+
+  from SCT_Cabling.SCT_CablingConfig import SCT_CablingCondAlgCfg
+  result.merge(SCT_CablingCondAlgCfg(flags))
+
+  tool = CompFactory.SCT_CablingTool()
+  result.setPrivateTools(tool)
+  return result
+
+def SCT_ReadoutToolCfg(flags, name="SCT_ReadoutTool", **kwargs):
+  result = ComponentAccumulator()
+
+  acc = SCT_CablingToolCfg(flags)
+  kwargs.setdefault("SCT_CablingTool", acc.popPrivateTools())
+  result.merge(acc)
+
+  tool = CompFactory.SCT_ReadoutTool(**kwargs)
+  result.setPrivateTools(tool)
+  return result
 
 def SCT_TdaqEnabledToolCfg(flags, name="InDetSCT_TdaqEnabledTool", **kwargs):
   if flags.Input.isMC: