HC 05 Serial Communication

I’ve been testing simple communication over blue-tooth from PC to arduino. I’m using a Tera Term terminal to send commands and read responses. The sending if working (so far), I type ‘1’ in the termina window and the arduino LED turns on, I type ‘0’ and the LED turns off. The problem is I’m trying to write a response through the bluetooth back to the terminal, and I mostly just get garbage. I’m using softserial with slughtly modified example programs (code below). About the only bluetooth write command that echos back into the terminal correctly is a print statement with “0”,“A”,“B” as arguments. println displays garbage, as does almost anything else. Does softserial print over HC 05 not work, or is something else messed up? I’ve tried modifying terminal settings in Tea Term (stop bits, parity bits, etc) and I always get garbage.

#include <SoftwareSerial.h> // import the serial library

SoftwareSerial Genotronex(10,11); // Set pins 10 & 11 for Rx & Tx

int ledpin=13; // led on D13 will blink on/off
int BluetoothData; // data from blurtooth module

// Printing to softserial does not seem to work

void setup() {
// put your setup code here, to run once:
Genotronex.begin(115200);

// This statement below doesn’t print to terminal properly
Genotronex.println(“Bluetooth On please press 1 or 0 blink LED …”);

// Arduino serial out to sketch
Serial.begin(9600);
Serial.println(“Enter commands:”);
pinMode(ledpin,OUTPUT);
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);

}

void loop() {
// put your main code here, to run repeatedly:
if (Genotronex.available()) {
BluetoothData = Genotronex.read();
if (BluetoothData == ‘1’) { // Number 1 pressed
digitalWrite(ledpin,1);
Genotronex.println(“LED on D13 ON!”); // Displays garbage
Genotronex.print(“0”); // Works
Genotronex.print(“A”); // Works
Genotronex.println(“BC”); // Sometime prints B or C
Serial.println(“LED ON!”);
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
}
if (BluetoothData == ‘0’) { // Number 0 pressed
digitalWrite(ledpin,0);
Genotronex.println(“LED on D13 OFF!”); // Displays garbage
Genotronex.print(“0”); // Works
Serial.println(“LED OFF!”);
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
}
}
delay(100);

}

Never mind, I already figured it out. I was playing with the AT commands to change baud rate etc. I had it set to 2 stop bits, and apparently the terminal emulator does not like that. So this command didn't work:
at+uart=115200,1,1
but this does work:
at+uart=115200,0,1

Technically the first command works (i.e. sends & receives data), but the terminal emulator didn't decode it properly.

#include <SoftwareSerial.h> // import the serial library
SoftwareSerial Genotronex(10,11);
Genotronex.begin(115200);

Software serial will not work reliably at 115200 baud. Is there some reason to not use

Genotronex.begin(9600);