Index: fact/tools/FAD/simple_daq/cmd_send.cpp
===================================================================
--- fact/tools/FAD/simple_daq/cmd_send.cpp	(revision 9904)
+++ fact/tools/FAD/simple_daq/cmd_send.cpp	(revision 9905)
@@ -2,5 +2,5 @@
 
 // Send commands to socket
-void cmd_send (char* Buffer, int Socket)
+void cmd_send (const char* Buffer, int Socket)
 {
 	int i;
@@ -38,5 +38,5 @@
 	}
 	
-    else if (strncmp (Buffer, "de\n", 2) == 0)
+    else if (strncmp (Buffer, "de\n", 3) == 0)
 	{
 		CMD_Buffer[0] = htons (CMD_DENABLE);
@@ -45,5 +45,35 @@
 	}
 	
-    else if (strncmp (Buffer, "dd\n", 2) == 0)
+    else if (strncmp (Buffer, "psup\n", 5) == 0)
+	{
+		CMD_Buffer[0] = htons (CMD_PS_DIRINC);
+		printf ("# increasing phase shift ->\n");
+		printf ("# 0x%.4X\n", ntohs (CMD_Buffer[0]));
+	}
+	
+    else if (strncmp (Buffer, "psdn\n", 5) == 0)
+	{
+		CMD_Buffer[0] = htons (CMD_PS_DIRDEC);
+		printf ("# decreasing phase shift ->\n");
+		printf ("# 0x%.4X\n", ntohs (CMD_Buffer[0]));
+	}
+	
+    else if (strncmp (Buffer, "psreset\n", 8) == 0)
+	{
+		CMD_Buffer[0] = htons (CMD_PS_RESET);
+		printf ("# resetting phase shift ->\n");
+		printf ("# 0x%.4X\n", ntohs (CMD_Buffer[0]));
+	}
+
+    else if (strncmp (Buffer, "ps\n", 3) == 0)
+	{
+		CMD_Buffer[0] = htons (CMD_PS_DO);
+		printf ("# phase shifting once! ->\n");
+		printf ("# 0x%.4X\n", ntohs (CMD_Buffer[0]));
+	}
+
+
+	
+    else if (strncmp (Buffer, "dd\n", 3) == 0)
 	{
 		CMD_Buffer[0] = htons (CMD_DDISABLE);
@@ -52,5 +82,5 @@
 	}
 	
-    else if (strncmp (Buffer, "dr\n", 2) == 0)
+    else if (strncmp (Buffer, "dr\n", 3) == 0)
 	{
 		CMD_Buffer[0] = htons (CMD_DWRITE_RUN);
@@ -59,5 +89,5 @@
 	}
 	
-    else if (strncmp (Buffer, "ds\n", 2) == 0)
+    else if (strncmp (Buffer, "ds\n", 3) == 0)
 	{
 		CMD_Buffer[0] = htons (CMD_DWRITE_STOP);
@@ -65,6 +95,18 @@
 		printf ("# 0x%.4X\n", ntohs (CMD_Buffer[0]));
 	}
-	
-	else if (strncmp (Buffer, "sclkon\n", 6) == 0)
+
+	else if (strncmp (Buffer, "srclkon\n", 8) == 0)
+	{
+		CMD_Buffer[0] = htons (CMD_SRCLK_ON);
+		printf ("# DRS readoutclock SRCLK ENABLED ->\n");
+		printf ("# 0x%.4X\n", ntohs (CMD_Buffer[0]));
+	}
+	else if (strncmp (Buffer, "srclkoff\n", 9) == 0)
+	{
+		CMD_Buffer[0] = htons (CMD_SRCLK_OFF);
+		printf ("# DRS readoutclock SRCLK DISABLED ->\n");
+		printf ("# 0x%.4X\n", ntohs (CMD_Buffer[0]));
+	}	
+	else if (strncmp (Buffer, "sclkon\n", 7) == 0)
 	{
 		CMD_Buffer[0] = htons (CMD_SCLK_ON);
@@ -72,5 +114,5 @@
 		printf ("# 0x%.4X\n", ntohs (CMD_Buffer[0]));
 	}
