Bluetooth over Arduino Micro - communiction issue

I have a program working over Arduino Uno using bluetooth HC-06. The information comes in fine and the program works. It's just me playing around and testing with an RGB LED. The UNO code is here

#define MAX_ANALOGWRITE 255

int current_r = 0;
int current_g = 0;
int current_b = 0;
int current_i = 0;

void setup() {
  Serial.begin(9600);
  pinMode(9, OUTPUT);
  pinMode(10, OUTPUT);
  pinMode(11, OUTPUT);
  digitalWrite(9, HIGH);
  digitalWrite(10, HIGH);
  digitalWrite(11, HIGH);
  Serial.flush();
}

void loop()
{  
  int Red = -1;
  int Green = 0;
  int Blue = 0;
  int Cycles = 0;
  int Speed = 0;
  int Start = 0;
  int End = 0;
  int Revert = 0;

  // wait for incoming data
  if (Serial.available() < 1) return; // if serial empty, return to loop().

  // parse incoming command start flag 
  Red = Serial.parseInt();
  
  if (Red == -1) return; // if no command start flag, return to loop().
  
  Green = Serial.parseInt();
  Blue = Serial.parseInt();
  Cycles = Serial.parseInt();
  Speed = Serial.parseInt();
  Start = Serial.parseInt();
  End = Serial.parseInt();
  Revert = Serial.parseInt();
  
  changeColor(Red, Green, Blue, Cycles, Speed, Start, End, Revert);
}

/**************
changeColor
**************/
void changeColor(int Red, int Green, int Blue, int Cycles, int Speed, int Start, int End, int Revert)
{
  // set color
  if(Cycles == 0){
    setColor( Red, Green, Blue, End );
    saveColor( Red, Green, Blue, End );
  }
  
  // pulse
  else{
    
    for (int j = 1; j <= Cycles; j++){
      for (int i = 0; i <= 10; i++){
        setColor( Red, Green, Blue,  Start + ( ( End - Start ) * i / 10 )    );
        delay(Speed / 20);
      }
      
      if( j != Cycles || Revert ){
        for (int i = 10; i >= 0; i--){
          setColor( Red, Green, Blue,  Start + ( ( End - Start ) * i / 10 )    );
          delay(Speed / 20);
        }
      }
      else{
        saveColor( Red, Green, Blue, End );
      }
    }
    
    //
    if(Revert == 1){
      setColor( current_r, current_g, current_b, current_i );
    }
  }
}

/**************
setColor
**************/
void setColor(int Red, int Green, int Blue, int Intensity)
{
  analogWrite(9, getRGB( Red, Intensity) );
  analogWrite(10, getRGB( Green, Intensity) );
  analogWrite(11, getRGB( Blue, Intensity) );
}

/**************
saveColor
**************/
void saveColor(int Red, int Green, int Blue, int Intensity)
{
  current_r = Red;
  current_g = Green;
  current_b = Blue;
  current_i = Intensity;
}

/**************
getRGB
**************/
int getRGB(int rgb, int intensity)
{
  return MAX_ANALOGWRITE - ( (rgb * intensity) / 100 );
}

Now, I needed to have the hardware smaller, so I started using an Arduino Micro. I noticed the separation of USB and Serial; so, had to use Serial1 for the bluetooth.

Now, the Micro code:

#define MAX_ANALOGWRITE 255

int has_command = 0;
int current_r = 0;
int current_g = 0;
int current_b = 0;
int current_i = 0;


int x = 0;

void setup() {
  pinMode(0, INPUT);
  pinMode(1, OUTPUT);
  Serial.begin(9600);
  while (!Serial) ;
  Serial1.begin(9600);
  Serial.println("ArduDroid 0.12 Alpha by TechBitar (2013)");
  Serial1.println("ArduDroid 0.12 Alpha by TechBitar (2013)");
  
  pinMode(9, OUTPUT);
  pinMode(10, OUTPUT);
  pinMode(11, OUTPUT);
  digitalWrite(9, HIGH);
  digitalWrite(10, HIGH);
  digitalWrite(11, HIGH);
  
  changeColor(255, 0, 0, 3, 500, 0, 100, 1);
  Serial.flush();
}

void loop()
{
  int Red = -1;
  int Green = 0;
  int Blue = 0;
  int Cycles = 0;
  int Speed = 0;
  int Start = 0;
  int End = 0;
  int Revert = 0;
  char something[]  = "hfkjhfdskjfZZ";
  
  if( x == 0 ){
    delay(3000);
    
    Serial.write(something);
    x = 1;
  }
  
  // wait for incoming data
  if (Serial1.available() < 1) return; // if Serial empty, return to loop().
  
  Serial.println(Serial1.readString());
  
  // parse incoming command start flag 
  Red = Serial1.parseInt();
  
  if (Red == -1) return; // if no command start flag, return to loop().
  
  Green = Serial1.parseInt();
  Blue = Serial1.parseInt();
  Cycles = Serial1.parseInt();
  Speed = Serial1.parseInt();
  Start = Serial1.parseInt();
  End = Serial1.parseInt();
  Revert = Serial1.parseInt();
  
  changeColor(Red, Green, Blue, Cycles, Speed, Start, End, Revert);
}

/**************
changeColor
**************/
void changeColor(int Red, int Green, int Blue, int Cycles, int Speed, int Start, int End, int Revert)
{
  // set color
  if(Cycles == 0){
    setColor( Red, Green, Blue, End );
    saveColor( Red, Green, Blue, End );
  }
  
  // pulse
  else{
    
    for (int j = 1; j <= Cycles; j++){
      for (int i = 0; i <= 10; i++){
        setColor( Red, Green, Blue,  Start + ( ( End - Start ) * i / 10 )    );
        delay(Speed / 20);
      }
      
      if( j != Cycles || Revert ){
        for (int i = 10; i >= 0; i--){
          setColor( Red, Green, Blue,  Start + ( ( End - Start ) * i / 10 )    );
          delay(Speed / 20);
        }
      }
      else{
        saveColor( Red, Green, Blue, End );
      }
    }
    
    //
    if(Revert == 1){
      setColor( current_r, current_g, current_b, current_i );
    }
  }
}

/**************
setColor
**************/
void setColor(int Red, int Green, int Blue, int Intensity)
{
  analogWrite(9, getRGB( Red, Intensity) );
  analogWrite(10, getRGB( Green, Intensity) );
  analogWrite(11, getRGB( Blue, Intensity) );
}

/**************
saveColor
**************/
void saveColor(int Red, int Green, int Blue, int Intensity)
{
  current_r = Red;
  current_g = Green;
  current_b = Blue;
  current_i = Intensity;
}

/**************
getRGB
**************/
int getRGB(int rgb, int intensity)
{
  return MAX_ANALOGWRITE - ( (rgb * intensity) / 100 );
}

A sample of the code being sent in would be:

"255,0,0,3,500,0,100,1"
which would flash red 3 times, 0.5 seconds cycle, and return to previous state.

Works fine in the Uno; but in the Micro when I do a print I get something like @@@@@@

So; any ideas?

A small add-on:

In both scenarios (Uno and Micro), they are connected to the PC, so using power supply from the connection. In both cases, the Bluetooth HC-06 is connected to Ground and 3.3V for power.

I recentness saw this: Virtuabotix is under construction
and though to connect the HC-06 with it's own battery supply. Such did not help yet.

A sample of the code being sent in would be:

What kind of delimiter is supposed to be implied by that? Or, are you somehow expecting the Arduino to recognize when a complete packet arrives without you giving it a clue?

  Serial.flush();

Block until all outgoing serial data has been sent. Pretty useless as you haven't sent anything.