       }
       case 'V': { // set value specified in V#FFFFFF input
         char colorInput[] = {input[1],input[2],input[3],input[4],input[5],input[6],input[7],'\0'}; // who needs loops
-        if (DEBUGGING_MODE) { Serial.print("Serial input:"); Serial.println(colorInput); }
-        decodeHex(colorInput,*rgb);
-        setOutput(*rgb);
-
+        if (DEBUGGING_MODE) {
+          Serial.print("Serial input:"); 
+          Serial.println(colorInput); 
+        }
+        
+        decodeHex(colorInput,rgb);
+        setOutput(rgb);
+
+        if (DEBUGGING_MODE) {
+          Serial.println("Color set.  Results:");
+        }
         // echo current colors:
         Serial.print('#');
         if (red<=16) {Serial.print('0');}

    int x=0;
    while (r[x]!='\0') {
      Serial.print(r[x]);
      x++;
    }
  }
  


#define DIO 3

RGBdriver Driver(CLK,DIO);
static int BAUDRATE = 19200;
int red,green,blue;
int* rgb[4] = {&red, &green, &blue};
// In use, & means "address of"; * means "follow this address".
// This is an array of pointers (which lead to our RGB vars).  Write
// to it with *rgb[x], which means "follow the address at rgb[x]" which
