Bluetooth works with Uno but not Leonardo

Here is the code

/*
  PROJECT: ArduDroid
  PROGRAMMER: Hazim Bitar (techbitar at gmail dot com)
  DATE: Oct 31, 2013
  FILE: ardudroid.ino
  LICENSE: Public domain
  use https://zadig.akeo.ie/  for usbasp driver
*/

#define START_CMD_CHAR '*'
#define END_CMD_CHAR '#'
#define DIV_CMD_CHAR '|'
#define CMD_DIGITALWRITE 10
#define CMD_ANALOGWRITE 11
#define CMD_TEXT 12
#define CMD_READ_ARDUDROID 13
#define MAX_COMMAND 20  // max command number code. used for error checking.
#define MIN_COMMAND 10  // minimum command number code. used for error checking. 
#define IN_STRING_LENGHT 40
#define MAX_ANALOGWRITE 255
#define PIN_HIGH 3
#define PIN_LOW 2

String inText;

void setup() {
  Serial.begin(9600);
  Serial.println("ArduDroid 0.12 Alpha by TechBitar (2013)");
  Serial.flush();
}

void loop()
{
  Serial.flush();
  int ard_command = 0;
  int pin_num = 0;
  int pin_value = 0;

  char get_char = ' ';  //read serial

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

  // parse incoming command start flag
  get_char = Serial.read();
  if (get_char != START_CMD_CHAR) return; // if no command start flag, return to loop().

  // parse incoming command type
  ard_command = Serial.parseInt(); // read the command

  // parse incoming pin# and value
  pin_num = Serial.parseInt(); // read the pin
  pin_value = Serial.parseInt();  // read the value

  // 1) GET TEXT COMMAND FROM ARDUDROID
  if (ard_command == CMD_TEXT) {
    inText = ""; //clears variable for new input
    while (Serial.available())  {
      char c = Serial.read();  //gets one byte from serial buffer
      delay(5);
      if (c == END_CMD_CHAR) { // if we the complete string has been read
        // add your code here
        break;
      }
      else {
        if (c !=  DIV_CMD_CHAR) {
          inText += c;
          delay(5);
        }
      }
    }
  }

  // 2) GET digitalWrite DATA FROM ARDUDROID
  if (ard_command == CMD_DIGITALWRITE) {
    if (pin_value == PIN_LOW) pin_value = LOW;
    else if (pin_value == PIN_HIGH) pin_value = HIGH;
    else return; // error in pin value. return.
    set_digitalwrite( pin_num,  pin_value);  // Uncomment this function if you wish to use
    return;  // return from start of loop()
  }

  // 3) GET analogWrite DATA FROM ARDUDROID
  if (ard_command == CMD_ANALOGWRITE) {
    analogWrite(  pin_num, pin_value );
    // add your code here
    return;  // Done. return to loop();
  }

  // 4) SEND DATA TO ARDUDROID
  if (ard_command == CMD_READ_ARDUDROID) {
    // char send_to_android[] = "Place your text here." ;
    // Serial.println(send_to_android);   // Example: Sending text
    Serial.print(" Analog 0 = ");
    Serial.println(analogRead(A0));  // Example: Read and send Analog pin value to Arduino
    return;  // Done. return to loop();
  }
}

// 2a) select the requested pin# for DigitalWrite action
void set_digitalwrite(int pin_num, int pin_value)
{
  switch (pin_num) {
    case 13:
      pinMode(13, OUTPUT);
      digitalWrite(13, pin_value);
      // add your code here
      break;
    case 12:
      pinMode(12, OUTPUT);
      digitalWrite(12, pin_value);
      // add your code here
      break;
    case 11:
      pinMode(11, OUTPUT);
      digitalWrite(11, pin_value);
      // add your code here
      break;
    case 10:
      pinMode(10, OUTPUT);
      digitalWrite(10, pin_value);
      // add your code here
      break;
    case 9:
      pinMode(9, OUTPUT);
      digitalWrite(9, pin_value);
      // add your code here
      break;
    case 8:
      pinMode(8, OUTPUT);
      digitalWrite(8, pin_value);
      // add your code here
      break;
    case 7:
      pinMode(7, OUTPUT);
      digitalWrite(7, pin_value);
      // add your code here
      break;
    case 6:
      pinMode(6, OUTPUT);
      digitalWrite(6, pin_value);
      // add your code here
      break;
    case 5:
      pinMode(5, OUTPUT);
      digitalWrite(5, pin_value);
      // add your code here
      break;
    case 4:
      pinMode(4, OUTPUT);
      digitalWrite(4, pin_value);
      // add your code here
      break;
    case 3:
      pinMode(3, OUTPUT);
      digitalWrite(3, pin_value);
      // add your code here
      break;
    case 2:
      pinMode(2, OUTPUT);
      digitalWrite(2, pin_value);
      // add your code here
      break;
      // default:
      // if nothing else matches, do the default
      // default is optional
  }
}

Same wiring same code.
BUt no response from Leonardo.
The Leonardo works with blink, so it is OK

I am using USBESP to upload to Leonardo ( It has broken USB micro)

I cannot use Serial Terminal to debug.....

Needles to say , I am using D0,D1 for the bluetooth Tx and RX (reversed).

Any help will really be appreciated

I would put it down to using the serial pins 0 and 1.
You may have to use another serial method to get off those pins.

Bob.

If I assume that Both boards use Rx and TX the same way then why it is not working with Leonardo.
I know it is working with UNO.
We need to know how RX and TX is different in Leonardo
Someone with Leonardo experience can tell me how to fix the code to work with Leonardo

On the Leonardo, rx and tx are Serial1.

And FYI, they are not shared with the USB communication.

sterretje:

I went ahead and tried to prove your quotation:

If you understand an example, use it.
If you don't understand an example, don't use it.

And I am happy to say; it was a success.!!!!

Thank you ...all... for your help