diff --git a/src/tests/drivers/test-lsm9ds1-fifo.cpp b/src/tests/drivers/test-lsm9ds1-fifo.cpp
index 8abc4f5b18cb120f60481f37cd0e2f7dc5dee008..25b84447edee848e7db21bcf73ee4f7d09b1f660 100644
--- a/src/tests/drivers/test-lsm9ds1-fifo.cpp
+++ b/src/tests/drivers/test-lsm9ds1-fifo.cpp
@@ -23,45 +23,46 @@
  */
 
 #include <array>
+
 #include "drivers/HardwareTimer.h"
 #include "drivers/spi/SPIDriver.h"
+#include "logger/Logger.h"
 #include "sensors/LSM9DS1/LSM9DS1_AxelGyro.h"
 #include "sensors/LSM9DS1/LSM9DS1_Magneto.h"
-#include "diagnostic/CpuMeter.h"
-#include "logger/Logger.h"
 
 using namespace miosix;
 using namespace std;
 
-typedef Gpio<GPIOA_BASE, 5> GpioSck;  //SPI1 f407
+// SPI1 f407
+typedef Gpio<GPIOA_BASE, 5> GpioSck;
 typedef Gpio<GPIOA_BASE, 6> GpioMiso;
 typedef Gpio<GPIOA_BASE, 7> GpioMosi;
 
-typedef Gpio<GPIOC_BASE, 13> GpioINT1; //INT1 A/G
+// INT1 A/G LSM9DS1
+typedef Gpio<GPIOC_BASE, 13> GpioINT1;
 
-// SPI
+// SPI bus & cs
 SPIBus bus(SPI1);
 GpioPin cs_XLG(GPIOE_BASE, 7);
 GpioPin cs_M(GPIOE_BASE, 9);
 
-// LED just for init
+// LED just for visual reference
 GpioPin LED1(GPIOD_BASE, 15);
 GpioPin LED2(GPIOD_BASE, 13);
 GpioPin LED3(GPIOD_BASE, 14);
 
-//USR pushbutton
+// USR pushbutton
 GpioPin PUSHBUTTON(GPIOA_BASE, 0);
 
-
 // SPI read flag
 volatile bool flagSPIReadRequest = false;
 
