Index: trunk/FACT++/src/ftmctrl.cc
===================================================================
--- trunk/FACT++/src/ftmctrl.cc	(revision 11629)
+++ trunk/FACT++/src/ftmctrl.cc	(revision 11630)
@@ -678,8 +678,8 @@
     bool SetThreshold(int32_t patch, int32_t value)
     {
-        if (patch>159)
-            return false;
-
-        if (value<0 || value>0xffff)
+        if (patch>FTM::StaticData::kMaxPatchIdx)
+            return false;
+
+        if (value<0 || value>FTM::StaticData::kMaxDAC)
             return false;
 
@@ -689,5 +689,5 @@
 
             bool ident = true;
-            for (int i=0; i<160; i++)
+            for (int i=0; i<=FTM::StaticData::kMaxPatchIdx; i++)
                 if (data[i/4].fDAC[patch%4] != value)
                 {
@@ -699,5 +699,5 @@
                 return true;
 
-            for (int i=0; i<160; i++)
+            for (int i=0; i<=FTM::StaticData::kMaxPatchIdx; i++)
                 data[i/4].fDAC[i%4] = value;
 
@@ -2242,4 +2242,6 @@
                 !CheckConfigVal<uint16_t>(conf, data.kMaxIntensity,       "light-pulser.external.intensity.",     *it) ||
                 !CheckConfigVal<uint16_t>(conf, data.kMaxIntensity,       "light-pulser.internal.intensity.",     *it) ||
+                !CheckConfigVal<uint16_t>(conf, data.kMaxDAC,             "trigger.threshold.pixel.",             *it) ||
+                !CheckConfigVal<uint16_t>(conf, data.kMaxDAC,             "trigger.threshold.patch..",            *it) ||
                 0)
                 return 2;
@@ -2314,5 +2316,19 @@
             }
 
+            const uint16_t th0 = conf.GetDef<uint16_t>("trigger.threshold.pixel.", *it);
+            const uint16_t th1 = conf.GetDef<uint16_t>("trigger.threshold.patch.", *it);
+
+            for (int i=0; i<=FTM::StaticData::kMaxPatchIdx; i++)
+            {
+                data[i].fDAC[0] = th0;
+                data[i].fDAC[1] = th0;
+                data[i].fDAC[2] = th0;
+                data[i].fDAC[3] = th0;
+                data[i].fDAC[4] = th1;
+            }
+
             fConfigs[*it] = data;
+
+            // trigger.threshold.dac-0:
 
             /*
@@ -2397,4 +2413,6 @@
         ("trigger.disable-pixel.*",              vars<uint16_t>(), "")
         ("trigger.disable-patch.*",              vars<uint16_t>(), "")
+        ("trigger.threshold.pixel.*",            var<uint16_t>(),  "")
+        ("trigger.threshold.patch.*",            var<uint16_t>(),  "")
         ("ftu-report-interval.*",                var<uint16_t>(),  "")
         ("light-pulser.external.enable-group1.*", var<bool>(),     "Enable LED group 1 of external light pulser")