-	else if (strncmp (Buffer, "sclkoff\n", 7) == 0)
+	else if (strncmp (Buffer, "sclkoff\n", 8) == 0)
 	{
 		CMD_Buffer[0] = htons (CMD_SCLK_OFF);
@@ -243,15 +285,30 @@
 	{
 		printf ("Commands:\n");
-		printf ("    r:          Start Run -- TODO\n");
-		printf ("    s:          Stop Run  -- TODO\n");
 		printf ("    t:          Single Trigger\n\n");
+		printf ("    tc:         Continuous Trigger\n");
+		printf ("    ts:         Stop Trigger\n");
+
+		printf ("\n");
+		printf ("    sclkon:     Switch SPI SLCK on\n");
+		printf ("    sclkoff:    Switch SPI SLCK off\n");
+
+		printf ("\n");
+		printf ("    srclkon:     Switch DRS SRLCK on\n");
+		printf ("    srclkoff:    Switch DRS SRLCK off\n");
+
+		printf ("\n");
+		printf ("    ps:         Phase shift ADCCLK against SRCLK - one step\n");
+		printf ("    psup:       'increse' phase shift - default\n");
+		printf ("    psdn:       'decrease' phase shift\n");
+		printf ("    psres:      reset phase shift\n");
+
+
+		printf ("\n");
 		printf ("    de:         DENABLE HIGH\n");
 		printf ("    dd:         DENABLE LOW\n");
 		printf ("    dr:         DWRITE HIGH\n");
 		printf ("    ds:         DWRITE LOW\n");
-		printf ("    sclkon:     Switch SPI SLCK on\n");
-		printf ("    sclkoff:    Switch SPI SLCK off\n");
-		printf ("    tc:         Continuous Trigger\n");
-		printf ("    ts:         Stop Trigger\n");
+
+		printf ("\n");
 		printf ("    sr NUM VAL: Set ROI NUM (0-35) to VAL (0-1024)\n");
 		printf ("    sra VAL:    Set all ROIs to VAL (0-1024)\n");
@@ -264,4 +321,6 @@
 		printf ("        sz:         Send 0x0000\n");
 		printf ("\n");
+		printf ("    r:          Start Run -- TODO\n");
+		printf ("    s:          Stop Run  -- TODO\n");
 
 		CMD_Num = 0;
Index: fact/tools/FAD/simple_daq/simple_daq.cpp
===================================================================
--- fact/tools/FAD/simple_daq/simple_daq.cpp	(revision 9904)
+++ fact/tools/FAD/simple_daq/simple_daq.cpp	(revision 9905)
@@ -20,6 +20,9 @@
 #include "../SocketFunctions/SocketFunctions.h"
 
-
+#include "iostream"
+
+int init_fad();
 int *SocketDescriptor;
+using namespace std;
 
 int main(int argc, char *argv[])
@@ -72,4 +75,5 @@
 		}
 	}
+	init_fad();
 
 
@@ -77,4 +81,6 @@
 	signal (SIGINT, int_handler); // Cleanup after SIGINT (CTRL-C)
 
+//	init_fad();
+//	fflush (stdin);
 	// Main loop
 	while (true)
@@ -97,4 +103,10 @@
 		
 		memset (Buffer, 0, sizeof (Buffer));
+ 
+
+		// init board -- should be switchable 
+		// with a commandline switch, but ... 
+		// TODO
+
 
 		// Data from STDIN
@@ -146,4 +158,6 @@
 	}
 	printf (" done\n");
+
+
 	
 	exit (exit_status);
@@ -178,2 +192,26 @@
 return conf;
 }
+
+int init_fad(){
+	
+	cmd_send ("sra 10\n", SocketDescriptor[0]);
+	cmd_send ("sa 44 29\n", SocketDescriptor[0]);			
+	cmd_send ("t\n", SocketDescriptor[0]);			
+	cmd_send ("sa 44 30\n", SocketDescriptor[0]);			
+	cmd_send ("t\n", SocketDescriptor[0]);			
+	cmd_send ("sa 44 0\n", SocketDescriptor[0]);			
+	cmd_send ("t\n", SocketDescriptor[0]);
+	cmd_send ("sclkoff\n", SocketDescriptor[0]);			
+	cmd_send ("de\n", SocketDescriptor[0]);			
+	cmd_send ("dr\n", SocketDescriptor[0]);			
+	cmd_send ("sra 1024\n", SocketDescriptor[0]);			
+	EmptySockets(SocketDescriptor, 8, 750000L);
+
+	printf (	"\n\n FAD initialised. \n "
+						"ROI is 1024. \n"
+						"DRS shift registers are initialised.\n"
+						"DRS is up and running.\n");
+
+return 0;
+}
+
Index: fact/tools/FAD/simple_daq/simple_daq.h
===================================================================
--- fact/tools/FAD/simple_daq/simple_daq.h	(revision 9904)
+++ fact/tools/FAD/simple_daq/simple_daq.h	(revision 9905)
@@ -29,4 +29,13 @@
 #define CMD_SCLK_OFF 0x1100
 
+#define CMD_PS_DIRINC 0x1200
+#define CMD_PS_DIRDEC 0x1300
+#define CMD_PS_DO 0x1400
+#define CMD_PS_RESET 0x1700
+
+
+#define CMD_SRCLK_ON 0x1500
+#define CMD_SRCLK_OFF 0x1600
+
 #define CMD_Trigger_C 0xB000 	// continous trigger
 #define CMD_Trigger_S 0x2000 	// stop continous trigger
@@ -56,5 +65,5 @@
 };
 
-void cmd_send (char* Buffer, int Socket); // Send commands to socket
+void cmd_send (const char* Buffer, int Socket); // Send commands to socket
 void int_handler (int sig); // Handle signal SIGINT (CTRL-C)
 void exit_program (int exit_status); // Cleanup and exit
