HC-05 AT commands dont work strange output

I sucessfully put the HC-05 in AT mode because it would blink off and on for 2 seconds. I have the EN pin tied to pin 9. The output is strange whenever I try. see attachment

#include <SoftwareSerial.h>
SoftwareSerial BTSerial(10, 11); // RX | TX
void setup()
  pinMode(9, OUTPUT);  // this pin will pull the HC-05 pin 34 (key pin) HIGH to switch module to AT mode
  digitalWrite(9, HIGH);
  Serial.println("Enter AT commands:");
  BTSerial.begin(38400);  // HC-05 default speed in AT command more
void loop()
  // Keep reading from HC-05 and send to Arduino Serial Monitor
  if (BTSerial.available())

  // Keep reading from Arduino Serial Monitor and send to HC-05
  if (Serial.available())

The ‘strange characters’ are serial data being displayed at the wrong data rate.

You’ve begun your debug serial at 9600 and set your serial monitor to 9600, so the “Enter AT commands:” text that’s sent to debug serial displays correctly.

Either the HC-05 isn’t operating at its default baud rate, or (and I think this is most likely) the SoftwareSerial library can’t handle 38400 baud communication without the data getting corrupted and out of sync, which is causing this result.