Need help troubleshooting serial connection using HC 05 Master and Slave

I am trying to control 2 stepper motors using a joystick over a Bluetooth connection between 2 Arduino Nanos. Joystick is a KY-23, 5V power from Nano, Nano powered by 10v through Vin. Joystick is wired to A0 and A1. HC-05 Master, configured with AT commands for 9600,0,0, powered from Nano 5v (printed board says 3.6-6v is acceptable), with Nano Rx (D0) wired to HC05 Txd, and Nano Tx (D1) wired to HCO5 RXD.

Motor Controller is Nano, powered from 10v, HC05 Slave powered from Nano 5v. Same connection method to Nano as the Joystick. Nano pins D3-D6 are used to send direction and pulse signals to an A4988 Stepper Controller. I hope to eventually use D7-D12 for other control signals, but just starting with the basics, so I don't want to use a software serial port.

Joy Stick Code

/*
  Steppermotor control with joystick

  Reads joystick input on pin 0 and pin 1, I Joystick is far enough off the center postion, it will read both values and transmit them over the HCO5 BT serial connection
  to the Motor Controller

*/

void setup() {
  // initialize serial communication at 9600 bits per second:
    Serial.begin(9600);
   // Sets the four pins as Outputs
}
// the loop routine runs over and over again forever:
void loop() {
  // read the input on analog pin 0 and pin 1 :
  int sensorValuex = analogRead(A0);
  int sensorValuey = analogRead(A1);

if ((sensorValuex<450)||(sensorValuey<450)||(sensorValuex>550)||(sensorValuey>550)){ //determines if joystick has moved off center position before sending serial data to BT module
  Serial.write(sensorValuex/4);
  Serial.write(sensorValuey/4);
  delay(7);//delay tuned to prevent serial data overflow/collision with motor control module  This value needs to be long enough to allow motor speed control with the step delay in the motor control sketch
  }
}

Motor Control Code


/*
Steppermoto control with joystick
Interprets incoming data from the joystick module to determine direction and step the motors  HC 05 is set to slave mode outside the sketch
*/
// defines pins numbers
int xAxis, yAxis; 
unsigned int  x = 128;
unsigned int  y = 128;
const int stepPinx = 3; 
const int dirPinx = 4; 
const int stepPiny = 5; 
const int dirPiny = 6; 
const int stepdelay = 2000;//this value tested and optimized with direct connected serial ports
// the setup routine runs once when you press reset:
void setup() {
  // initialize serial communication at 9600 bits per second:
  Serial.begin(9600);
   // Sets the four pins as Outputs
  pinMode(stepPinx,OUTPUT); 
  pinMode(dirPinx,OUTPUT);
  pinMode(stepPiny,OUTPUT); 
  pinMode(dirPiny,OUTPUT);

}
void loop() {
// Read the incoming data from the slave Bluetooth device  
   if(Serial.available() >= 2) {
    x = Serial.read();
    y = Serial.read();
    xAxis = x*4; //converts incoming byte back to original value
    yAxis = y*4;
    Serial.println(x);
    Serial.println(xAxis);
    Serial.println(y);
    Serial.println(yAxis);
 
    if (xAxis>600) {
      digitalWrite(dirPinx,HIGH); // Enables the motor to move in a particular direction
      digitalWrite(stepPinx,HIGH);
      delayMicroseconds(stepdelay);
      digitalWrite(stepPinx,LOW); 
      delayMicroseconds(stepdelay);
      }

    if (xAxis<400) {
      digitalWrite(dirPinx,LOW); // Enables the motor to move in a particular direction
      digitalWrite(stepPinx,HIGH); 
      delayMicroseconds(stepdelay);  
      digitalWrite(stepPinx,LOW); 
      delayMicroseconds(stepdelay);
      }
      
    if (yAxis>600) {
      digitalWrite(dirPiny,HIGH); // Enables the motor to move in a particular direction
      digitalWrite(stepPiny,HIGH); 
      delayMicroseconds(stepdelay);
      digitalWrite(stepPiny,LOW); 
      delayMicroseconds(stepdelay);
    }
      
    if (yAxis<400) {
      digitalWrite(dirPiny,LOW); // Enables the motor to move in a particular direction
      digitalWrite(stepPiny,HIGH); 
      delayMicroseconds(stepdelay);
      digitalWrite(stepPiny,LOW); 
      delayMicroseconds(stepdelay);
      }
   }
   else {
     x = 510 / 4;//if no data on the serial line, sets x and y to a centered value to stop motor motion
     y = 510 / 4;
    }
}

The code works perfectly if I take out the HC05s and just hard wire from the Joystick TX to the Motor Controller RX. With the HC05s, the TX light on the Joystick Nano lights, and the RX light on the Motor Controller Nano lights about 1 time per second.

I inserted a Print.serialln() into the motor controller code just to confirm the serial data. With the hardwire, its working exactly as expected. With the HCO5s - nada. Also when the HCO5s are in, I can send data from the keyboard on my computer, and the controller reacts exactly as I would have expected.

The HC05s respond correctly to AT commands, and I have paired, linked, and bound them. Measuring voltage on the State pin shows both are high, indicating the modules are connected to each other. I have tried UART configurations of 9600,0,0; 9600,1,0; 9600,0,1. I have tried the same variants at 38400 and 115200, with similar results, but never a successful transfer of the data over the Bluetooth connection.

I have also tried using the voltage divider between the Nano TX pin and the HC-05, using a 1k and 2.2k resistor on both Master and Slave. No improvement. In fact, when I use the voltage divider, the RX led on the Motor Controller Nano doesn't even flash once per second.

Unfortunately, I also don't have access to an oscilloscope to trace the signal at the HCO5 pins. I can only use a multimeter and confirm that the voltages are changing when the Joystick controller transmits the serial data.

I have read through everything I can find about these modules and arduinos, but cannot find "the missing link" as it were.

Hopefully someone here can help me figure out what I'm missing.

I used information from these pages to get my master slave HC05s to work.
Martyn Currey's page.
How to Mechtronics page.

I suggest that, for development, you use software serial ports for the HC05 modules so that the hardware serial ports are free for program upload, program output and debug messages.