Code to work with NeoPixels

Dependencies:   NeoStrip mbed

Revision:
1:42b43fa7362f
Parent:
0:c350fa2f0c19
Child:
2:35fd99de07b3
--- a/main.cpp	Wed Apr 22 14:08:15 2015 +0000
+++ b/main.cpp	Thu Apr 23 17:04:03 2015 +0000
@@ -75,13 +75,18 @@
 void setRGBStrip(int r, int g, int b); //sets colour of a strip of 8 RGB Pixels
 void setRGBStrips(int colours[4][3]);  //sets colour of 4 strips of 8 RGB Pixels
 void setRGBPixels(int colours[8][3]); //sets sequence of colours for a strip of 8 RGB Pixels
-void setRGBAll(int colours[4][8][3]); //sets a sequence of colours for 4 strips of 8 RGB Pixels
+//void setRGBAll(int colours[4][8][3]); //sets a sequence of colours for 4 strips of 8 RGB Pixels
+void setRGBFloor1(int colours[2][8][3]); //sets a sequence of colours for 2 strips of 8 RGB Pixels
+void setRGBFloor2(int colours[2][8][3]); //sets a sequence of colours for 2 strips of 8 RGB Pixels
+
+
 void spi_init(); //initializes SPI pin at correct bit length and bit rate
 int * decimalToBinary(int n); //converts a decimal value between 0 and 255 to an 8 bit binary array of 0xF00 (0) and 0xFF0 (1)
 
 //initialize pins 
 DigitalOut volt(p16); //pin for LV voltage
-SPI spi(p5, p6, p7);//pin for SPI communication - p5 MOSI p5 MISO p6 SCLK
+SPI spi1(p5, p6, p7);//pin for SPI communication - p5 MOSI p5 MISO p6 SCLK
+SPI spi2(p11, p12, p13);//pin for SPI communication - p5 MOSI p5 MISO p6 SCLK
 NeoStrip strip(p5,8);
 
 int main() {
@@ -1591,207 +1596,108 @@
     wait_us(60);   
 }
 
