Index: /trunk/FACT++/gui/FactGui.h
===================================================================
--- /trunk/FACT++/gui/FactGui.h	(revision 11178)
+++ /trunk/FACT++/gui/FactGui.h	(revision 11179)
@@ -390,4 +390,5 @@
     DimStampedInfo fDimFadConnections;
     DimStampedInfo fDimFadFwVersion;
+    DimStampedInfo fDimFadDNA;
     DimStampedInfo fDimFadStatus;
     DimStampedInfo fDimFadStatistics;
@@ -1112,4 +1113,30 @@
 
         SetLedColor(fFadLedFwVersion, d.qos?kLedGreen:kLedOrange, d.time);
+    }
+
+    void handleFadDNA(const DimData &d)
+    {
+        if (!CheckSize(d, 40*sizeof(uint64_t)))
+            return;
+
+        const uint64_t *ptr = d.ptr<uint64_t>();
+
+        ostringstream tip;
+        tip << "<table width='100%'>";
+        tip << "<tr><th>Crate</th><td></td><th>Board</th><td></td><th>DNA</th></tr>";
+
+        for (int i=0; i<40; i++)
+        {
+            tip << dec;
+            tip << "<tr>";
+            tip << "<td align='center'>" << i/10 << "</td><td>:</td>";
+            tip << "<td align='center'>" << i%10 << "</td><td>:</td>";
+            tip << hex;
+            tip << "<td>0x" << setfill('0') << setw(16) << ptr[i] << "</td>";
+            tip << "</tr>";
+        }
+        tip << "</table>";
+
+        fFadDNA->setText(tip.str().c_str());
     }
 
@@ -1971,4 +1998,7 @@
             return PostInfoHandler(&FactGui::handleFadFwVersion);
 
+        if (getInfo()==&fDimFadDNA)
+            return PostInfoHandler(&FactGui::handleFadDNA);
+
         if (getInfo()==&fDimFadStatus)
             return PostInfoHandler(&FactGui::handleFadStatus);
@@ -2415,4 +2445,5 @@
         fDimFadConnections     ("FAD_CONTROL/CONNECTIONS",      (void*)NULL, 0, this),
         fDimFadFwVersion       ("FAD_CONTROL/FIRMWARE_VERSION", (void*)NULL, 0, this),
+        fDimFadDNA             ("FAD_CONTROL/DNA",              (void*)NULL, 0, this),
         fDimFadStatus          ("FAD_CONTROL/STATUS",           (void*)NULL, 0, this),
         fDimFadStatistics      ("FAD_CONTROL/STATISTICS",       (void*)NULL, 0, this)
Index: /trunk/FACT++/gui/design.ui
===================================================================
--- /trunk/FACT++/gui/design.ui	(revision 11178)
+++ /trunk/FACT++/gui/design.ui	(revision 11179)
@@ -52,5 +52,5 @@
       </property>
       <property name="currentIndex">
-       <number>0</number>
+       <number>3</number>
       </property>
       <property name="documentMode">
@@ -4464,11 +4464,11 @@
             </property>
            </widget>
-           <widget class="QTextEdit" name="textEdit">
+           <widget class="QTextEdit" name="fFadDNA">
             <property name="geometry">
              <rect>
               <x>10</x>
-              <y>310</y>
-              <width>181</width>
-              <height>51</height>
+              <y>280</y>
+              <width>271</width>
+              <height>81</height>
              </rect>
             </property>
@@ -4477,6 +4477,6 @@
             <property name="geometry">
              <rect>
-              <x>20</x>
-              <y>290</y>
+              <x>10</x>
+              <y>260</y>
               <width>57</width>
               <height>15</height>
@@ -4852,5 +4852,5 @@
             <property name="geometry">
              <rect>
-              <x>370</x>
+              <x>300</x>
               <y>180</y>
               <width>161</width>
@@ -4868,6 +4868,6 @@
             <property name="geometry">
              <rect>
-              <x>540</x>
-              <y>170</y>
+              <x>470</x>
+              <y>180</y>
               <width>18</width>
               <height>25</height>
Index: /trunk/FACT++/src/EventBuilderWrapper.h
===================================================================
--- /trunk/FACT++/src/EventBuilderWrapper.h	(revision 11178)
+++ /trunk/FACT++/src/EventBuilderWrapper.h	(revision 11179)
@@ -722,4 +722,5 @@
     DimDescribedService fDimFwVersion;
     DimDescribedService fDimStatus;
+    DimDescribedService fDimDNA;
     DimDescribedService fDimStatistics;
 
@@ -742,4 +743,5 @@
         fDimFwVersion   ("FAD_CONTROL/FIRMWARE_VERSION", "F:43", ""),
         fDimStatus      ("FAD_CONTROL/STATUS",           "S:42", ""),
+        fDimDNA         ("FAD_CONTROL/DNA",              "X:40", ""),
         fDimStatistics  ("FAD_CONTROL/STATISTICS",       "X:8",  ""),
         fDebugStream(false), fDebugRead(false)
@@ -1453,5 +1455,4 @@
         {
             const pair<bool, boost::array<uint16_t,43>> ver = Compare(&h, &h.fVersion);
-            //Print("Ver", ver);
 
             pair<bool, boost::array<float,43>> data;
@@ -1467,4 +1468,19 @@
         }
 
+        /*
+         uint16_t fTriggerType;
+         uint32_t fTriggerId;
+         uint32_t fEventCounter;
+         uint32_t fFreqRefClock;
+         uint16_t fAdcClockPhaseShift;
+         uint16_t fNumTriggersToGenerate;
+         uint16_t fTriggerGeneratorPrescaler;
+         uint64_t fDNA; // Xilinx DNA
+         uint32_t fTimeStamp;
+         uint32_t fRunNumber;
+         int16_t  fTempDrs[kNumTemp];   // In units of 1/16 deg(?)
+         uint16_t fDac[kNumDac];
+         */
+
         if (old.fTriggerType != h.fTriggerType)
         {
@@ -1477,4 +1493,11 @@
             const pair<bool, boost::array<uint32_t,43>> run = Compare(&h, &h.fRunNumber);
             Print("Run", run);
+        }
+
+        if (old.fDNA != h.fDNA)
+        {
+            const pair<bool, boost::array<uint64_t,43>> dna = Compare(&h, &h.fDNA);
+            fDimDNA.setData(const_cast<uint64_t*>(dna.second.data())+3, 40*sizeof(uint64_t));
+            fDimDNA.updateService();
         }
 
Index: /trunk/FACT++/src/fad.cc
===================================================================
--- /trunk/FACT++/src/fad.cc	(revision 11178)
+++ /trunk/FACT++/src/fad.cc	(revision 11179)
@@ -324,4 +324,5 @@
         fHeader.fBoardId = (fBoardId%10) | ((fBoardId/10)<<8);
         fHeader.fRunNumber = 1;
+        fHeader.fDNA = reinterpret_cast<uint64_t>(this);
         fHeader.fStatus = 0xf<<12 |
             FAD::EventHeader::kDenable    |
@@ -330,4 +331,5 @@
             FAD::EventHeader::kDcmReady   |
             FAD::EventHeader::kSpiSclk;
+
 
         fStartTime = Time(Time::utc).UnixTime();
