diff --git a/Localisation.c b/Localisation.c
index c1137f4..b7b6c32 100644
--- a/Localisation.c
+++ b/Localisation.c
@@ -45,7 +45,7 @@ void Localisation_gestion(){
     delta_x_ref_robot = (distance_roue_a_mm + distance_roue_b_mm - 2 * distance_roue_c_mm)  / 3.0;
     delta_y_ref_robot = (-distance_roue_a_mm + distance_roue_b_mm)  * RACINE_DE_3 / 3.0;
 
-    if(get_position_avec_gyroscope()){
+    if(get_position_avec_gyroscope() && !get_position_avec_gyroscope_error()){
         angle_gyro = gyro_get_angle_degres();
         position.angle_radian = angle_gyro.rot_z / 180. * M_PI ;
     }else{
diff --git a/Log.c b/Log.c
index ca1e251..9c8ef04 100644
--- a/Log.c
+++ b/Log.c
@@ -9,6 +9,7 @@ struct log_message_storage{
 } * log_message_envoi, log_message_storage_premier, *log_message_storage_courant;
 
 uint log_error = 0;
+enum Log_level log_level_reference;
 
 int store_new_message(struct Log_message_data message, struct log_message_storage * stockage);
 void envoi_message(struct Log_message_data message);
@@ -22,6 +23,7 @@ void Log_init(void){
     log_message_storage_courant = &log_message_storage_premier;
     log_message_envoi = &log_message_storage_premier;
 
+    log_level_reference = TELEPLOT;
 }
 
 
@@ -29,26 +31,29 @@ void Log_init(void){
 /// @param message : string, without '\n' at the end.
 /// @param log_level : can be in TELEPLOT, TRACE, DEBUG, INFO, WARN, ERROR, FATAL
 void Log_message(char * message, enum Log_level log_level){
-    /// Création de la structure de données
-    struct Log_message_data message_container;
-    if(strlen(message) > LOG_MAX_MESSAGE_SIZE){
-        strcpy(message_container.message, "MSG TOO LONG");
-    }else{
-        strcpy(message_container.message, message);
-    }
-    message_container.log_level = log_level;
-    message_container.timestamp = time_us_32() / 1000;
+    // On vérifie que le message a une urgence suffisante pour être enregistrée
+    if(log_level >= log_level_reference){
+        /// Création de la structure de données
+        struct Log_message_data message_container;
+        if(strlen(message) > LOG_MAX_MESSAGE_SIZE){
+            strcpy(message_container.message, "MSG TOO LONG");
+        }else{
+            strcpy(message_container.message, message);
+        }
+        message_container.log_level = log_level;
+        message_container.timestamp = time_us_32() / 1000;
 
-    /// Insertion de la structure dans la liste chaînée
-    struct log_message_storage* tmp_message_storage;
-    tmp_message_storage = (struct log_message_storage*) malloc(sizeof(struct log_message_storage));
-    if(tmp_message_storage != NULL){
-        tmp_message_storage->message = message_container;
-        tmp_message_storage->next = NULL;
-        log_message_storage_courant->next = tmp_message_storage;
-        log_message_storage_courant = log_message_storage_courant->next;
-    }else{
-        log_error |= LOG_ERROR_MEMORY_FULL;
+        /// Insertion de la structure dans la liste chaînée
+        struct log_message_storage* tmp_message_storage;
+        tmp_message_storage = (struct log_message_storage*) malloc(sizeof(struct log_message_storage));
+        if(tmp_message_storage != NULL){
+            tmp_message_storage->message = message_container;
+            tmp_message_storage->next = NULL;
+            log_message_storage_courant->next = tmp_message_storage;
+            log_message_storage_courant = log_message_storage_courant->next;
+        }else{
+            log_error |= LOG_ERROR_MEMORY_FULL;
+        }
     }
 }
 
@@ -72,6 +77,10 @@ void Log_get_full_log(){
     log_message_envoi = &log_message_storage_premier;
 }
 
-void envoi_message(struct Log_message_data message){
-    printf("%u ms:%s\n", message.timestamp, message.message);
+void envoi_message(struct Log_message_data message_data){
+    if(message_data.log_level == TELEPLOT){
+        printf("%s\n", message_data.message);
+    }else{
+        printf("%u ms:%s\n", message_data.timestamp, message_data.message);
+    }
 }
diff --git a/Robot_config.c b/Robot_config.c
index 873d199..698b06a 100644
--- a/Robot_config.c
+++ b/Robot_config.c
@@ -1,4 +1,5 @@
 int position_avec_gyroscope = 0;
+int position_avec_gyroscope_erreur = 0;
 
 int get_position_avec_gyroscope(void){
     return position_avec_gyroscope;
@@ -6,4 +7,16 @@ int get_position_avec_gyroscope(void){
 
 void set_position_avec_gyroscope(int _use_gyro){
     position_avec_gyroscope = _use_gyro;
-}
\ No newline at end of file
+}
+
+/// @brief Indique que le gyroscope est en erreur
+/// @param _erreur : 1 si en erreur
+void set_position_avec_gyroscope_error(int _erreur){
+    position_avec_gyroscope_erreur = _erreur;
+}
+
+/// @brief Indique si le gyroscope est en erreur
+/// @return 1 si en erreur, 0 sinon
+int get_position_avec_gyroscope_error(){
+    return position_avec_gyroscope_erreur;
+}
diff --git a/Robot_config.h b/Robot_config.h
index e1675fd..43e341d 100644
--- a/Robot_config.h
+++ b/Robot_config.h
@@ -1,2 +1,4 @@
 int get_position_avec_gyroscope(void);
-void set_position_avec_gyroscope(int _use_gyro);
\ No newline at end of file
+void set_position_avec_gyroscope(int _use_gyro);
+void set_position_avec_gyroscope_error(int _erreur);
+int get_position_avec_gyroscope_error(void);
diff --git a/Test_gyro.c b/Test_gyro.c
index 9204f7a..7651c61 100644
--- a/Test_gyro.c
+++ b/Test_gyro.c
@@ -1,4 +1,5 @@
 #include "pico/stdlib.h"
+#include "pico/multicore.h"
 #include "gyro.h"
 #include "gyro_ADXRS453.h"
 #include "Log.h"
@@ -49,15 +50,20 @@ int test_gyro_vitesse_brute(void){
     printf("Lecture vitesse brute\n");
     uint16_t tampon_envoi[4];
     uint8_t tampon_reception[4];
+    char message[LOG_MAX_MESSAGE_SIZE];
     Log_init();
     Gyro_init_spi();
     Gyro_init_config();
 
     struct t_angle_gyro angle_gyro;
+    multicore_launch_core1(affichage);
     printf("Debut acquisition\n");
     while(1){
         gyro_get_vitesse_brute(&angle_gyro, NULL);
-        printf("%2.2f rad\n", angle_gyro.rot_z);
+        if(time_us_32() % 100000){
+            sprintf(message,">angle:%d\n", angle_gyro.rot_z);
+            Log_message(message, TELEPLOT);
+        }
     }
 
 }
\ No newline at end of file
diff --git a/gyro.c b/gyro.c
index 733a205..b4ed321 100644
--- a/gyro.c
+++ b/gyro.c
@@ -64,6 +64,8 @@ void Gyro_init_spi(){
     vitesse_angulaire = &_vitesse_angulaire;
 
     uint speed = spi_init(spi0, 2 * 1000 * 1000); // SPI init @ 2 MHz    
+    // Normalement, le capteur tient jusqu'à 8 MHz, à voir si c'est pertinent
+    //uint speed = spi_init(spi0, 8 * 1000 * 1000); // SPI init @ 8 MHz    
 
     spi_set_format(spi0, 8, SPI_CPHA_0, SPI_CPOL_0, SPI_MSB_FIRST);
 }
diff --git a/gyro_ADXRS453.c b/gyro_ADXRS453.c
index b96fdc0..4507ee8 100644
--- a/gyro_ADXRS453.c
+++ b/gyro_ADXRS453.c
@@ -49,7 +49,10 @@ void affiche_tampon_32bits(uint8_t *tampon){
 
 }
 
-
+/// @brief Lit les données du gyroscope
+/// @param tampon_envoi espace mémoire à fournir à la fonction 
+/// @param tampon_reception espace mémoire à fournir à la fonction 
+/// @return 1 en cas d'erreur, 0 sinon
 int gyro_get_sensor_data(uint16_t tampon_envoi[], uint8_t tampon_reception[]){
     tampon_envoi[0] = 0x30;
     tampon_envoi[1] = 0x00;
@@ -61,28 +64,29 @@ int gyro_get_sensor_data(uint16_t tampon_envoi[], uint8_t tampon_reception[]){
         
         Monitoring_Error("Gyro Failed - SQ bits != 0x4\n");
         if(tampon_reception[1] & 0x04){
+            set_position_avec_gyroscope_error(1);
             //printf("SPI ERROR\n");
             return 1;
         }else{
+            set_position_avec_gyroscope_error(1);
             Monitoring_set_erreur_critique();
             //while(1){
                 affiche_tampon_32bits(tampon_reception);
                 printf("Gyro Failed - SQ bits (%#3x)!= 0x4\n", Gyro_SensorData.SQ);
             //}
-            //set_position_avec_gyroscope(0);
         }
     }
     if(Gyro_SensorData.ST != 0x1){
         Monitoring_Error("Gyro Failed - Status != 0x1\n");
-        set_position_avec_gyroscope(0);
+        set_position_avec_gyroscope_error(1);
         /*while(1){
             printf("Gyro Failed - Status (%#3x)!= 0x1\n", Gyro_SensorData.ST);
             affiche_tampon_32bits(tampon_reception);
         }*/
         Monitoring_set_erreur_critique();
-        //set_position_avec_gyroscope(0);
         return 1;
     }
+    set_position_avec_gyroscope_error(0);
     return 0;
 }
 
@@ -175,7 +179,8 @@ void gyro_get_vitesse_brute(struct t_angle_gyro* angle_gyro, struct t_angle_gyro
     uint8_t tampon_reception[5]="\0\0\0\0\0";
     int16_t rot_z;
     
-    sleep_us(1); // A supprimer plus tard
+    // Supprimé le 11/7/2023, pas d'impacts visibles..
+    //sleep_us(1); // A supprimer plus tard
     if(gyro_get_sensor_data(tampon_envoi, tampon_reception)){
         return;
     }