diff --git a/LIDAR.cpp b/LIDAR.cpp
deleted file mode 100644
index 2e7476a3fa29bedd8fde557112ff418ddffc2bf1..0000000000000000000000000000000000000000
--- a/LIDAR.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-#include "./rplidar_sdk-master/sdk/include/sl_lidar.h" 
-#include "./rplidar_sdk-master/sdk/include/sl_lidar_driver.h"
-#include <stdio.h>
-#include <stdlib.h>
-#include <signal.h>
-#include <string.h>
-#include <unistd.h>
-
-using namespace sl;
-
-int main(int argc, char const *argv[])
-{
-    // Create communication instance channel
-    IChannel *channel;
-    channel = *createSerialPortChannel("/dev/ttyUSB0", 115200);
-    // LiDAR Driver instance
-    ILidarDriver *lidar = *createLidarDriver();
-    auto res = lidar->connect(channel);
-
-    if (SL_IS_OK(res)) {
-        // Infos sur le LiDAR
-        sl_lidar_response_device_info_t deviceInfo;
-        res = lidar->getDeviceInfo(deviceInfo);
-        if (SL_IS_OK(res)) {
-            printf("Model: %d, Firmware Version: %d.%d, Hardware Version: %d\n",
-            deviceInfo.model,
-            deviceInfo.firmware_version >> 8, deviceInfo.firmware_version & 0xffu,
-            deviceInfo.hardware_version);
-        } else {
-            fprintf(stderr, "Failed to get device information from LIDAR %08x\r\n", res);
-        }
-    } else {
-        fprintf(stderr, "Failed to connect to LIDAR %08x\r\n", res);
-    }
-
-    lidar->setMotorSpeed(0);
-
-    std::vector<LidarScanMode> scanmode;
-    lidar->getAllSupportedScanModes(scanmode);
-
-    // Delete the instances
-    delete lidar;
-    delete channel;
-
-    return 0;
-}
diff --git a/encoder b/encoder
index 0acc8488daac86295ef30f4b9fcd2a7eb6fb8f55..e138fa44e4e6eda295aae3572dadc630fcaeee30 100755
Binary files a/encoder and b/encoder differ
diff --git a/encoder.cpp b/encoder.cpp
index c8db2d133ea6c784b69447543c2422916bcdfa16..4b30a6c39a48dc7699694bf7884d0225e0372341 100644
--- a/encoder.cpp
+++ b/encoder.cpp
@@ -14,9 +14,11 @@ const int SPI_CHANNEL=1;
 unsigned char rawData[BYTE_len];
 unsigned char rawData_delayed[BYTE_len];
 float count;
+float clock_count;
 float count_delayed;
 float speed;
-int freq=50000;
+int freq=500000;
+int res = 2048;
 int main(int argc, char const *argv[])
 {   
     
@@ -32,8 +34,10 @@ int main(int argc, char const *argv[])
 
     //memset(rawData,0x01,BYTE_len);
     //rawData[0]=0x0F;
-    rawData[3]=0xFF;
-    rawData[0]=0x11;
+    rawData[3]=0x00;
+    rawData[2]=0x00;
+    rawData[1]=0x00;
+    rawData[0]=0x00;
     int fd = wiringPiSPISetup(SPI_CHANNEL, 500000);
 
     //for (int i=0; i<4; i++){
@@ -42,19 +46,39 @@ int main(int argc, char const *argv[])
 
     while(1) { 
         int result = wiringPiSPIDataRW(SPI_CHANNEL, rawData, BYTE_len);
-        printf("\n%02X %02X %02X %02X", rawData[0], rawData[1], rawData[2], rawData[3]); 
+        printf("\n%d %d %d %d", rawData[0], rawData[1], rawData[2], rawData[3]); 
         //fflush(stdout);
         //printf("\n");
-        count=(rawData[0]*pow(16, 4))+(rawData[1]*pow(16, 2))+(rawData[2]*pow(16, 0));
+        count=(rawData[0]*pow(16, 2))+(rawData[1]*pow(16, 0));
+        clock_count=(rawData[2]*pow(16, 2))+(rawData[3]*pow(16, 0));
         
-        //speed=100*(count-count_delayed);
+        speed=clock_count*(2*3.1415/res)*(count-count_delayed);
         //printf("\r%lf", count); 
         //fflush(stdout);
         count_delayed=count;
         //printf("\n");
-        sleep(0.5);
+        //sleep(0.5);
     }
        
     return 0;
     
-}
\ No newline at end of file
+}
+
+/*
+while(1) { 
+        int result = wiringPiSPIDataRW(SPI_CHANNEL, rawData, BYTE_len);
+        printf("\n%d %d %d %d", rawData[0], rawData[1], rawData[2], rawData[3]); 
+        //fflush(stdout);
+        //printf("\n");
+        count=(rawData[0]*pow(16, 4))+(rawData[1]*pow(16, 2))+(rawData[2]*pow(16, 0));
+        
+        speed=freq*(2*3.1415/res)*(count-count_delayed);
+        //printf("\r%lf", count); 
+        //fflush(stdout);
+        count_delayed=count;
+        //printf("\n");
+        //sleep(0.5);
+    }
+
+    */
+   
\ No newline at end of file
diff --git a/lidar b/lidar
new file mode 100755
index 0000000000000000000000000000000000000000..ea924f6bf2731f93cfe0a0c177158a3659f4cdac
Binary files /dev/null and b/lidar differ
diff --git a/rplidar_sdk-master/app/ultra_simple/main.cpp b/rplidar_sdk-master/app/ultra_simple/main.cpp
index 3f5463ace49b4749e29cba509fcd019811d1eaf1..f3c142fa9b087af35745945aa093c8941403aea2 100644
--- a/rplidar_sdk-master/app/ultra_simple/main.cpp
+++ b/rplidar_sdk-master/app/ultra_simple/main.cpp
@@ -293,13 +293,17 @@ int main(int argc, const char * argv[]) {
             break;
         }
 
