diff --git a/G3_TP1_labyrinth_slave_etu/src/labyrinth_slave.c b/G3_TP1_labyrinth_slave_etu/src/labyrinth_slave.c
index 72cb713f56cf3383d2721ff35b87a213d35d3946..65523172e74d886bf626cc08153b8a57f2abe31e 100644
--- a/G3_TP1_labyrinth_slave_etu/src/labyrinth_slave.c
+++ b/G3_TP1_labyrinth_slave_etu/src/labyrinth_slave.c
@@ -31,7 +31,6 @@
 #define GOAL_H_WALL (LCD_MAX_WIDTH-(2*BALL_RADIUS+1+WALL_WIDTH))
 #define GOAL_V_WALL (LCD_MAX_HEIGHT-(2*BALL_RADIUS+1+WALL_WIDTH)-1)
 
-
 static coord_fx_t labyrinth_points[]={
 		{80,280},{40,280},{40,190},{END_OF_LINE,LCD_WHITE},
 		{40,100},{150,100},{150,160},{70,160},{END_OF_LINE,LCD_WHITE},
@@ -46,11 +45,11 @@ static coord_fx_t labyrinth_points[]={
 		{GOAL_H_WALL-4*BALL_RADIUS-WALL_WIDTH-1,LCD_MAX_HEIGHT-WALL_WIDTH},{GOAL_H_WALL-4*BALL_RADIUS-WALL_WIDTH-1,GOAL_V_WALL},{END_OF_WALLS,END_OF_WALLS}
 };
 
-
-master_tx_t *mstr_now;
-master_tx_t *mstr_prev;
+master_tx_t mstr_now[NUMBER_OF_BALLS];
+master_tx_t mstr_prev[NUMBER_OF_BALLS];
 bool flag = false;
 
+
 /* Description: Callback of ethernet module. This function is called when a message is received.
  * Each ball of the master send its own coordinates that are saved here.
  * Parameters: data: pointer on data received
@@ -59,44 +58,67 @@ bool flag = false;
 void master_info_rx(void *data, int len)
 {
 	if(len == sizeof(master_tx_t)){
-		if (mstr_now != NULL){
-			mstr_prev = mstr_now;
-		}
-		mstr_now = (master_tx_t*)data;
-		/*if(mstr_prev == NULL){
-			mstr_now = mstr_prev;
-		}*/
+		master_tx_t *tmpMstr;
+		tmpMstr = (master_tx_t*)data;
+		mstr_prev[tmpMstr->ball_id] = mstr_now[tmpMstr->ball_id];
+		mstr_now[tmpMstr->ball_id] = *tmpMstr;
 		flag = true;
 	}
 }
 
+void Start_timer0(){
+	LPC_TIM0->TCR = 1;
+}
+
+void delay(int del){
+	int start = LPC_TIM0->TC;
+	for(int i = 0; i<del; i++){
+		while((LPC_TIM0->TC - start) < 100000); //passer a 1ms avec 100MHz
+	}
+}
 
+master_tx_t double_buf_rx;
+accel_t double_buf_tx;
 
 int main(void)
 {
 	init_lcd();
+	Start_timer0();
 	if(accel_init() != 0)
 	{
 		printf("Accelerometer initialisation failed!\n");
 		return 1;
 	}
-	master_tx_t double_buf_rx;
-	master_tx_t double_buf_tx;
+
 	int len_rx = sizeof(master_tx_t)*2;
-	int len_tx = 1;
+	int len_tx = sizeof(accel_t)*2;
+	int rec=sizeof(master_tx_t);
+	accel_t *j;
+	//unsigned char *tmpmstr;
 
-	ethernet_init(NULL, 0, &double_buf_rx, len_rx, master_info_rx);
+	j = (accel_t*)ethernet_init((unsigned char*)&double_buf_tx, len_tx, (unsigned char*)&double_buf_rx, len_rx, master_info_rx);
 
 	draw_labyrinth(labyrinth_points);
-
+	//accel_t ball_acc;
 	while(1)
 	{
+		delay(20);
+		if(accel_read(&double_buf_tx) == ACC_NOERROR){
+			j = &double_buf_tx;
+			j = (accel_t*)send_eth(sizeof(accel_t), true);
+			send_eth(sizeof(accel_t), true);
+		}
+		//tmpmstr = rec_eth(&rec);
+		rec_eth(&rec);
 		if(flag){
-			lcd_filled_circle(mstr_prev->ball_coord.x, mstr_prev->ball_coord.y, mstr_prev->radius, LCD_BLACK);
-			lcd_filled_circle(mstr_now->ball_coord.x, mstr_now->ball_coord.y, mstr_now->radius, mstr_now->color);
+			//lcd_filled_circle(mstr_prev[tmpmstr->ball_id].ball_coord.x, mstr_prev[tmpmstr->ball_id].ball_coord.y, mstr_prev[tmpmstr->ball_id].radius, LCD_BLACK);
+			//lcd_filled_circle(mstr_now[tmpmstr->ball_id].ball_coord.x, mstr_now[tmpmstr->ball_id].ball_coord.y, mstr_now[tmpmstr->ball_id].radius, mstr_now[tmpmstr->ball_id].color);
+			for(int i = 0; i<NUMBER_OF_BALLS; i++){
+				lcd_filled_circle(mstr_prev[i].ball_coord.x, mstr_prev[i].ball_coord.y, mstr_prev[i].radius, LCD_BLACK);
+				lcd_filled_circle(mstr_now[i].ball_coord.x, mstr_now[i].ball_coord.y, mstr_now[i].radius, mstr_now[i].color);
+			}
 			flag = false;
 		}
-
 	}
 }