diff --git a/Makefile b/Makefile
index a37cc1264bef3a088f75397928a0151736d3fc9a..f00e7fa78484e32f2fad2043d01d00646fe4b191 100644
--- a/Makefile
+++ b/Makefile
@@ -12,6 +12,9 @@ i2c : compile_LED
 uart : compile_UART
 	sudo ./uart
 
+spi : compile_spi
+	sudo ./spi
+
 # compilations
 compile_switch :
 	g++ -o switch switch.cpp -lwiringPi
@@ -25,6 +28,9 @@ compile_LED :
 compile_UART :
 	g++ -o uart uart.cpp -lwiringPi
 
+compile_spi : 
+	g++ -o spi spi.cpp -l wiringPi
+
 .PHONY : clean
 clean :
-	rm -rf switch motor led i2c uart
+	rm -rf switch motor led i2c uart spi
diff --git a/spi.cpp b/spi.cpp
index ede3319b9eaa1e31167474c892245206bc3f0455..36d0168a02f1b7c966dee6c14816235a1b0ad1af 100644
--- a/spi.cpp
+++ b/spi.cpp
@@ -20,12 +20,19 @@ int main(int argc, char const *argv[])
         exit(EXIT_FAILURE);
     }
 
-    buff[0] = 0x40;
-    buff[1] = 0x01;
-
-    result = wiringPiSPIDataRW(CHANNEL_CAN, buff, 2);
-
-
+    int reg = 0x42;
+
+    int GPIO[] = {0b00000001, 0b00000010, 0b00001000, 0b00010000};
+    buff[0] = reg;
+    for (int i = 0; i < 4; i++) {
+        buff[1] = GPIO[i];
+        printf("buff %i : %x %x\n",i, buff[0], buff[1]);
+        result = wiringPiSPIDataRW(CHANNEL_CAN, buff, 2);
+        printf("buff %i : %x %x\n",i, buff[0], buff[1]);
+        buff[0] = reg;
+        delay(1500);
+    }
+    
 
     return 0;
 }