-void setRGBAll(int colours[4][8][3]){
+void setRGBFloor_2(int room1[8][3], int room2[8][3]){
     //translate int values to array of 0xF00 (0) and 0xFF0 (1) binary 
     //room1
     int r00_array[8]; //LED0
     int g00_array[8];
     int b00_array[8];
-    memcpy(r00_array, decimalToBinary(colours[0][0][0]), sizeof(r00_array));
-    memcpy(g00_array, decimalToBinary(colours[0][0][1]), sizeof(g00_array));
-    memcpy(b00_array, decimalToBinary(colours[0][0][2]), sizeof(b00_array));
+    memcpy(r00_array, decimalToBinary(room1[0][0]), sizeof(r00_array));
+    memcpy(g00_array, decimalToBinary(room1[0][1]), sizeof(g00_array));
+    memcpy(b00_array, decimalToBinary(room1[0][2]), sizeof(b00_array));
     int r01_array[8]; //LED1
     int g01_array[8];
     int b01_array[8];
-    memcpy(r01_array, decimalToBinary(colours[0][1][0]), sizeof(r01_array));
-    memcpy(g01_array, decimalToBinary(colours[0][1][1]), sizeof(g01_array));
-    memcpy(b01_array, decimalToBinary(colours[0][1][2]), sizeof(b01_array));
+    memcpy(r01_array, decimalToBinary(room1[1][0]), sizeof(r01_array));
+    memcpy(g01_array, decimalToBinary(room1[1][1]), sizeof(g01_array));
+    memcpy(b01_array, decimalToBinary(room1[1][2]), sizeof(b01_array));
     int r02_array[8]; //LED2
     int g02_array[8];
     int b02_array[8];
-    memcpy(r02_array, decimalToBinary(colours[0][2][0]), sizeof(r02_array));
-    memcpy(g02_array, decimalToBinary(colours[0][2][1]), sizeof(g02_array));
-    memcpy(b02_array, decimalToBinary(colours[0][2][2]), sizeof(b02_array));
+    memcpy(r02_array, decimalToBinary(room1[2][0]), sizeof(r02_array));
+    memcpy(g02_array, decimalToBinary(room1[2][1]), sizeof(g02_array));
+    memcpy(b02_array, decimalToBinary(room1[2][2]), sizeof(b02_array));
     int r03_array[8]; //LED3
     int g03_array[8];
     int b03_array[8];
-    memcpy(r03_array, decimalToBinary(colours[0][3][0]), sizeof(r03_array));
-    memcpy(g03_array, decimalToBinary(colours[0][3][1]), sizeof(g03_array));
-    memcpy(b03_array, decimalToBinary(colours[0][3][2]), sizeof(b03_array));
+    memcpy(r03_array, decimalToBinary(room1[3][0]), sizeof(r03_array));
+    memcpy(g03_array, decimalToBinary(room1[3][1]), sizeof(g03_array));
+    memcpy(b03_array, decimalToBinary(room1[3][2]), sizeof(b03_array));
     int r04_array[8]; //LED4
     int g04_array[8];
     int b04_array[8];
-    memcpy(r04_array, decimalToBinary(colours[0][4][0]), sizeof(r04_array));
-    memcpy(g04_array, decimalToBinary(colours[0][4][1]), sizeof(g04_array));
-    memcpy(b04_array, decimalToBinary(colours[0][4][2]), sizeof(b04_array));
+    memcpy(r04_array, decimalToBinary(room1[4][0]), sizeof(r04_array));
+    memcpy(g04_array, decimalToBinary(room1[4][1]), sizeof(g04_array));
+    memcpy(b04_array, decimalToBinary(room1[4][2]), sizeof(b04_array));
     int r05_array[8]; //LED5
     int g05_array[8];
     int b05_array[8];
-    memcpy(r05_array, decimalToBinary(colours[0][5][0]), sizeof(r05_array));
-    memcpy(g05_array, decimalToBinary(colours[0][5][1]), sizeof(g05_array));
-    memcpy(b05_array, decimalToBinary(colours[0][5][2]), sizeof(b05_array));
+    memcpy(r05_array, decimalToBinary(room1[5][0]), sizeof(r05_array));
+    memcpy(g05_array, decimalToBinary(room1[5][1]), sizeof(g05_array));
+    memcpy(b05_array, decimalToBinary(room1[5][2]), sizeof(b05_array));
     int r06_array[8]; //LED6
     int g06_array[8];
     int b06_array[8];
-    memcpy(r06_array, decimalToBinary(colours[0][6][0]), sizeof(r06_array));
-    memcpy(g06_array, decimalToBinary(colours[0][6][1]), sizeof(g06_array));
-    memcpy(b06_array, decimalToBinary(colours[0][6][2]), sizeof(b06_array));
+    memcpy(r06_array, decimalToBinary(room1[6][0]), sizeof(r06_array));
+    memcpy(g06_array, decimalToBinary(room1[6][1]), sizeof(g06_array));
+    memcpy(b06_array, decimalToBinary(room1[6][2]), sizeof(b06_array));
     int r07_array[8]; //LED7
     int g07_array[8];
     int b07_array[8];
-    memcpy(r07_array, decimalToBinary(colours[0][7][0]), sizeof(r07_array));
-    memcpy(g07_array, decimalToBinary(colours[0][7][1]), sizeof(g07_array));
-    memcpy(b07_array, decimalToBinary(colours[0][7][2]), sizeof(b07_array));
+    memcpy(r07_array, decimalToBinary(room1[7][0]), sizeof(r07_array));
+    memcpy(g07_array, decimalToBinary(room1[7][1]), sizeof(g07_array));
+    memcpy(b07_array, decimalToBinary(room1[7][2]), sizeof(b07_array));
     
     //room2
     int r10_array[8]; //LED0
     int g10_array[8];
     int b10_array[8];
-    memcpy(r10_array, decimalToBinary(colours[1][0][0]), sizeof(r10_array));
-    memcpy(g10_array, decimalToBinary(colours[1][0][1]), sizeof(g10_array));
-    memcpy(b10_array, decimalToBinary(colours[1][0][2]), sizeof(b10_array));
+    memcpy(r10_array, decimalToBinary(room2[0][0]), sizeof(r10_array));
+    memcpy(g10_array, decimalToBinary(room2[0][1]), sizeof(g10_array));
+    memcpy(b10_array, decimalToBinary(room2[0][2]), sizeof(b10_array));
     int r11_array[8]; //LED1
     int g11_array[8];
     int b11_array[8];
-    memcpy(r11_array, decimalToBinary(colours[1][1][0]), sizeof(r11_array));
-    memcpy(g11_array, decimalToBinary(colours[1][1][1]), sizeof(g11_array));
-    memcpy(b11_array, decimalToBinary(colours[1][1][2]), sizeof(b11_array));
+    memcpy(r11_array, decimalToBinary(room2[1][0]), sizeof(r11_array));
+    memcpy(g11_array, decimalToBinary(room2[1][1]), sizeof(g11_array));
+    memcpy(b11_array, decimalToBinary(room2[1][2]), sizeof(b11_array));
     int r12_array[8]; //LED2
     int g12_array[8];
     int b12_array[8];
-    memcpy(r12_array, decimalToBinary(colours[1][2][0]), sizeof(r12_array));
-    memcpy(g12_array, decimalToBinary(colours[1][2][1]), sizeof(g12_array));
-    memcpy(b12_array, decimalToBinary(colours[1][2][2]), sizeof(b12_array));
+    memcpy(r12_array, decimalToBinary(room2[2][0]), sizeof(r12_array));
+    memcpy(g12_array, decimalToBinary(room2[2][1]), sizeof(g12_array));
+    memcpy(b12_array, decimalToBinary(room2[2][2]), sizeof(b12_array));
     int r13_array[8]; //LED3
     int g13_array[8];
     int b13_array[8];
-    memcpy(r13_array, decimalToBinary(colours[1][3][0]), sizeof(r13_array));
-    memcpy(g13_array, decimalToBinary(colours[1][3][1]), sizeof(g13_array));
-    memcpy(b13_array, decimalToBinary(colours[1][3][2]), sizeof(b13_array));
+    memcpy(r13_array, decimalToBinary(room2[3][0]), sizeof(r13_array));
+    memcpy(g13_array, decimalToBinary(room2[3][1]), sizeof(g13_array));
+    memcpy(b13_array, decimalToBinary(room2[3][2]), sizeof(b13_array));
     int r14_array[8]; //LED4
     int g14_array[8];
     int b14_array[8];
-    memcpy(r14_array, decimalToBinary(colours[1][4][0]), sizeof(r14_array));
-    memcpy(g14_array, decimalToBinary(colours[1][4][1]), sizeof(g14_array));
-    memcpy(b14_array, decimalToBinary(colours[1][4][2]), sizeof(b14_array));
+    memcpy(r14_array, decimalToBinary(room2[4][0]), sizeof(r14_array));
+    memcpy(g14_array, decimalToBinary(room2[4][1]), sizeof(g14_array));
+    memcpy(b14_array, decimalToBinary(room2[4][2]), sizeof(b14_array));
     int r15_array[8]; //LED5
     int g15_array[8];
     int b15_array[8];
-    memcpy(r15_array, decimalToBinary(colours[1][5][0]), sizeof(r15_array));
-    memcpy(g15_array, decimalToBinary(colours[1][5][1]), sizeof(g15_array));
-    memcpy(b15_array, decimalToBinary(colours[1][5][2]), sizeof(b15_array));
+    memcpy(r15_array, decimalToBinary(room2[5][0]), sizeof(r15_array));
+    memcpy(g15_array, decimalToBinary(room2[5][1]), sizeof(g15_array));
+    memcpy(b15_array, decimalToBinary(room2[5][2]), sizeof(b15_array));
     int r16_array[8]; //LED6
     int g16_array[8];
     int b16_array[8];
-    memcpy(r16_array, decimalToBinary(colours[1][6][0]), sizeof(r16_array));
-    memcpy(g16_array, decimalToBinary(colours[1][6][1]), sizeof(g16_array));
-    memcpy(b16_array, decimalToBinary(colours[1][6][2]), sizeof(b16_array));
+    memcpy(r16_array, decimalToBinary(room2[6][0]), sizeof(r16_array));
+    memcpy(g16_array, decimalToBinary(room2[6][1]), sizeof(g16_array));
+    memcpy(b16_array, decimalToBinary(room2[6][2]), sizeof(b16_array));
     int r17_array[8]; //LED7
     int g17_array[8];
     int b17_array[8];
-    memcpy(r17_array, decimalToBinary(colours[1][7][0]), sizeof(r17_array));
-    memcpy(g17_array, decimalToBinary(colours[1][7][1]), sizeof(g17_array));
-    memcpy(b17_array, decimalToBinary(colours[1][7][2]), sizeof(b17_array));
+    memcpy(r17_array, decimalToBinary(room2[7][0]), sizeof(r17_array));
+    memcpy(g17_array, decimalToBinary(room2[7][1]), sizeof(g17_array));
+    memcpy(b17_array, decimalToBinary(room2[7][2]), sizeof(b17_array));
     
-    //room3
-    int r20_array[8]; //LED0
-    int g20_array[8];
-    int b20_array[8];
-    memcpy(r20_array, decimalToBinary(colours[2][0][0]), sizeof(r20_array));
-    memcpy(g20_array, decimalToBinary(colours[2][0][1]), sizeof(g20_array));
-    memcpy(b20_array, decimalToBinary(colours[2][0][2]), sizeof(b20_array));
-    int r21_array[8]; //LED1
-    int g21_array[8];
-    int b21_array[8];
-    memcpy(r21_array, decimalToBinary(colours[2][1][0]), sizeof(r21_array));
-    memcpy(g21_array, decimalToBinary(colours[2][1][1]), sizeof(g21_array));
-    memcpy(b21_array, decimalToBinary(colours[2][1][2]), sizeof(b21_array));
-    int r22_array[8]; //LED2
-    int g22_array[8];
-    int b22_array[8];
-    memcpy(r22_array, decimalToBinary(colours[2][2][0]), sizeof(r22_array));
-    memcpy(g22_array, decimalToBinary(colours[2][2][1]), sizeof(g22_array));
-    memcpy(b22_array, decimalToBinary(colours[2][2][2]), sizeof(b22_array));
-    int r23_array[8]; //LED3
-    int g23_array[8];
-    int b23_array[8];
-    memcpy(r23_array, decimalToBinary(colours[2][3][0]), sizeof(r23_array));
-    memcpy(g23_array, decimalToBinary(colours[2][3][1]), sizeof(g23_array));
-    memcpy(b23_array, decimalToBinary(colours[2][3][2]), sizeof(b23_array));
-    int r24_array[8]; //LED4
-    int g24_array[8];
-    int b24_array[8];
-    memcpy(r24_array, decimalToBinary(colours[2][4][0]), sizeof(r24_array));
-    memcpy(g24_array, decimalToBinary(colours[2][4][1]), sizeof(g24_array));
-    memcpy(b24_array, decimalToBinary(colours[2][4][2]), sizeof(b24_array));
-    int r25_array[8]; //LED5
-    int g25_array[8];
-    int b25_array[8];
-    memcpy(r25_array, decimalToBinary(colours[2][5][0]), sizeof(r25_array));
-    memcpy(g25_array, decimalToBinary(colours[2][5][1]), sizeof(g25_array));
-    memcpy(b25_array, decimalToBinary(colours[2][5][2]), sizeof(b25_array));
-    int r26_array[8]; //LED6
-    int g26_array[8];
-    int b26_array[8];
-    memcpy(r26_array, decimalToBinary(colours[2][6][0]), sizeof(r26_array));
-    memcpy(g26_array, decimalToBinary(colours[2][6][1]), sizeof(g26_array));
-    memcpy(b26_array, decimalToBinary(colours[2][6][2]), sizeof(b26_array));
-    int r27_array[8]; //LED7
-    int g27_array[8];
-    int b27_array[8];
-    memcpy(r27_array, decimalToBinary(colours[2][7][0]), sizeof(r27_array));
-    memcpy(g27_array, decimalToBinary(colours[2][7][1]), sizeof(g27_array));
-    memcpy(b27_array, decimalToBinary(colours[2][7][2]), sizeof(b27_array));
-    
-    //room4
-    int r30_array[8]; //LED0
-    int g30_array[8];
-    int b30_array[8];
-    memcpy(r30_array, decimalToBinary(colours[3][0][0]), sizeof(r30_array));
-    memcpy(g30_array, decimalToBinary(colours[3][0][1]), sizeof(g30_array));
-    memcpy(b30_array, decimalToBinary(colours[3][0][2]), sizeof(b30_array));
-    int r31_array[8]; //LED1
-    int g31_array[8];
-    int b31_array[8];
-    memcpy(r31_array, decimalToBinary(colours[3][1][0]), sizeof(r31_array));
-    memcpy(g31_array, decimalToBinary(colours[3][1][1]), sizeof(g31_array));
-    memcpy(b31_array, decimalToBinary(colours[3][1][2]), sizeof(b31_array));
-    int r32_array[8]; //LED2
-    int g32_array[8];
-    int b32_array[8];
-    memcpy(r32_array, decimalToBinary(colours[3][2][0]), sizeof(r32_array));
-    memcpy(g32_array, decimalToBinary(colours[3][2][1]), sizeof(g32_array));
-    memcpy(b32_array, decimalToBinary(colours[3][2][2]), sizeof(b32_array));
-    int r33_array[8]; //LED3
-    int g33_array[8];
-    int b33_array[8];
-    memcpy(r33_array, decimalToBinary(colours[3][3][0]), sizeof(r33_array));
-    memcpy(g33_array, decimalToBinary(colours[3][3][1]), sizeof(g33_array));
-    memcpy(b33_array, decimalToBinary(colours[3][3][2]), sizeof(b33_array));
-    int r34_array[8]; //LED4
-    int g34_array[8];
-    int b34_array[8];
-    memcpy(r34_array, decimalToBinary(colours[3][4][0]), sizeof(r34_array));
-    memcpy(g34_array, decimalToBinary(colours[3][4][1]), sizeof(g34_array));
-    memcpy(b34_array, decimalToBinary(colours[3][4][2]), sizeof(b34_array));
-    int r35_array[8]; //LED5
-    int g35_array[8];
-    int b35_array[8];
-    memcpy(r35_array, decimalToBinary(colours[3][5][0]), sizeof(r35_array));
-    memcpy(g35_array, decimalToBinary(colours[3][5][1]), sizeof(g35_array));
-    memcpy(b35_array, decimalToBinary(colours[3][5][2]), sizeof(b35_array));
-    int r36_array[8]; //LED6
-    int g36_array[8];
-    int b36_array[8];
-    memcpy(r36_array, decimalToBinary(colours[3][6][0]), sizeof(r36_array));
-    memcpy(g36_array, decimalToBinary(colours[3][6][1]), sizeof(g36_array));
-    memcpy(b36_array, decimalToBinary(colours[3][6][2]), sizeof(b36_array));
-    int r37_array[8]; //LED7
-    int g37_array[8];
-    int b37_array[8];
-    memcpy(r37_array, decimalToBinary(colours[3][7][0]), sizeof(r37_array));
-    memcpy(g37_array, decimalToBinary(colours[3][7][1]), sizeof(g37_array));
-    memcpy(b37_array, decimalToBinary(colours[3][7][2]), sizeof(b37_array));
     //send commands to LED Driver
      //initialize SPI
      spi_init();
@@ -2245,456 +2151,567 @@
     spi.write(b17_array[2]); //set b2 bit
     spi.write(b17_array[1]); //set b1 bit 
     spi.write(b17_array[0]); //set b0 bit
+    
+    //wait for latch
+    wait_us(60);   
+}
+
+void setRGBFloor_2(int room3[8][3], int room4[8][3]){
+    //translate int values to array of 0xF00 (0) and 0xFF0 (1) binary 
+    //room2
+    int r00_array[8]; //LED0
+    int g00_array[8];
+    int b00_array[8];
+    memcpy(r00_array, decimalToBinary(room3[0][0]), sizeof(r00_array));
+    memcpy(g00_array, decimalToBinary(room3[0][1]), sizeof(g00_array));
+    memcpy(b00_array, decimalToBinary(room3[0][2]), sizeof(b00_array));
+    int r01_array[8]; //LED1
+    int g01_array[8];
+    int b01_array[8];
+    memcpy(r01_array, decimalToBinary(room3[1][0]), sizeof(r01_array));
+    memcpy(g01_array, decimalToBinary(room3[1][1]), sizeof(g01_array));
+    memcpy(b01_array, decimalToBinary(room3[1][2]), sizeof(b01_array));
+    int r02_array[8]; //LED2
+    int g02_array[8];
+    int b02_array[8];
+    memcpy(r02_array, decimalToBinary(room3[2][0]), sizeof(r02_array));
+    memcpy(g02_array, decimalToBinary(room3[2][1]), sizeof(g02_array));
+    memcpy(b02_array, decimalToBinary(room3[2][2]), sizeof(b02_array));
+    int r03_array[8]; //LED3
+    int g03_array[8];
+    int b03_array[8];
+    memcpy(r03_array, decimalToBinary(room3[3][0]), sizeof(r03_array));
+    memcpy(g03_array, decimalToBinary(room3[3][1]), sizeof(g03_array));
+    memcpy(b03_array, decimalToBinary(room3[3][2]), sizeof(b03_array));
+    int r04_array[8]; //LED4
+    int g04_array[8];
+    int b04_array[8];
+    memcpy(r04_array, decimalToBinary(room3[4][0]), sizeof(r04_array));
+    memcpy(g04_array, decimalToBinary(room3[4][1]), sizeof(g04_array));
+    memcpy(b04_array, decimalToBinary(room3[4][2]), sizeof(b04_array));
+    int r05_array[8]; //LED5
+    int g05_array[8];
+    int b05_array[8];
+    memcpy(r05_array, decimalToBinary(room3[5][0]), sizeof(r05_array));
+    memcpy(g05_array, decimalToBinary(room3[5][1]), sizeof(g05_array));
+    memcpy(b05_array, decimalToBinary(room3[5][2]), sizeof(b05_array));
+    int r06_array[8]; //LED6
+    int g06_array[8];
+    int b06_array[8];
+    memcpy(r06_array, decimalToBinary(room3[6][0]), sizeof(r06_array));
+    memcpy(g06_array, decimalToBinary(room3[6][1]), sizeof(g06_array));
+    memcpy(b06_array, decimalToBinary(room3[6][2]), sizeof(b06_array));
+    int r07_array[8]; //LED7
+    int g07_array[8];
+    int b07_array[8];
+    memcpy(r07_array, decimalToBinary(room3[7][0]), sizeof(r07_array));
+    memcpy(g07_array, decimalToBinary(room3[7][1]), sizeof(g07_array));
+    memcpy(b07_array, decimalToBinary(room3[7][2]), sizeof(b07_array));
+    
+    //room4
+    int r10_array[8]; //LED0
+    int g10_array[8];
+    int b10_array[8];
+    memcpy(r10_array, decimalToBinary(room4[0][0]), sizeof(r10_array));
+    memcpy(g10_array, decimalToBinary(room4[0][1]), sizeof(g10_array));
+    memcpy(b10_array, decimalToBinary(room4[0][2]), sizeof(b10_array));
+    int r11_array[8]; //LED1
+    int g11_array[8];
+    int b11_array[8];
+    memcpy(r11_array, decimalToBinary(room4[1][0]), sizeof(r11_array));
+    memcpy(g11_array, decimalToBinary(room4[1][1]), sizeof(g11_array));
+    memcpy(b11_array, decimalToBinary(room4[1][2]), sizeof(b11_array));
+    int r12_array[8]; //LED2
+    int g12_array[8];
+    int b12_array[8];
+    memcpy(r12_array, decimalToBinary(room4[2][0]), sizeof(r12_array));
+    memcpy(g12_array, decimalToBinary(room4[2][1]), sizeof(g12_array));
+    memcpy(b12_array, decimalToBinary(room4[2][2]), sizeof(b12_array));
+    int r13_array[8]; //LED3
+    int g13_array[8];
+    int b13_array[8];
+    memcpy(r13_array, decimalToBinary(room4[3][0]), sizeof(r13_array));
+    memcpy(g13_array, decimalToBinary(room4[3][1]), sizeof(g13_array));
+    memcpy(b13_array, decimalToBinary(room4[3][2]), sizeof(b13_array));
+    int r14_array[8]; //LED4
+    int g14_array[8];
+    int b14_array[8];
+    memcpy(r14_array, decimalToBinary(room4[4][0]), sizeof(r14_array));
+    memcpy(g14_array, decimalToBinary(room4[4][1]), sizeof(g14_array));
+    memcpy(b14_array, decimalToBinary(room4[4][2]), sizeof(b14_array));
+    int r15_array[8]; //LED5
+    int g15_array[8];
+    int b15_array[8];
+    memcpy(r15_array, decimalToBinary(room4[5][0]), sizeof(r15_array));
+    memcpy(g15_array, decimalToBinary(room4[5][1]), sizeof(g15_array));
+    memcpy(b15_array, decimalToBinary(room4[5][2]), sizeof(b15_array));
+    int r16_array[8]; //LED6
+    int g16_array[8];
+    int b16_array[8];
+    memcpy(r16_array, decimalToBinary(room4[6][0]), sizeof(r16_array));
+    memcpy(g16_array, decimalToBinary(room4[6][1]), sizeof(g16_array));
+    memcpy(b16_array, decimalToBinary(room4[6][2]), sizeof(b16_array));
+    int r17_array[8]; //LED7
+    int g17_array[8];
+    int b17_array[8];
+    memcpy(r17_array, decimalToBinary(room4[7][0]), sizeof(r17_array));
+    memcpy(g17_array, decimalToBinary(room4[7][1]), sizeof(g17_array));
+    memcpy(b17_array, decimalToBinary(room4[7][2]), sizeof(b17_array));
+    
+    //send commands to LED Driver
+     //initialize SPI
+     spi_init();
     //room3
     //LED0
     //set green bits
-    spi.write(g20_array[7]); //set g7 bit
-    spi.write(g20_array[6]); //set g6 bit
-    spi.write(g20_array[5]); //set g5 bit
-    spi.write(g20_array[4]); //set g4 bit
-    spi.write(g20_array[3]); //set g3 bit
-    spi.write(g20_array[2]); //set g2 bit
-    spi.write(g20_array[1]); //set g1 bit 
-    spi.write(g20_array[0]);//set g0 bit
+    spi.write(g00_array[7]); //set g7 bit
+    spi.write(g00_array[6]); //set g6 bit
+    spi.write(g00_array[5]); //set g5 bit
+    spi.write(g00_array[4]); //set g4 bit
+    spi.write(g00_array[3]); //set g3 bit
+    spi.write(g00_array[2]); //set g2 bit
+    spi.write(g00_array[1]); //set g1 bit 
+    spi.write(g00_array[0]);//set g0 bit
     //set red bits
-    spi.write(r20_array[7]);//set r7 bit
-    spi.write(r20_array[6]); //set r6 bit
-    spi.write(r20_array[5]); //set r5 bit
-    spi.write(r20_array[4]); //set r4 bit
-    spi.write(r20_array[3]); //set r3 bit
-    spi.write(r20_array[2]); //set r2 bit
-    spi.write(r20_array[1]); //set r1 bit 
-    spi.write(r20_array[0]); //set r0 bit
+    spi.write(r00_array[7]);//set r7 bit
+    spi.write(r00_array[6]); //set r6 bit
+    spi.write(r00_array[5]); //set r5 bit
+    spi.write(r00_array[4]); //set r4 bit
+    spi.write(r00_array[3]); //set r3 bit
+    spi.write(r00_array[2]); //set r2 bit
+    spi.write(r00_array[1]); //set r1 bit 
+    spi.write(r00_array[0]); //set r0 bit
     //set blue bits
-    spi.write(b20_array[7]); //set b7 bit
-    spi.write(b20_array[6]); //set b6 bit
-    spi.write(b20_array[5]); //set b5 bit
-    spi.write(b20_array[4]); //set b4 bit
-    spi.write(b20_array[3]); //set b3 bit
-    spi.write(b20_array[2]); //set b2 bit
-    spi.write(b20_array[1]); //set b1 bit 
-    spi.write(b20_array[0]); //set b0 bit
+    spi.write(b00_array[7]); //set b7 bit
+    spi.write(b00_array[6]); //set b6 bit
+    spi.write(b00_array[5]); //set b5 bit
+    spi.write(b00_array[4]); //set b4 bit
+    spi.write(b00_array[3]); //set b3 bit
+    spi.write(b00_array[2]); //set b2 bit
+    spi.write(b00_array[1]); //set b1 bit 
+    spi.write(b00_array[0]); //set b0 bit
     //LED1
     //set green bits
-    spi.write(g21_array[7]); //set g7 bit
-    spi.write(g21_array[6]); //set g6 bit
-    spi.write(g21_array[5]); //set g5 bit
-    spi.write(g21_array[4]); //set g4 bit
-    spi.write(g21_array[3]); //set g3 bit
-    spi.write(g21_array[2]); //set g2 bit
-    spi.write(g21_array[1]); //set g1 bit 
-    spi.write(g21_array[0]);//set g0 bit
+    spi.write(g01_array[7]); //set g7 bit
+    spi.write(g01_array[6]); //set g6 bit
+    spi.write(g01_array[5]); //set g5 bit
+    spi.write(g01_array[4]); //set g4 bit
+    spi.write(g01_array[3]); //set g3 bit
+    spi.write(g01_array[2]); //set g2 bit
+    spi.write(g01_array[1]); //set g1 bit 
+    spi.write(g01_array[0]);//set g0 bit
     //set red bits
-    spi.write(r21_array[7]);//set r7 bit
-    spi.write(r21_array[6]); //set r6 bit
-    spi.write(r21_array[5]); //set r5 bit
-    spi.write(r21_array[4]); //set r4 bit
-    spi.write(r21_array[3]); //set r3 bit
-    spi.write(r21_array[2]); //set r2 bit
-    spi.write(r21_array[1]); //set r1 bit 
-    spi.write(r21_array[0]); //set r0 bit
+    spi.write(r01_array[7]);//set r7 bit
+    spi.write(r01_array[6]); //set r6 bit
+    spi.write(r01_array[5]); //set r5 bit
+    spi.write(r01_array[4]); //set r4 bit
+    spi.write(r01_array[3]); //set r3 bit
+    spi.write(r01_array[2]); //set r2 bit
+    spi.write(r01_array[1]); //set r1 bit 
+    spi.write(r01_array[0]); //set r0 bit
     //set blue bits
-    spi.write(b21_array[7]); //set b7 bit
-    spi.write(b21_array[6]); //set b6 bit
-    spi.write(b21_array[5]); //set b5 bit
-    spi.write(b21_array[4]); //set b4 bit
-    spi.write(b21_array[3]); //set b3 bit
-    spi.write(b21_array[2]); //set b2 bit
-    spi.write(b21_array[1]); //set b1 bit 
-    spi.write(b21_array[0]); //set b0 bit
+    spi.write(b01_array[7]); //set b7 bit
+    spi.write(b01_array[6]); //set b6 bit
+    spi.write(b01_array[5]); //set b5 bit
+    spi.write(b01_array[4]); //set b4 bit
+    spi.write(b01_array[3]); //set b3 bit
+    spi.write(b01_array[2]); //set b2 bit
+    spi.write(b01_array[1]); //set b1 bit 
+    spi.write(b01_array[0]); //set b0 bit
     //LED2
     //set green bits
-    spi.write(g22_array[7]); //set g7 bit
-    spi.write(g22_array[6]); //set g6 bit
-    spi.write(g22_array[5]); //set g5 bit
-    spi.write(g22_array[4]); //set g4 bit
-    spi.write(g22_array[3]); //set g3 bit
-    spi.write(g22_array[2]); //set g2 bit
-    spi.write(g22_array[1]); //set g1 bit 
-    spi.write(g22_array[0]);//set g0 bit
+    spi.write(g02_array[7]); //set g7 bit
+    spi.write(g02_array[6]); //set g6 bit
+    spi.write(g02_array[5]); //set g5 bit
+    spi.write(g02_array[4]); //set g4 bit
+    spi.write(g02_array[3]); //set g3 bit
+    spi.write(g02_array[2]); //set g2 bit
+    spi.write(g02_array[1]); //set g1 bit 
+    spi.write(g02_array[0]);//set g0 bit
     //set red bits
-    spi.write(r22_array[7]);//set r7 bit
-    spi.write(r22_array[6]); //set r6 bit
-    spi.write(r22_array[5]); //set r5 bit
-    spi.write(r22_array[4]); //set r4 bit
-    spi.write(r22_array[3]); //set r3 bit
-    spi.write(r22_array[2]); //set r2 bit
-    spi.write(r22_array[1]); //set r1 bit 
-    spi.write(r22_array[0]); //set r0 bit
+    spi.write(r02_array[7]);//set r7 bit
+    spi.write(r02_array[6]); //set r6 bit
+    spi.write(r02_array[5]); //set r5 bit
+    spi.write(r02_array[4]); //set r4 bit
+    spi.write(r02_array[3]); //set r3 bit
+    spi.write(r02_array[2]); //set r2 bit
+    spi.write(r02_array[1]); //set r1 bit 
+    spi.write(r02_array[0]); //set r0 bit
     //set blue bits
-    spi.write(b22_array[7]); //set b7 bit
-    spi.write(b22_array[6]); //set b6 bit
-    spi.write(b22_array[5]); //set b5 bit
-    spi.write(b22_array[4]); //set b4 bit
-    spi.write(b22_array[3]); //set b3 bit
-    spi.write(b22_array[2]); //set b2 bit
-    spi.write(b22_array[1]); //set b1 bit 
-    spi.write(b22_array[0]); //set b0 bit
+    spi.write(b02_array[7]); //set b7 bit
+    spi.write(b02_array[6]); //set b6 bit
+    spi.write(b02_array[5]); //set b5 bit
+    spi.write(b02_array[4]); //set b4 bit
+    spi.write(b02_array[3]); //set b3 bit
+    spi.write(b02_array[2]); //set b2 bit
+    spi.write(b02_array[1]); //set b1 bit 
+    spi.write(b02_array[0]); //set b0 bit
     //LED3
     //set green bits
-    spi.write(g23_array[7]); //set g7 bit
-    spi.write(g23_array[6]); //set g6 bit
-    spi.write(g23_array[5]); //set g5 bit
-    spi.write(g23_array[4]); //set g4 bit
-    spi.write(g23_array[3]); //set g3 bit
-    spi.write(g23_array[2]); //set g2 bit
-    spi.write(g23_array[1]); //set g1 bit 
-    spi.write(g23_array[0]);//set g0 bit
+    spi.write(g03_array[7]); //set g7 bit
+    spi.write(g03_array[6]); //set g6 bit
+    spi.write(g03_array[5]); //set g5 bit
+    spi.write(g03_array[4]); //set g4 bit
+    spi.write(g03_array[3]); //set g3 bit
+    spi.write(g03_array[2]); //set g2 bit
+    spi.write(g03_array[1]); //set g1 bit 
+    spi.write(g03_array[0]);//set g0 bit
     //set red bits
-    spi.write(r23_array[7]);//set r7 bit
-    spi.write(r23_array[6]); //set r6 bit
-    spi.write(r23_array[5]); //set r5 bit
-    spi.write(r23_array[4]); //set r4 bit
-    spi.write(r23_array[3]); //set r3 bit
-    spi.write(r23_array[2]); //set r2 bit
-    spi.write(r23_array[1]); //set r1 bit 
-    spi.write(r23_array[0]); //set r0 bit
+    spi.write(r03_array[7]);//set r7 bit
+    spi.write(r03_array[6]); //set r6 bit
+    spi.write(r03_array[5]); //set r5 bit
+    spi.write(r03_array[4]); //set r4 bit
+    spi.write(r03_array[3]); //set r3 bit
+    spi.write(r03_array[2]); //set r2 bit
+    spi.write(r03_array[1]); //set r1 bit 
+    spi.write(r03_array[0]); //set r0 bit
     //set blue bits
-    spi.write(b23_array[7]); //set b7 bit
-    spi.write(b23_array[6]); //set b6 bit
-    spi.write(b23_array[5]); //set b5 bit
-    spi.write(b23_array[4]); //set b4 bit
-    spi.write(b23_array[3]); //set b3 bit
-    spi.write(b23_array[2]); //set b2 bit
-    spi.write(b23_array[1]); //set b1 bit 
-    spi.write(b23_array[0]); //set b0 bit
+    spi.write(b03_array[7]); //set b7 bit
+    spi.write(b03_array[6]); //set b6 bit
+    spi.write(b03_array[5]); //set b5 bit
+    spi.write(b03_array[4]); //set b4 bit
+    spi.write(b03_array[3]); //set b3 bit
+    spi.write(b03_array[2]); //set b2 bit
+    spi.write(b03_array[1]); //set b1 bit 
+    spi.write(b03_array[0]); //set b0 bit
     //LED4
    //set green bits
-    spi.write(g24_array[7]); //set g7 bit
-    spi.write(g24_array[6]); //set g6 bit
-    spi.write(g24_array[5]); //set g5 bit
-    spi.write(g24_array[4]); //set g4 bit
-    spi.write(g24_array[3]); //set g3 bit
-    spi.write(g24_array[2]); //set g2 bit
-    spi.write(g24_array[1]); //set g1 bit 
-    spi.write(g24_array[0]);//set g0 bit
+    spi.write(g04_array[7]); //set g7 bit
+    spi.write(g04_array[6]); //set g6 bit
+    spi.write(g04_array[5]); //set g5 bit
+    spi.write(g04_array[4]); //set g4 bit
+    spi.write(g04_array[3]); //set g3 bit
+    spi.write(g04_array[2]); //set g2 bit
+    spi.write(g04_array[1]); //set g1 bit 
+    spi.write(g04_array[0]);//set g0 bit
     //set red bits
-    spi.write(r24_array[7]);//set r7 bit
-    spi.write(r24_array[6]); //set r6 bit
-    spi.write(r24_array[5]); //set r5 bit
-    spi.write(r24_array[4]); //set r4 bit
-    spi.write(r24_array[3]); //set r3 bit
-    spi.write(r24_array[2]); //set r2 bit
-    spi.write(r24_array[1]); //set r1 bit 
-    spi.write(r24_array[0]); //set r0 bit
+    spi.write(r04_array[7]);//set r7 bit
+    spi.write(r04_array[6]); //set r6 bit
+    spi.write(r04_array[5]); //set r5 bit
+    spi.write(r04_array[4]); //set r4 bit
+    spi.write(r04_array[3]); //set r3 bit
+    spi.write(r04_array[2]); //set r2 bit
+    spi.write(r04_array[1]); //set r1 bit 
+    spi.write(r04_array[0]); //set r0 bit
     //set blue bits
-    spi.write(b24_array[7]); //set b7 bit
-    spi.write(b24_array[6]); //set b6 bit
-    spi.write(b24_array[5]); //set b5 bit
-    spi.write(b24_array[4]); //set b4 bit
-    spi.write(b24_array[3]); //set b3 bit
-    spi.write(b24_array[2]); //set b2 bit
-    spi.write(b24_array[1]); //set b1 bit 
-    spi.write(b24_array[0]); //set b0 bit
+    spi.write(b04_array[7]); //set b7 bit
+    spi.write(b04_array[6]); //set b6 bit
+    spi.write(b04_array[5]); //set b5 bit
+    spi.write(b04_array[4]); //set b4 bit
+    spi.write(b04_array[3]); //set b3 bit
+    spi.write(b04_array[2]); //set b2 bit
+    spi.write(b04_array[1]); //set b1 bit 
+    spi.write(b04_array[0]); //set b0 bit
     //LED5   
     //set green bits
-    spi.write(g25_array[7]); //set g7 bit
-    spi.write(g25_array[6]); //set g6 bit
-    spi.write(g25_array[5]); //set g5 bit
-    spi.write(g25_array[4]); //set g4 bit
-    spi.write(g25_array[3]); //set g3 bit
-    spi.write(g25_array[2]); //set g2 bit
-    spi.write(g25_array[1]); //set g1 bit 
-    spi.write(g25_array[0]);//set g0 bit
+    spi.write(g05_array[7]); //set g7 bit
+    spi.write(g05_array[6]); //set g6 bit
+    spi.write(g05_array[5]); //set g5 bit
+    spi.write(g05_array[4]); //set g4 bit
+    spi.write(g05_array[3]); //set g3 bit
+    spi.write(g05_array[2]); //set g2 bit
+    spi.write(g05_array[1]); //set g1 bit 
+    spi.write(g05_array[0]);//set g0 bit
     //set red bits
-    spi.write(r25_array[7]);//set r7 bit
-    spi.write(r25_array[6]); //set r6 bit
-    spi.write(r25_array[5]); //set r5 bit
-    spi.write(r25_array[4]); //set r4 bit
-    spi.write(r25_array[3]); //set r3 bit
-    spi.write(r25_array[2]); //set r2 bit
-    spi.write(r25_array[1]); //set r1 bit 
-    spi.write(r25_array[0]); //set r0 bit
+    spi.write(r05_array[7]);//set r7 bit
+    spi.write(r05_array[6]); //set r6 bit
+    spi.write(r05_array[5]); //set r5 bit
+    spi.write(r05_array[4]); //set r4 bit
+    spi.write(r05_array[3]); //set r3 bit
+    spi.write(r05_array[2]); //set r2 bit
+    spi.write(r05_array[1]); //set r1 bit 
+    spi.write(r05_array[0]); //set r0 bit
     //set blue bits
-    spi.write(b25_array[7]); //set b7 bit
-    spi.write(b25_array[6]); //set b6 bit
-    spi.write(b25_array[5]); //set b5 bit
-    spi.write(b25_array[4]); //set b4 bit
-    spi.write(b25_array[3]); //set b3 bit
-    spi.write(b25_array[2]); //set b2 bit
-    spi.write(b25_array[1]); //set b1 bit 
-    spi.write(b25_array[0]); //set b0 bit
+    spi.write(b05_array[7]); //set b7 bit
+    spi.write(b05_array[6]); //set b6 bit
+    spi.write(b05_array[5]); //set b5 bit
+    spi.write(b05_array[4]); //set b4 bit
+    spi.write(b05_array[3]); //set b3 bit
+    spi.write(b05_array[2]); //set b2 bit
+    spi.write(b05_array[1]); //set b1 bit 
+    spi.write(b05_array[0]); //set b0 bit
     //LED6
     //set green bits
-    spi.write(g26_array[7]); //set g7 bit
-    spi.write(g26_array[6]); //set g6 bit
-    spi.write(g26_array[5]); //set g5 bit
-    spi.write(g26_array[4]); //set g4 bit
-    spi.write(g26_array[3]); //set g3 bit
-    spi.write(g26_array[2]); //set g2 bit
-    spi.write(g26_array[1]); //set g1 bit 
-    spi.write(g26_array[0]);//set g0 bit
+    spi.write(g06_array[7]); //set g7 bit
+    spi.write(g06_array[6]); //set g6 bit
+    spi.write(g06_array[5]); //set g5 bit
+    spi.write(g06_array[4]); //set g4 bit
+    spi.write(g06_array[3]); //set g3 bit
+    spi.write(g06_array[2]); //set g2 bit
+    spi.write(g06_array[1]); //set g1 bit 
+    spi.write(g06_array[0]);//set g0 bit
     //set red bits
-    spi.write(r26_array[7]);//set r7 bit
-    spi.write(r26_array[6]); //set r6 bit
-    spi.write(r26_array[5]); //set r5 bit
-    spi.write(r26_array[4]); //set r4 bit
-    spi.write(r26_array[3]); //set r3 bit
-    spi.write(r26_array[2]); //set r2 bit
-    spi.write(r26_array[1]); //set r1 bit 
-    spi.write(r26_array[0]); //set r0 bit
+    spi.write(r06_array[7]);//set r7 bit
+    spi.write(r06_array[6]); //set r6 bit
+    spi.write(r06_array[5]); //set r5 bit
+    spi.write(r06_array[4]); //set r4 bit
+    spi.write(r06_array[3]); //set r3 bit
+    spi.write(r06_array[2]); //set r2 bit
+    spi.write(r06_array[1]); //set r1 bit 
+    spi.write(r06_array[0]); //set r0 bit
     //set blue bits
-    spi.write(b26_array[7]); //set b7 bit
-    spi.write(b26_array[6]); //set b6 bit
-    spi.write(b26_array[5]); //set b5 bit
-    spi.write(b26_array[4]); //set b4 bit
-    spi.write(b26_array[3]); //set b3 bit
-    spi.write(b26_array[2]); //set b2 bit
-    spi.write(b26_array[1]); //set b1 bit 
-    spi.write(b26_array[0]); //set b0 bit
+    spi.write(b06_array[7]); //set b7 bit
+    spi.write(b06_array[6]); //set b6 bit
+    spi.write(b06_array[5]); //set b5 bit
+    spi.write(b06_array[4]); //set b4 bit
+    spi.write(b06_array[3]); //set b3 bit
+    spi.write(b06_array[2]); //set b2 bit
+    spi.write(b06_array[1]); //set b1 bit 
+    spi.write(b06_array[0]); //set b0 bit
     //LED7
     //set green bits
-    spi.write(g27_array[7]); //set g7 bit
-    spi.write(g27_array[6]); //set g6 bit
-    spi.write(g27_array[5]); //set g5 bit
-    spi.write(g27_array[4]); //set g4 bit
-    spi.write(g27_array[3]); //set g3 bit
-    spi.write(g27_array[2]); //set g2 bit
-    spi.write(g27_array[1]); //set g1 bit 
-    spi.write(g27_array[0]);//set g0 bit
+    spi.write(g07_array[7]); //set g7 bit
+    spi.write(g07_array[6]); //set g6 bit
+    spi.write(g07_array[5]); //set g5 bit
+    spi.write(g07_array[4]); //set g4 bit
+    spi.write(g07_array[3]); //set g3 bit
+    spi.write(g07_array[2]); //set g2 bit
+    spi.write(g07_array[1]); //set g1 bit 
+    spi.write(g07_array[0]);//set g0 bit
     //set red bits
-    spi.write(r27_array[7]);//set r7 bit
-    spi.write(r27_array[6]); //set r6 bit
-    spi.write(r27_array[5]); //set r5 bit
-    spi.write(r27_array[4]); //set r4 bit
-    spi.write(r27_array[3]); //set r3 bit
-    spi.write(r27_array[2]); //set r2 bit
-    spi.write(r27_array[1]); //set r1 bit 
-    spi.write(r27_array[0]); //set r0 bit
+    spi.write(r07_array[7]);//set r7 bit
+    spi.write(r07_array[6]); //set r6 bit
+    spi.write(r07_array[5]); //set r5 bit
+    spi.write(r07_array[4]); //set r4 bit
+    spi.write(r07_array[3]); //set r3 bit
+    spi.write(r07_array[2]); //set r2 bit
+    spi.write(r07_array[1]); //set r1 bit 
+    spi.write(r07_array[0]); //set r0 bit
     //set blue bits
-    spi.write(b27_array[7]); //set b7 bit
-    spi.write(b27_array[6]); //set b6 bit
-    spi.write(b27_array[5]); //set b5 bit
-    spi.write(b27_array[4]); //set b4 bit
-    spi.write(b27_array[3]); //set b3 bit
-    spi.write(b27_array[2]); //set b2 bit
-    spi.write(b27_array[1]); //set b1 bit 
-    spi.write(b27_array[0]); //set b0 bit
+    spi.write(b07_array[7]); //set b7 bit
+    spi.write(b07_array[6]); //set b6 bit
+    spi.write(b07_array[5]); //set b5 bit
+    spi.write(b07_array[4]); //set b4 bit
+    spi.write(b07_array[3]); //set b3 bit
+    spi.write(b07_array[2]); //set b2 bit
+    spi.write(b07_array[1]); //set b1 bit 
+    spi.write(b07_array[0]); //set b0 bit
     //room4
     //LED0
     //set green bits
-    spi.write(g30_array[7]); //set g7 bit
-    spi.write(g30_array[6]); //set g6 bit
-    spi.write(g30_array[5]); //set g5 bit
-    spi.write(g30_array[4]); //set g4 bit
-    spi.write(g30_array[3]); //set g3 bit
-    spi.write(g30_array[2]); //set g2 bit
-    spi.write(g30_array[1]); //set g1 bit 
-    spi.write(g30_array[0]);//set g0 bit
+    spi.write(g10_array[7]); //set g7 bit
+    spi.write(g10_array[6]); //set g6 bit
+    spi.write(g10_array[5]); //set g5 bit
+    spi.write(g10_array[4]); //set g4 bit
+    spi.write(g10_array[3]); //set g3 bit
+    spi.write(g10_array[2]); //set g2 bit
+    spi.write(g10_array[1]); //set g1 bit 
+    spi.write(g10_array[0]);//set g0 bit
     //set red bits
-    spi.write(r30_array[7]);//set r7 bit
-    spi.write(r30_array[6]); //set r6 bit
-    spi.write(r30_array[5]); //set r5 bit
-    spi.write(r30_array[4]); //set r4 bit
-    spi.write(r30_array[3]); //set r3 bit
-    spi.write(r30_array[2]); //set r2 bit
-    spi.write(r30_array[1]); //set r1 bit 
-    spi.write(r30_array[0]); //set r0 bit
+    spi.write(r10_array[7]);//set r7 bit
+    spi.write(r10_array[6]); //set r6 bit
+    spi.write(r10_array[5]); //set r5 bit
+    spi.write(r10_array[4]); //set r4 bit
+    spi.write(r10_array[3]); //set r3 bit
+    spi.write(r10_array[2]); //set r2 bit
+    spi.write(r10_array[1]); //set r1 bit 
+    spi.write(r10_array[0]); //set r0 bit
     //set blue bits
-    spi.write(b30_array[7]); //set b7 bit
-    spi.write(b30_array[6]); //set b6 bit
-    spi.write(b30_array[5]); //set b5 bit
-    spi.write(b30_array[4]); //set b4 bit
-    spi.write(b30_array[3]); //set b3 bit
-    spi.write(b30_array[2]); //set b2 bit
-    spi.write(b30_array[1]); //set b1 bit 
-    spi.write(b30_array[0]); //set b0 bit
+    spi.write(b10_array[7]); //set b7 bit
+    spi.write(b10_array[6]); //set b6 bit
+    spi.write(b10_array[5]); //set b5 bit
+    spi.write(b10_array[4]); //set b4 bit
+    spi.write(b10_array[3]); //set b3 bit
+    spi.write(b10_array[2]); //set b2 bit
+    spi.write(b10_array[1]); //set b1 bit 
+    spi.write(b10_array[0]); //set b0 bit
     //LED1
     //set green bits
-    spi.write(g31_array[7]); //set g7 bit
-    spi.write(g31_array[6]); //set g6 bit
-    spi.write(g31_array[5]); //set g5 bit
-    spi.write(g31_array[4]); //set g4 bit
-    spi.write(g31_array[3]); //set g3 bit
-    spi.write(g31_array[2]); //set g2 bit
-    spi.write(g31_array[1]); //set g1 bit 
-    spi.write(g31_array[0]);//set g0 bit
+    spi.write(g11_array[7]); //set g7 bit
+    spi.write(g11_array[6]); //set g6 bit
+    spi.write(g11_array[5]); //set g5 bit
+    spi.write(g11_array[4]); //set g4 bit
+    spi.write(g11_array[3]); //set g3 bit
+    spi.write(g11_array[2]); //set g2 bit
+    spi.write(g11_array[1]); //set g1 bit 
+    spi.write(g11_array[0]);//set g0 bit
     //set red bits
-    spi.write(r31_array[7]);//set r7 bit
-    spi.write(r31_array[6]); //set r6 bit
-    spi.write(r31_array[5]); //set r5 bit
-    spi.write(r31_array[4]); //set r4 bit
-    spi.write(r31_array[3]); //set r3 bit
-    spi.write(r31_array[2]); //set r2 bit
-    spi.write(r31_array[1]); //set r1 bit 
-    spi.write(r31_array[0]); //set r0 bit
+    spi.write(r11_array[7]);//set r7 bit
+    spi.write(r11_array[6]); //set r6 bit
+    spi.write(r11_array[5]); //set r5 bit
+    spi.write(r11_array[4]); //set r4 bit
+    spi.write(r11_array[3]); //set r3 bit
+    spi.write(r11_array[2]); //set r2 bit
+    spi.write(r11_array[1]); //set r1 bit 
+    spi.write(r11_array[0]); //set r0 bit
     //set blue bits
-    spi.write(b31_array[7]); //set b7 bit
-    spi.write(b31_array[6]); //set b6 bit
-    spi.write(b31_array[5]); //set b5 bit
-    spi.write(b31_array[4]); //set b4 bit
-    spi.write(b31_array[3]); //set b3 bit
-    spi.write(b31_array[2]); //set b2 bit
-    spi.write(b31_array[1]); //set b1 bit 
-    spi.write(b31_array[0]); //set b0 bit
+    spi.write(b11_array[7]); //set b7 bit
+    spi.write(b11_array[6]); //set b6 bit
+    spi.write(b11_array[5]); //set b5 bit
+    spi.write(b11_array[4]); //set b4 bit
+    spi.write(b11_array[3]); //set b3 bit
+    spi.write(b11_array[2]); //set b2 bit
+    spi.write(b11_array[1]); //set b1 bit 
+    spi.write(b11_array[0]); //set b0 bit
     //LED2
     //set green bits
-    spi.write(g32_array[7]); //set g7 bit
-    spi.write(g32_array[6]); //set g6 bit
-    spi.write(g32_array[5]); //set g5 bit
-    spi.write(g32_array[4]); //set g4 bit
-    spi.write(g32_array[3]); //set g3 bit
-    spi.write(g32_array[2]); //set g2 bit
-    spi.write(g32_array[1]); //set g1 bit 
-    spi.write(g32_array[0]);//set g0 bit
+    spi.write(g12_array[7]); //set g7 bit
+    spi.write(g12_array[6]); //set g6 bit
+    spi.write(g12_array[5]); //set g5 bit
+    spi.write(g12_array[4]); //set g4 bit
+    spi.write(g12_array[3]); //set g3 bit
+    spi.write(g12_array[2]); //set g2 bit
+    spi.write(g12_array[1]); //set g1 bit 
+    spi.write(g12_array[0]);//set g0 bit
     //set red bits
-    spi.write(r32_array[7]);//set r7 bit
-    spi.write(r32_array[6]); //set r6 bit
-    spi.write(r32_array[5]); //set r5 bit
-    spi.write(r32_array[4]); //set r4 bit
-    spi.write(r32_array[3]); //set r3 bit
-    spi.write(r32_array[2]); //set r2 bit
-    spi.write(r32_array[1]); //set r1 bit 
-    spi.write(r32_array[0]); //set r0 bit
+    spi.write(r12_array[7]);//set r7 bit
+    spi.write(r12_array[6]); //set r6 bit
+    spi.write(r12_array[5]); //set r5 bit
+    spi.write(r12_array[4]); //set r4 bit
+    spi.write(r12_array[3]); //set r3 bit
+    spi.write(r12_array[2]); //set r2 bit
+    spi.write(r12_array[1]); //set r1 bit 
+    spi.write(r12_array[0]); //set r0 bit
     //set blue bits
-    spi.write(b32_array[7]); //set b7 bit
-    spi.write(b32_array[6]); //set b6 bit
-    spi.write(b32_array[5]); //set b5 bit
-    spi.write(b32_array[4]); //set b4 bit
-    spi.write(b32_array[3]); //set b3 bit
-    spi.write(b32_array[2]); //set b2 bit
-    spi.write(b32_array[1]); //set b1 bit 
-    spi.write(b32_array[0]); //set b0 bit
+    spi.write(b12_array[7]); //set b7 bit
+    spi.write(b12_array[6]); //set b6 bit
+    spi.write(b12_array[5]); //set b5 bit
+    spi.write(b12_array[4]); //set b4 bit
+    spi.write(b12_array[3]); //set b3 bit
+    spi.write(b12_array[2]); //set b2 bit
+    spi.write(b12_array[1]); //set b1 bit 
+    spi.write(b12_array[0]); //set b0 bit
     //LED3
     //set green bits
-    spi.write(g33_array[7]); //set g7 bit
-    spi.write(g33_array[6]); //set g6 bit
-    spi.write(g33_array[5]); //set g5 bit
-    spi.write(g33_array[4]); //set g4 bit
-    spi.write(g33_array[3]); //set g3 bit
-    spi.write(g33_array[2]); //set g2 bit
-    spi.write(g33_array[1]); //set g1 bit 
-    spi.write(g33_array[0]);//set g0 bit
+    spi.write(g13_array[7]); //set g7 bit
+    spi.write(g13_array[6]); //set g6 bit
+    spi.write(g13_array[5]); //set g5 bit
+    spi.write(g13_array[4]); //set g4 bit
+    spi.write(g13_array[3]); //set g3 bit
+    spi.write(g13_array[2]); //set g2 bit
+    spi.write(g13_array[1]); //set g1 bit 
+    spi.write(g13_array[0]);//set g0 bit
     //set red bits
-    spi.write(r33_array[7]);//set r7 bit
-    spi.write(r33_array[6]); //set r6 bit
-    spi.write(r33_array[5]); //set r5 bit
-    spi.write(r33_array[4]); //set r4 bit
-    spi.write(r33_array[3]); //set r3 bit
-    spi.write(r33_array[2]); //set r2 bit
-    spi.write(r33_array[1]); //set r1 bit 
-    spi.write(r33_array[0]); //set r0 bit
+    spi.write(r13_array[7]);//set r7 bit
+    spi.write(r13_array[6]); //set r6 bit
+    spi.write(r13_array[5]); //set r5 bit
+    spi.write(r13_array[4]); //set r4 bit
+    spi.write(r13_array[3]); //set r3 bit
+    spi.write(r13_array[2]); //set r2 bit
+    spi.write(r13_array[1]); //set r1 bit 
+    spi.write(r13_array[0]); //set r0 bit
     //set blue bits
-    spi.write(b33_array[7]); //set b7 bit
-    spi.write(b33_array[6]); //set b6 bit
-    spi.write(b33_array[5]); //set b5 bit
-    spi.write(b33_array[4]); //set b4 bit
-    spi.write(b33_array[3]); //set b3 bit
-    spi.write(b33_array[2]); //set b2 bit
-    spi.write(b33_array[1]); //set b1 bit 
-    spi.write(b33_array[0]); //set b0 bit
+    spi.write(b13_array[7]); //set b7 bit
+    spi.write(b13_array[6]); //set b6 bit
+    spi.write(b13_array[5]); //set b5 bit
+    spi.write(b13_array[4]); //set b4 bit
+    spi.write(b13_array[3]); //set b3 bit
+    spi.write(b13_array[2]); //set b2 bit
+    spi.write(b13_array[1]); //set b1 bit 
+    spi.write(b13_array[0]); //set b0 bit
     //LED4
    //set green bits
-    spi.write(g34_array[7]); //set g7 bit
-    spi.write(g34_array[6]); //set g6 bit
-    spi.write(g34_array[5]); //set g5 bit
-    spi.write(g34_array[4]); //set g4 bit
-    spi.write(g34_array[3]); //set g3 bit
-    spi.write(g34_array[2]); //set g2 bit
-    spi.write(g34_array[1]); //set g1 bit 
-    spi.write(g34_array[0]);//set g0 bit
+    spi.write(g14_array[7]); //set g7 bit
+    spi.write(g14_array[6]); //set g6 bit
+    spi.write(g14_array[5]); //set g5 bit
+    spi.write(g14_array[4]); //set g4 bit
+    spi.write(g14_array[3]); //set g3 bit
+    spi.write(g14_array[2]); //set g2 bit
+    spi.write(g14_array[1]); //set g1 bit 
+    spi.write(g14_array[0]);//set g0 bit
     //set red bits
-    spi.write(r34_array[7]);//set r7 bit
-    spi.write(r34_array[6]); //set r6 bit
-    spi.write(r34_array[5]); //set r5 bit
-    spi.write(r34_array[4]); //set r4 bit
-    spi.write(r34_array[3]); //set r3 bit
-    spi.write(r34_array[2]); //set r2 bit
-    spi.write(r34_array[1]); //set r1 bit 
-    spi.write(r34_array[0]); //set r0 bit
+    spi.write(r14_array[7]);//set r7 bit
+    spi.write(r14_array[6]); //set r6 bit
+    spi.write(r14_array[5]); //set r5 bit
+    spi.write(r14_array[4]); //set r4 bit
+    spi.write(r14_array[3]); //set r3 bit
+    spi.write(r14_array[2]); //set r2 bit
+    spi.write(r14_array[1]); //set r1 bit 
+    spi.write(r14_array[0]); //set r0 bit
     //set blue bits
-    spi.write(b34_array[7]); //set b7 bit
-    spi.write(b34_array[6]); //set b6 bit
-    spi.write(b34_array[5]); //set b5 bit
-    spi.write(b34_array[4]); //set b4 bit
-    spi.write(b34_array[3]); //set b3 bit
-    spi.write(b34_array[2]); //set b2 bit
-    spi.write(b34_array[1]); //set b1 bit 
-    spi.write(b34_array[0]); //set b0 bit
+    spi.write(b14_array[7]); //set b7 bit
+    spi.write(b14_array[6]); //set b6 bit
+    spi.write(b14_array[5]); //set b5 bit
+    spi.write(b14_array[4]); //set b4 bit
+    spi.write(b14_array[3]); //set b3 bit
+    spi.write(b14_array[2]); //set b2 bit
+    spi.write(b14_array[1]); //set b1 bit 
+    spi.write(b14_array[0]); //set b0 bit
     //LED5   
     //set green bits
-    spi.write(g35_array[7]); //set g7 bit
-    spi.write(g35_array[6]); //set g6 bit
-    spi.write(g35_array[5]); //set g5 bit
-    spi.write(g35_array[4]); //set g4 bit
-    spi.write(g35_array[3]); //set g3 bit
-    spi.write(g35_array[2]); //set g2 bit
-    spi.write(g35_array[1]); //set g1 bit 
-    spi.write(g35_array[0]);//set g0 bit
+    spi.write(g15_array[7]); //set g7 bit
+    spi.write(g15_array[6]); //set g6 bit
+    spi.write(g15_array[5]); //set g5 bit
+    spi.write(g15_array[4]); //set g4 bit
+    spi.write(g15_array[3]); //set g3 bit
+    spi.write(g15_array[2]); //set g2 bit
+    spi.write(g15_array[1]); //set g1 bit 
+    spi.write(g15_array[0]);//set g0 bit
     //set red bits
-    spi.write(r35_array[7]);//set r7 bit
-    spi.write(r35_array[6]); //set r6 bit
-    spi.write(r35_array[5]); //set r5 bit
-    spi.write(r35_array[4]); //set r4 bit
-    spi.write(r35_array[3]); //set r3 bit
-    spi.write(r35_array[2]); //set r2 bit
-    spi.write(r35_array[1]); //set r1 bit 
-    spi.write(r35_array[0]); //set r0 bit
+    spi.write(r15_array[7]);//set r7 bit
+    spi.write(r15_array[6]); //set r6 bit
+    spi.write(r15_array[5]); //set r5 bit
+    spi.write(r15_array[4]); //set r4 bit
+    spi.write(r15_array[3]); //set r3 bit
+    spi.write(r15_array[2]); //set r2 bit
+    spi.write(r15_array[1]); //set r1 bit 
+    spi.write(r15_array[0]); //set r0 bit
     //set blue bits
-    spi.write(b35_array[7]); //set b7 bit
-    spi.write(b35_array[6]); //set b6 bit
-    spi.write(b35_array[5]); //set b5 bit
-    spi.write(b35_array[4]); //set b4 bit
-    spi.write(b35_array[3]); //set b3 bit
-    spi.write(b35_array[2]); //set b2 bit
-    spi.write(b35_array[1]); //set b1 bit 
-    spi.write(b35_array[0]); //set b0 bit
+    spi.write(b15_array[7]); //set b7 bit
+    spi.write(b15_array[6]); //set b6 bit
+    spi.write(b15_array[5]); //set b5 bit
+    spi.write(b15_array[4]); //set b4 bit
+    spi.write(b15_array[3]); //set b3 bit
+    spi.write(b15_array[2]); //set b2 bit
+    spi.write(b15_array[1]); //set b1 bit 
+    spi.write(b15_array[0]); //set b0 bit
     //LED6
     //set green bits
-    spi.write(g36_array[7]); //set g7 bit
-    spi.write(g36_array[6]); //set g6 bit
-    spi.write(g36_array[5]); //set g5 bit
-    spi.write(g36_array[4]); //set g4 bit
-    spi.write(g36_array[3]); //set g3 bit
-    spi.write(g36_array[2]); //set g2 bit
-    spi.write(g36_array[1]); //set g1 bit 
-    spi.write(g36_array[0]);//set g0 bit
+    spi.write(g16_array[7]); //set g7 bit
+    spi.write(g16_array[6]); //set g6 bit
+    spi.write(g16_array[5]); //set g5 bit
+    spi.write(g16_array[4]); //set g4 bit
+    spi.write(g16_array[3]); //set g3 bit
+    spi.write(g16_array[2]); //set g2 bit
+    spi.write(g16_array[1]); //set g1 bit 
+    spi.write(g16_array[0]);//set g0 bit
     //set red bits
-    spi.write(r36_array[7]);//set r7 bit
-    spi.write(r36_array[6]); //set r6 bit
-    spi.write(r36_array[5]); //set r5 bit
-    spi.write(r36_array[4]); //set r4 bit
-    spi.write(r36_array[3]); //set r3 bit
-    spi.write(r36_array[2]); //set r2 bit
-    spi.write(r36_array[1]); //set r1 bit 
-    spi.write(r36_array[0]); //set r0 bit
+    spi.write(r16_array[7]);//set r7 bit
+    spi.write(r16_array[6]); //set r6 bit
+    spi.write(r16_array[5]); //set r5 bit
+    spi.write(r16_array[4]); //set r4 bit
+    spi.write(r16_array[3]); //set r3 bit
+    spi.write(r16_array[2]); //set r2 bit
+    spi.write(r16_array[1]); //set r1 bit 
+    spi.write(r16_array[0]); //set r0 bit
     //set blue bits
-    spi.write(b36_array[7]); //set b7 bit
-    spi.write(b36_array[6]); //set b6 bit
-    spi.write(b36_array[5]); //set b5 bit
-    spi.write(b36_array[4]); //set b4 bit
-    spi.write(b36_array[3]); //set b3 bit
-    spi.write(b36_array[2]); //set b2 bit
-    spi.write(b36_array[1]); //set b1 bit 
-    spi.write(b36_array[0]); //set b0 bit
+    spi.write(b16_array[7]); //set b7 bit
+    spi.write(b16_array[6]); //set b6 bit
+    spi.write(b16_array[5]); //set b5 bit
+    spi.write(b16_array[4]); //set b4 bit
+    spi.write(b16_array[3]); //set b3 bit
+    spi.write(b16_array[2]); //set b2 bit
+    spi.write(b16_array[1]); //set b1 bit 
+    spi.write(b16_array[0]); //set b0 bit
     //LED7
     //set green bits
-    spi.write(g37_array[7]); //set g7 bit
-    spi.write(g37_array[6]); //set g6 bit
-    spi.write(g37_array[5]); //set g5 bit
-    spi.write(g37_array[4]); //set g4 bit
-    spi.write(g37_array[3]); //set g3 bit
-    spi.write(g37_array[2]); //set g2 bit
-    spi.write(g37_array[1]); //set g1 bit 
-    spi.write(g37_array[0]);//set g0 bit
+    spi.write(g17_array[7]); //set g7 bit
+    spi.write(g17_array[6]); //set g6 bit
+    spi.write(g17_array[5]); //set g5 bit
+    spi.write(g17_array[4]); //set g4 bit
+    spi.write(g17_array[3]); //set g3 bit
+    spi.write(g17_array[2]); //set g2 bit
+    spi.write(g17_array[1]); //set g1 bit 
+    spi.write(g17_array[0]);//set g0 bit
     //set red bits
-    spi.write(r37_array[7]);//set r7 bit
-    spi.write(r37_array[6]); //set r6 bit
-    spi.write(r37_array[5]); //set r5 bit
-    spi.write(r37_array[4]); //set r4 bit
-    spi.write(r37_array[3]); //set r3 bit
-    spi.write(r37_array[2]); //set r2 bit
-    spi.write(r37_array[1]); //set r1 bit 
-    spi.write(r37_array[0]); //set r0 bit
+    spi.write(r17_array[7]);//set r7 bit
+    spi.write(r17_array[6]); //set r6 bit
+    spi.write(r17_array[5]); //set r5 bit
+    spi.write(r17_array[4]); //set r4 bit
+    spi.write(r17_array[3]); //set r3 bit
+    spi.write(r17_array[2]); //set r2 bit
+    spi.write(r17_array[1]); //set r1 bit 
+    spi.write(r17_array[0]); //set r0 bit
     //set blue bits
-    spi.write(b37_array[7]); //set b7 bit
-    spi.write(b37_array[6]); //set b6 bit
-    spi.write(b37_array[5]); //set b5 bit
-    spi.write(b37_array[4]); //set b4 bit
-    spi.write(b37_array[3]); //set b3 bit
-    spi.write(b37_array[2]); //set b2 bit
-    spi.write(b37_array[1]); //set b1 bit 
-    spi.write(b37_array[0]); //set b0 bit
+    spi.write(b17_array[7]); //set b7 bit
+    spi.write(b17_array[6]); //set b6 bit
+    spi.write(b17_array[5]); //set b5 bit
+    spi.write(b17_array[4]); //set b4 bit
+    spi.write(b17_array[3]); //set b3 bit
+    spi.write(b17_array[2]); //set b2 bit
+    spi.write(b17_array[1]); //set b1 bit 
+    spi.write(b17_array[0]); //set b0 bit
+    
     //wait for latch
     wait_us(60);   
 }
@@ -2724,7 +2741,10 @@
 }
 
 void spi_init(){ //initializes spi port to send 0 bit length
-     spi.format(14, 0); //set spi at 14 bits/byte with clock phase and clock polarity at mode 0 
-     spi.frequency(10600000); //set frequency of spi clock at 96/9 - 10.6MHz 94.3 ns bit time length
+     spi1.format(14, 0); //set spi at 14 bits/byte with clock phase and clock polarity at mode 0 
+     spi1.frequency(10600000); //set frequency of spi clock at 96/9 - 10.6MHz 94.3 ns bit time length
+     spi2.format(14, 0); //set spi at 14 bits/byte with clock phase and clock polarity at mode 0 
+     spi2.frequency(10600000); //set frequency of spi clock at 96/9 - 10.6MHz 94.3 ns bit time length
+     
     }