+        drv->stop();
+	    delay(200);
+        
+        drv->setMotorSpeed(0);
         goto on_finished;
     }
 
-    drv->stop();
-	delay(200);
-    drv->setMotorSpeed(0);
-        
+    
+    
+    
+
 
     // done!
 on_finished:
diff --git a/rplidar_sdk-master/mak_common.inc b/rplidar_sdk-master/mak_common.inc
index 0b63e8db4a95a6980b2f278790ca9adf8130c162..87188d2819a5451bc37e664f6a9f2efdf9ef24c9 100644
--- a/rplidar_sdk-master/mak_common.inc
+++ b/rplidar_sdk-master/mak_common.inc
@@ -72,6 +72,7 @@ $(APP_TARGET): $(OBJ) $(EXTRA_OBJ) $(SDK_TARGET)
 	@$(MKDIR) `dirname $@`
 	@echo " LD   $@"
 	$(CMD_HIDE)$(CC) $(ALL_CXXFLAGS) -o $@ $^ $(LDFLAGS)  
+	mv $(BUILD_ROOT)/output/$(BUILD_TARGET_PLATFORM)/$(OUTPUT_BUILD_PREFIX)/lidar $(BUILD_ROOT)/..
 
 
 #
@@ -81,6 +82,7 @@ $(TARGET_OBJ_ROOT)/%.o: %.cpp
 	@echo " CXX  $<"
 	$(CMD_HIDE)$(CXX) -c $(ALL_CXXFLAGS) $< -o $@ 
 
+
 # Compile: create object files from C source files.
 $(TARGET_OBJ_ROOT)/%.o: %.c
 	@$(MKDIR) `dirname $@`
@@ -91,5 +93,4 @@ $(TARGET_OBJ_ROOT)/%.o: %.c
 $(TARGET_OBJ_ROOT)/%.o: %.S
 	@$(MKDIR) `dirname $@`
 	@echo " AS   $<"
-	$(CMD_HIDE)$(CC) -c $(ALL_ASFLAGS) $< -o $@
-
+	$(CMD_HIDE)$(CC) -c $(ALL_ASFLAGS) $< -o $@
\ No newline at end of file
diff --git a/rplidar_sdk-master/sdk/include/rplidar.h b/rplidar_sdk-master/sdk/include/rplidar.h
index 2f7de3d70a84bcd0ba118d5a646cb0751cdfee27..a6dd538baae2bfe50f50195eb4ce45cd948eec70 100644
--- a/rplidar_sdk-master/sdk/include/rplidar.h
+++ b/rplidar_sdk-master/sdk/include/rplidar.h
@@ -35,7 +35,7 @@
 #pragma once
 
 #include <vector>
-#include "hal/types.h"
+#include "../src/hal/types.h"
 #include "rplidar_protocol.h"
 #include "rplidar_cmd.h"