Index: firmware/FAD/FACT_FAD_20MHz_VAR_PS/FACT_FAD_lib/hdl/fad_board_struct.vhd
===================================================================
--- firmware/FAD/FACT_FAD_20MHz_VAR_PS/FACT_FAD_lib/hdl/fad_board_struct.vhd	(revision 11155)
+++ firmware/FAD/FACT_FAD_20MHz_VAR_PS/FACT_FAD_lib/hdl/fad_board_struct.vhd	(revision 11173)
@@ -3,5 +3,5 @@
 -- Created:
 --          by - daqct3.UNKNOWN (IHP110)
---          at - 13:24:39 23.06.2011
+--          at - 15:01:19 24.06.2011
 --
 -- Generated by Mentor Graphics' HDL Designer(TM) 2009.1 (Build 12)
@@ -76,5 +76,5 @@
 -- Created:
 --          by - daqct3.UNKNOWN (IHP110)
---          at - 13:24:39 23.06.2011
+--          at - 15:01:20 24.06.2011
 --
 -- Generated by Mentor Graphics' HDL Designer(TM) 2009.1 (Build 12)
Index: firmware/FAD/FACT_FAD_20MHz_VAR_PS/FACT_FAD_lib/hdl/fad_definitions.vhd
===================================================================
--- firmware/FAD/FACT_FAD_20MHz_VAR_PS/FACT_FAD_lib/hdl/fad_definitions.vhd	(revision 11155)
+++ firmware/FAD/FACT_FAD_20MHz_VAR_PS/FACT_FAD_lib/hdl/fad_definitions.vhd	(revision 11173)
@@ -48,5 +48,5 @@
   constant MAC_LIST : mac_list_type := (MAC_FAD0,MAC_FAD1,MAC_FAD2);
 
-  constant FIRST_PORT : integer := 5000;
+  constant FIRST_PORT : integer := 31919;
   constant CAM_IP_PREFIX : ip_type := (10, 0, 0, 0);
   constant IP_offset : integer := 128;
@@ -57,5 +57,5 @@
 	--constant SUBVERSION_NUMBER : std_logic_vector (15 downto 0) := conv_std_logic_vector(str_to_int(SUBVERSION_STRING),16);
 	constant PACKAGE_VERSION : std_logic_vector(7 downto 0) := X"02";
-	constant PACKAGE_SUB_VERSION : std_logic_vector(7 downto 0) := X"05";
+	constant PACKAGE_SUB_VERSION : std_logic_vector(7 downto 0) := X"06";
 	constant PACKAGE_HEADER_LENGTH : integer := 36;
 	constant PACKAGE_HEADER_ZEROS : integer := 0;  
@@ -97,5 +97,5 @@
 	constant W5300_S0_DPORTR 	: std_logic_vector (9 downto 0) := W5300_BASE_ADR + "1000000000" + X"12";
 	constant W5300_S0_DIPR 		: std_logic_vector (9 downto 0) := W5300_BASE_ADR + "1000000000" + X"14";
-	constant W5300_S0_PORTOR 	: std_logic_vector (9 downto 0) := W5300_BASE_ADR + "1000000000" + X"1A";  -- HIGH byte is S0_KPALVTR register 
+	  constant W5300_S0_KPALVTR  : std_logic_vector (9 downto 0) := W5300_BASE_ADR + "1000000000" + X"1A";  -- HIGH byte is S0_KPALVTR register 
 	constant W5300_S0_TX_WRSR 	: std_logic_vector (9 downto 0) := W5300_BASE_ADR + "1000000000" + X"20";
 	constant W5300_S0_TX_FSR 	: std_logic_vector (9 downto 0) := W5300_BASE_ADR + "1000000000" + X"24";
@@ -171,5 +171,5 @@
 constant CMD_MODE_ALL_SOCKETS : std_logic_vector    := X"31";
 constant CMD_TRIGGER : std_logic_vector     		:= X"A0";
-constant CMD_TRIGGER_C : std_logic_vector   		:= X"B0";		-- should be 1F in next revision .. T.B. wants it.
+constant CMD_TRIGGER_C : std_logic_vector   		:= X"1F";		-- should be 1F in next revision .. T.B. wants it.
 constant CMD_TRIGGER_S : std_logic_vector   		:= X"20";
 
Index: firmware/FAD/FACT_FAD_20MHz_VAR_PS/FACT_FAD_lib/hdl/fad_main_struct.vhd
===================================================================
--- firmware/FAD/FACT_FAD_20MHz_VAR_PS/FACT_FAD_lib/hdl/fad_main_struct.vhd	(revision 11155)
+++ firmware/FAD/FACT_FAD_20MHz_VAR_PS/FACT_FAD_lib/hdl/fad_main_struct.vhd	(revision 11173)
@@ -3,5 +3,5 @@
 -- Created:
 --          by - daqct3.UNKNOWN (IHP110)
---          at - 13:24:37 23.06.2011
+--          at - 15:01:18 24.06.2011
 --
 -- Generated by Mentor Graphics' HDL Designer(TM) 2009.1 (Build 12)
@@ -83,5 +83,5 @@
 -- Created:
 --          by - daqct3.UNKNOWN (IHP110)
---          at - 13:24:38 23.06.2011
+--          at - 15:01:19 24.06.2011
 --
 -- Generated by Mentor Graphics' HDL Designer(TM) 2009.1 (Build 12)
@@ -190,4 +190,5 @@
    SIGNAL sensor_array                 : sensor_array_type;
    SIGNAL sensor_ready                 : std_logic;