-//IMU obj data
-static const bool FIFO_ENABLED      = true;
-static const uint8_t FIFO_WATERMARK = 20;
-static const uint16_t FIFO_SAMPLES   = 1000;
-static const uint16_t MAG_SAMPLING_PERIOD = 10; //100Hz
-static const uint16_t TEMP_SAMPLING_PERIOD = 100; //10Hz 
+// IMU obj variables
+static const bool FIFO_ENABLED             = true;
+static const uint8_t FIFO_WATERMARK        = 20;
+static const uint16_t FIFO_SAMPLES         = 1000;
+static const uint16_t MAG_SAMPLING_PERIOD  = 10;   // 100Hz
+static const uint16_t TEMP_SAMPLING_PERIOD = 100;  // 10Hz
 
 // High Resolution hardware timer using TIM5
 HardwareTimer<uint32_t> hrclock(
@@ -73,7 +74,7 @@ volatile uint32_t delta;
 
 // LSM9DS1 obj
 LSM9DS1_XLG* lsm9ds1_xlg = nullptr;
-LSM9DS1_M*   lsm9ds1_m   = nullptr; 
+LSM9DS1_M* lsm9ds1_m     = nullptr;
 
 // Interrupt handlers
 void __attribute__((naked)) EXTI13_IRQHandler()
@@ -105,18 +106,18 @@ void timer5Config();
 void EXTI1Config();
 void printStats(void*);
 
-uint16_t fifo_counter = 0;
-
 int main()
 {
 
     uint32_t dt;
     uint64_t XLGtimestamp = 0;
-    uint64_t lastMagtick = 0;
+    uint64_t lastMagtick  = 0;
     uint64_t lastTemptick = 0;
 
-    Thread::create(printStats,4096);
+    // Spawn thread for loggings logger stats
+    Thread::create(printStats, 4096);
 
+    // start logger
     Logger& logger = Logger::instance();
     logger.start();
 
@@ -124,60 +125,81 @@ int main()
     timer5Config();
     EXTI1Config();
 
-    lsm9ds1_xlg = new LSM9DS1_XLG(bus, cs_XLG, LSM9DS1_XLG::AxelFSR::FS_8, 
-                            LSM9DS1_XLG::GyroFSR::FS_245,LSM9DS1_XLG::ODR::ODR_238, 
-                            FIFO_ENABLED, FIFO_WATERMARK);
+    lsm9ds1_xlg = new LSM9DS1_XLG(
+        bus, cs_XLG, LSM9DS1_XLG::AxelFSR::FS_8, LSM9DS1_XLG::GyroFSR::FS_245,
+        LSM9DS1_XLG::ODR::ODR_238, FIFO_ENABLED, FIFO_WATERMARK);
 
-    lsm9ds1_m = new LSM9DS1_M(bus,cs_M, LSM9DS1_M::MagFSR::FS_8,LSM9DS1_M::ODR::ODR_40);
+    lsm9ds1_m = new LSM9DS1_M(bus, cs_M, LSM9DS1_M::MagFSR::FS_8,
+                              LSM9DS1_M::ODR::ODR_40);
 
-    while (!lsm9ds1_xlg->init());
-    while (!lsm9ds1_m->init());
-    LED2.high(); //init OK
-    
-    lsm9ds1_xlg->clearFIFO();  //just to be sure to intercept the first interrupt
+    while (!lsm9ds1_xlg->init())
+        ;
+    while (!lsm9ds1_m->init())
+        ;
+    LED2.high();  // init OK
 
-    //start sampling
-    while(!PUSHBUTTON.value())
-    {
+    // just to be sure to intercept the first interrupt rising edge
+    lsm9ds1_xlg->clearFIFO();
 
-        if(flagSPIReadRequest)
+    // sampling until you push the button
+    while (!PUSHBUTTON.value())
+    {
+        //ACCELEROMETER + GYROSCOPE UPDATE (FIFO)
+        //an interrupt is set: time to dump the FIFO
+        if (flagSPIReadRequest)
         {
             flagSPIReadRequest = false;
-            dt = hrclock.toMicroSeconds(delta)/FIFO_WATERMARK; //delta of each sample
+
+            // delta of each sample = delta beetween interrupts / #samples 
+            dt = hrclock.toMicroSeconds(delta) / FIFO_WATERMARK;
+            
+            //dump the fifo 
             lsm9ds1_xlg->onSimpleUpdate();
-            for(int i=0 ; i < FIFO_WATERMARK; i++)
+
+            //update each timestamp and log the sample (da integrare su driver?)
+            for (int i = 0; i < FIFO_WATERMARK; i++)
             {
                 lsm9ds1XLGSample XLGsample = lsm9ds1_xlg->getLsm9ds1FIFO()[i];
-                XLGtimestamp += dt; 
-                XLGsample.timestamp = XLGtimestamp; 
+                XLGtimestamp += dt;
+                XLGsample.timestamp = XLGtimestamp;
                 logger.log(XLGsample);
             }
+
             LED1.low();
-            fifo_counter++;
         }
 
-        if(miosix::getTick() - lastMagtick >= MAG_SAMPLING_PERIOD)
-        {
+        //MAGNETOMETER UPDATE (SIMPLE)
+        if (miosix::getTick() - lastMagtick >= MAG_SAMPLING_PERIOD)
+        {   
             lastMagtick = miosix::getTick();
+            
+            //get sample from the sensor
             lsm9ds1_m->onSimpleUpdate();
+            
+            //update timestamp and log the sample
             lsm9ds1MSample MAGsample;
-            MAGsample.magData = *(lsm9ds1_m->compassDataPtr());
+            MAGsample.magData   = *(lsm9ds1_m->compassDataPtr());
             MAGsample.timestamp = lastMagtick;
             logger.log(MAGsample);
         }
 
-        if(miosix::getTick() - lastTemptick >= TEMP_SAMPLING_PERIOD)
+        //TEMPERATURE UPDATE (SIMPLE)
+        if (miosix::getTick() - lastTemptick >= TEMP_SAMPLING_PERIOD)
         {
             lastTemptick = miosix::getTick();
+
+            //get sample from the sensor
             lsm9ds1_xlg->temperatureUpdate();
+            
+            //update timestamp and log the sample
             lsm9ds1TSample Tsample;
-            Tsample.tempData = *(lsm9ds1_xlg->tempDataPtr());
+            Tsample.tempData  = *(lsm9ds1_xlg->tempDataPtr());
             Tsample.timestamp = lastTemptick;
             logger.log(Tsample);
         }
-
     }
 
+    //stop log
     logger.stop();
 
     LED1.low();
@@ -186,7 +208,9 @@ int main()
     Thread::sleep(10000);
     reboot();
 
-    while(1);
+    while (1)
+        ;
+
     return 0;
 }
 
@@ -223,9 +247,8 @@ void gpioConfig()
         LED2.mode(Mode::OUTPUT);
         LED3.mode(Mode::OUTPUT);
 
-        //Select USR pushbutton 
+        // Select USR pushbutton
         PUSHBUTTON.mode(Mode::INPUT);
-
     }
 
     cs_XLG.high();
@@ -269,17 +292,19 @@ void EXTI1Config()  // PC13
 }
 
 void printStats(void*)
-{   
-    Logger& log=Logger::instance();
-    while(!log.isStarted());
-    while(log.isStarted())
+{
+    Logger& log = Logger::instance();
+    while (!log.isStarted())
+        ;
+
+    while (log.isStarted())
     {
         LogStats stats = log.getLogStats();
 
         stats.setTimestamp(miosix::getTick());
         log.log(stats);
 
-        if(stats.statWriteError)
+        if (stats.statWriteError)
         {
             LED3.high();
         }
@@ -287,7 +312,7 @@ void printStats(void*)
         {
             LED3.low();
         }
-        
+
         Thread::sleep(1000);
     }
-} 
\ No newline at end of file
+}
\ No newline at end of file
diff --git a/src/tests/drivers/test-lsm9ds1.cpp b/src/tests/drivers/test-lsm9ds1.cpp
index 03079c1436fd9a9dcc16c9475041c141fd67b310..c93b66ea01449ed8db8fb14178539b45486fc6a3 100644
--- a/src/tests/drivers/test-lsm9ds1.cpp
+++ b/src/tests/drivers/test-lsm9ds1.cpp
@@ -28,8 +28,8 @@
 
 using namespace miosix;
 
-typedef Gpio<GPIOA_BASE, 5> GpioSck;  // questi sono i pin SPI per
-                                      // f407_discovery
+// pin f407 discovery SPI1
+typedef Gpio<GPIOA_BASE, 5> GpioSck;
 typedef Gpio<GPIOA_BASE, 6> GpioMiso;
 typedef Gpio<GPIOA_BASE, 7> GpioMosi;
 
@@ -37,7 +37,6 @@ static const bool FIFO_ENABLED = false;
 
 // SPI
 SPIBus bus(SPI1);
-// SPIBusConfig cfg;
 GpioPin cs_XLG(GPIOE_BASE, 7);
 GpioPin cs_M(GPIOE_BASE, 9);
 
@@ -54,7 +53,8 @@ int main()
     {
         FastInterruptDisableLock dLock;
 
-        RCC->APB2ENR |= RCC_APB2ENR_SPI1EN;  // SPI1 ENABLE
+        // SPI1 ENABLE
+        RCC->APB2ENR |= RCC_APB2ENR_SPI1EN;
 
         GpioSck::mode(Mode::ALTERNATE);
         GpioMiso::mode(Mode::ALTERNATE);
@@ -73,20 +73,10 @@ int main()
         LED2.mode(Mode::OUTPUT);
     }
 
+    // chip select high
     cs_XLG.high();
     cs_M.high();
 
-    // dump regiters
-    /*
-        for(int reg=0; reg<=0x38; reg++)
-        {
-            SPISlave spislave(bus, cs_XLG, cfg);
-            SPITransaction spi(spislave);
-            uint8_t data = spi.read(reg);
-            printf("0x%02X-->0x%02X\n", reg,data);
-        }
-    }*/
-
     LSM9DS1_XLG lsm9ds1X(bus, cs_XLG, LSM9DS1_XLG::AxelFSR::FS_8,
                          LSM9DS1_XLG::GyroFSR::FS_245,
                          LSM9DS1_XLG::ODR::ODR_952);
@@ -110,18 +100,30 @@ int main()
     long long first_tick = getTick();
     for (;;)
     {
+        //get timestamp
         long long last_tick = getTick();
+
+        //get axel+gyro+temp data
         lsm9ds1X.onSimpleUpdate();
         adata = *(lsm9ds1X.accelDataPtr());
         gdata = *(lsm9ds1X.gyroDataPtr());
         tdata = *(lsm9ds1X.tempDataPtr());
+
+        //get magneto data
         lsm9ds1M.onSimpleUpdate();
         mdata = *(lsm9ds1M.compassDataPtr());
+
+        // clang-format off
+               
         printf("%d,%.3f,%.3f,%.3f,%.3f,%.3f,%.3f,%.3f,%.3f,%.3f,%.1f\n",
-               (int)(last_tick - first_tick), adata.getX(), adata.getY(),
-               adata.getZ(), gdata.getX(), gdata.getY(), gdata.getZ(),
-               mdata.getX(), mdata.getY(), mdata.getZ(), tdata);
-        // printf("%.3f,%.3f,%.3f\n", mdata.getX(), mdata.getY(), mdata.getZ());
+               (int)(last_tick - first_tick), 
+               adata.getX(), adata.getY(), adata.getZ(), 
+               gdata.getX(), gdata.getY(), gdata.getZ(),
+               mdata.getX(), mdata.getY(), mdata.getZ(), 
+               tdata);
+        
+        // clang-format on        
+
     }
 
     return 0;