Index: fact/FADctrl/FAD.cc
===================================================================
--- fact/FADctrl/FAD.cc	(revision 10617)
+++ fact/FADctrl/FAD.cc	(revision 10642)
@@ -653,5 +653,5 @@
 	}
 	
-	PrintMessage("\nLast trigger: ID %d    Type %d   CRC %d     Run number %d\n", S.TriggerID, S.TriggerType, S.TriggerCRC, S.Runnumber);
+	PrintMessage("\nTrigger ID: Num %d    Type %d   CRC %d     Run number %d\n", S.TriggerNum, S.TriggerType, S.TriggerCRC, S.Runnumber);
   } // for()
 }
@@ -786,5 +786,5 @@
   // Open calibration data file
   string Filename = string(getenv("HOME"))+"/FAD_ACal";
-  FILE *File = fopen(Filename.c_str(), "ab");
+  FILE *File = fopen(Filename.c_str(), "wb");
 
   if (File == NULL) {
@@ -806,5 +806,5 @@
   if (fclose(File) != 0) PrintMessage("Could not close calibration file '%s'\n", Filename.c_str());
   
-  PrintMessage("Appended amplitude calibration to file '%s'\n", Filename.c_str());
+  PrintMessage("Wrote amplitude calibration to file '%s'\n", Filename.c_str());
 }
 
@@ -952,9 +952,9 @@
 
 	  // Update event header with ID and Type of current board
-	  EHeader->EventNumber = S.TriggerID;
+	  EHeader->EventNumber = S.TriggerNum;
 	  EHeader->TriggerType = S.TriggerType;
 
 	  // Register event number for data writing below
-	  EventNumbers[Brd] = S.TriggerID;
+	  EventNumbers[Brd] = S.TriggerNum;
 
 	  // Write trigger cells
Index: fact/FADctrl/FADBoard.cc
===================================================================
--- fact/FADctrl/FADBoard.cc	(revision 10617)
+++ fact/FADctrl/FADBoard.cc	(revision 10642)
@@ -54,7 +54,9 @@
   DIM_Rate = new DimService((ID.str()+"RateHz").c_str(), Status.Rate);
   DIM_Frequency = new DimService((ID.str()+"Frequency").c_str(), Status.Frequency);
+  DIM_TriggerNum = new DimService((ID.str()+"TriggerNum").c_str(), (char *) "I", &Status.TriggerNum, sizeof(Status.TriggerNum));
   DIM_Temp = new DimService((ID.str()+"Temperature").c_str(), (char *) "F", NULL, 0);
   DIM_DAC = new DimService((ID.str()+"DAC").c_str(), (char *) "S", NULL, 0);
   DIM_ROI = new DimService((ID.str()+"ROI").c_str(), (char *) "S", NULL, 0);
+  DIM_ACalData = new DimService((ID.str()+"ACalData").c_str(), (char *) "F", NULL, 0);
 
   // Create thread that connects and receives data
@@ -99,7 +101,9 @@
   delete DIM_Rate;
   delete DIM_Frequency;
+  delete DIM_TriggerNum;
   delete DIM_Temp;
   delete DIM_DAC;
-  delete DIM_ROI;  
+  delete DIM_ROI;
+  delete DIM_ACalData;  
   delete[] Name;
 }
@@ -334,4 +338,16 @@
   	Send(DACCmd, sizeof(DACCmd));
 	
+	// Update DIM service with calibration information
+	for (unsigned int i=0; i<NChips; i++) {
+	  for (unsigned int j=0; j<NChannels; j++) {
+		for (unsigned int k=0; k<NBins; k++) {
+		  ACalData[0][i][j][k] = ACalib.Baseline[i][j][k];
+		  ACalData[1][i][j][k] = ACalib.Gain[i][j][k];
+		  ACalData[2][i][j][k] = ACalib.Secondary[i][j][k];
+		}
+	  }
+	}
+	DIM_ACalData->updateService(ACalData, 3*NChips*NChannels*NBins*sizeof(float));
+
 	State = wait;
 	break;
@@ -456,5 +472,5 @@
 	  Status.BoardTime = ntohl(Header->time);
 	  Status.EventCounter = ntohl(Header->fad_evt_counter);
-	  Status.TriggerID = ntohl(Header->trigger_id);
+	  Status.TriggerNum = ntohl(Header->trigger_id);
 	  Status.Runnumber = ntohl(Header->runnumber);
 	  Status.TriggerType = ntohs(Header->trigger_type);
@@ -521,5 +537,5 @@
 
 		if (PrevStatus.Frequency != Status.Frequency) DIM_Frequency->updateService();
-
+		if (PrevStatus.TriggerNum != Status.TriggerNum) DIM_TriggerNum->updateService();
 		if (PrevStatus.Rate != Status.Rate) DIM_Rate->updateService();
 		
Index: fact/FADctrl/FADBoard.h
===================================================================
--- fact/FADctrl/FADBoard.h	(revision 10617)
+++ fact/FADctrl/FADBoard.h	(revision 10642)
@@ -28,6 +28,6 @@
 	int Socket;
 	pthread_mutex_t Mutex;
-	DimService *DIM_Name, *DIM_Status, *DIM_ID, *DIM_Frequency;
-	DimService *DIM_Rate, *DIM_Temp, *DIM_ROI, *DIM_DAC;
+	DimService *DIM_Name, *DIM_Status, *DIM_ID, *DIM_Frequency, *DIM_TriggerNum;
+	DimService *DIM_Rate, *DIM_Temp, *DIM_ROI, *DIM_DAC, *DIM_ACalData;
 
 	void ReadLoop();
@@ -51,5 +51,5 @@
 	  float Rate;
 
-	  uint32_t TriggerID;
+	  uint32_t TriggerNum;
 	  uint32_t Runnumber;
 	  uint16_t TriggerType;
@@ -85,4 +85,6 @@
 	} ACalib;
 
+    float ACalData[3][NChips][NChannels][NBins]; // for DIM service
+	
 	void Send(const void *, size_t);
 	void Send(unsigned short);