+   SIGNAL socket_send_mode             : std_logic;
    SIGNAL socks_connected              : std_logic;
    SIGNAL socks_waiting                : std_logic;
@@ -328,4 +329,7 @@
       denable_enable_in          : IN     std_logic ;
       busy_enable_in             : IN     std_logic ;
+      trigger_enable_in          : IN     std_logic ;
+      cont_trigger_en_in         : IN     std_logic ;
+      socket_send_mode_in        : IN     std_logic ;
       -- EVT HEADER - part 2  --> FTM trigger informaton, comes in late ...
       -- during EVT header wrinting, this field is left out ... and only written into event header,
@@ -561,4 +565,5 @@
       srclk_enable                  : OUT    std_logic                      := '1';                          -- default SRCLK on.
       busy_enable                   : OUT    std_logic                      := '1';
+      socket_send_mode_out          : OUT    std_logic ;
       ------------------------------------------------------------------------------
       
@@ -772,4 +777,7 @@
          denable_enable_in          => denable_sig,
          busy_enable_in             => busy_enable,
+         trigger_enable_in          => trigger_enable,
+         cont_trigger_en_in         => c_trigger_enable,
+         socket_send_mode_in        => socket_send_mode,
          FTM_RS485_ready            => FTM_RS485_ready,
          FTM_trigger_info           => rs465_data,
@@ -975,4 +983,5 @@
          srclk_enable                  => srclk_enable,
          busy_enable                   => busy_enable,
+         socket_send_mode_out          => socket_send_mode,
          ps_direction                  => ps_direction,
          ps_do_phase_shift             => ps_do_phase_shift,
Index: firmware/FAD/FACT_FAD_20MHz_VAR_PS/FACT_FAD_lib/hdl/w5300_modul.vhd
===================================================================
--- firmware/FAD/FACT_FAD_20MHz_VAR_PS/FACT_FAD_lib/hdl/w5300_modul.vhd	(revision 11155)
+++ firmware/FAD/FACT_FAD_20MHz_VAR_PS/FACT_FAD_lib/hdl/w5300_modul.vhd	(revision 11173)
@@ -108,5 +108,7 @@
 type state_init_type is (
 	INTERRUPT, RESET, WRITE_REG, READ_REG, WRITE_DATA,
-	INIT, LOCATE, IM, MT, STX, STX1, STX2, STX3, SRX, SRX1, SRX2, SRX3, MAC, MAC1, MAC2, GW, GW1, SNM, SNM1, IP, IP1, TIMEOUT, RETRY,
+	INIT, LOCATE, IM, MT, STX, STX1, STX2, STX3, SRX, SRX1, SRX2, SRX3, MAC, MAC1, MAC2, GW, GW1, SNM, SNM1, IP, IP1, 
+	TIMEOUT, 
+	--RETRY,
 	SI, SI1, SI1b, SI2, SI3, SI4, SI5, SI6,	ESTABLISH, EST1, 
 	
@@ -290,5 +292,5 @@
 signal wait_for_sockets_closed_counter_enable : std_logic := '0';
 signal wfscc_1 : integer range 0 to 50000 := 0;
-signal wfscc_2 : integer range 0 to 2000 := 0;
+signal wfscc_2 : integer range 0 to 20000 := 0;
 
 
@@ -714,10 +716,12 @@
 						par_data (7 downto 0) <= conv_std_logic_vector(ip_loc(3),8);
 						state_init <= WRITE_REG;
+						--next_state <= SI;
+						next_state <= TIMEOUT;
+					when TIMEOUT =>
+						par_addr <=	W5300_RTR;
+						--par_data <= X"07D0"; -- 0x07D0 = 200ms
+						par_data <= X"07D0"; -- unit is 100us, so 0x000A = 10 stnads for 1ms.
+						state_init <= WRITE_REG;
 						next_state <= SI;
---					when TIMEOUT =>
---            par_addr <=	W5300_RTR;
---            par_data <= X"07D0"; -- 0x07D0 = 200ms
---            state_init <= WRITE_REG;
---            next_state <= RETRY;
 --          when RETRY =>
 --            par_addr <=	W5300_RCR;
@@ -741,6 +745,6 @@
 						next_state <= SI1b;
 					when SI1b =>
-						par_addr <= W5300_S0_PORTOR + socket_cnt * W5300_S_INC;
-						par_data <= X"0606"; -- send automatic KEEP ALIVE every 30s.
+						par_addr <= W5300_S0_KPALVTR + socket_cnt * W5300_S_INC;
+						par_data <= X"0200"; 			-- send automatic KEEP ALIVE every 10s.
 						state_init <= WRITE_REG;
 						next_state <= SI2;						
@@ -1023,4 +1027,13 @@
 								denable <= '0';
 								state_read_data <= RD_5;
+								
+							when CMD_BUSY_ON =>
+								busy_enable <= '1';
+								state_read_data <= RD_5;
+							when CMD_BUSY_OFF =>
+								busy_enable <= '0';
+								state_read_data <= RD_5;
+
+								
 							when CMD_TRIGGER_C =>
 								c_trigger_enable <= '1';
@@ -1531,7 +1544,7 @@
 				wait_for_sockets_closed_counter_overflow <= '0';
 				if (wfscc_1 = 50000) then
-					if (wfscc_2 = 2000) then
+					if (wfscc_2 = 20000) then
 						wait_for_sockets_closed_counter_overflow <= '1';
-						wfscc_2 <= 2000;
+						wfscc_2 <= 20000;
 						wfscc_1 <= 50000;
 					else 
