HC-06 does not respond to AT Commands

Hi, I have a Arduino Mega2560 and an HC-06. I want the HC-06 to (eventually) remit sensor information from the Arudino to my computer via Bluetooth. I have been able to see the HC-06 and pair it with my cellphone, however, it does not respond to AT commands.

It's getting pretty frustrating because I have the code for the sensors working ok, I just need to get the bluetooth side of the project working in order to be satisfied with it.

I have read elsewhere that this can relate to a pullup being required on the tx pin. I'm not too sure what this means - I'm new to this (source:http://mcuoneclipse.com/2014/03/30/getting-bluetooth-working-with-jy-mcu-bt_board-v1-06/ )

Among other code attempts, I have tried code from here (updated for Mega Rx Tx Pins) : http://42bots.com/tutorials/hc-06-bluetooth-module-datasheet-and-configuration-with-arduino/

and code I have obtained from several different places:

/* 

^ () opens a multi line comment to the code.

 Code for Arduino Mega 2560 and HC-06 module. It will use the HC-06 module to communicate between a computer and the arduino.
 HC-06 appears to only use 9600 baud rate. Can be reset by changing the below code. 

 Board pin layout

 Arduino            HC-06
 RX    - 18         Tx     
 TX    - 19         Rx
 GND   - GND        GND   
 VCC   - 3.3v       Vcc    

 Other notes: Delay must be set to 2000 otherwise AT commands typically don't work.

 */

String command = ""; // Stores response from HC-06 (not sure if I understand this. Stores it where?

void setup() {
  // put your setup code here, to run once:
  //open serial communications:-
  
  Serial.begin(9600);       //monitor
  Serial1.begin(9600);      //bluetooth 
  
   Serial.println("Type AT commands!");

  Serial.println("AT");  
  Serial1.print("AT");                  //PING  The response in the serial monitor should be OK
  

  
  
  if (Serial1.available()) {
    while(Serial1.available()) { // While there is more to be read, keep reading.
    delay(10);
    char c = Serial1.read();
      command += c;    
    }
  }

  delay(2000);
  Serial.println(command);
  command = ""; // No repeats
  Serial.println("AT+NAMEBanana Chip"); 
  Serial1.print("AT+NAMEBanana Chip");        //Set name to Banana Chip .This should respond with OKname
  if (Serial1.available()) {
    while(Serial1.available()) { // While there is more to be read, keep reading.
        delay(3);
      command += (char)Serial1.read();  
    }
  }

  delay(2000);
  Serial.println(command);
  command = ""; // No repeats
  Serial.println("AT+PIN1234");
  Serial1.print("AT+PIN1234");        //This is the bluetooth PIN to connect to the device. This should respond with OKsetpin
  if (Serial1.available()) {
    while(Serial1.available()) { // While there is more to be read, keep reading.
        delay(3);
      command += (char)Serial1.read();  
    }
  }

  delay(2000);   
  Serial.println(command);
  command = ""; // No repeats
  Serial.println("AT+BAUD4");  
  Serial1.print("AT+BAUD4");               /*
  
  This alters the baud rate. The baud rates are as follows:-
  
1---------1200
2---------2400
3---------4800
4---------9600
5---------19200
6---------38400
7---------57600
8---------115200
Note adjusting the baud rate setting can reduce power consumption.
Thus this changes to the baud rate to 115200
*/
   
  if (Serial1.available()) {
    while(Serial1.available()) { // While there is more to be read, keep reading.
      command += (char)Serial1.read();    
      delay(2000); 
      Serial.println(command);
    } 
  } 
}

void loop(){
  
  // Read user input if available.
  if (Serial.available()){
    delay(2000); // The delay is necessary to get this working!
    Serial.write(Serial.read());
  }
}

Lurkin: I have read elsewhere that this can relate to a pullup being required on the tx pin. I'm not too sure what this means - I'm new to this (source:http://mcuoneclipse.com/2014/03/30/getting-bluetooth-working-with-jy-mcu-bt_board-v1-06/ )

4k7 resistor between tx and +5V

I know how to add a pull up resister. It can also apparently be done with the code.

However, do you know if it actually needs this? i.e. thats whats actually wrong with it?