How do I get a sketch to recognize no input from a joystick?

Hello,

I'm working on a capstone project for my BS degree. My part of the project is to gain control of two stepper motors in a wireless webcam so that I can control them with a joystick. My end game is to control a wireless cam with a joystick and to be able to fire a laser pointer at an electronic target that will activate a solenoid and pop a balloon. I have ID'ed the wires and have them hooked up to 5804 stepper motor controller chips. My problem is that I can't figure out how to properly stop the motors after activition with the joystick. I have the joy stick sending out a "r" for CW rotation and "l" for CCW rotation. When I return the joystick to center position (nothing being send to the arduino) the motors don't want to stop. I tried to have the arduino output a HIGH at the end of each loop, but when I need a constant CCW rotation I get a start...stop, start...stop, start...stop type of action. Is there any way to have the sketch recognize when the joystick is not sending out anything so that I can then set the stepper motor controller pin to HIGH (disabled)?
The part of the code that says:

 if (inByte != 'f' || inByte != 'u' || inByte != 'd' || inByte != 'l' || inByte != 'r'){
    digitalWrite(12, LOW);      // set laser to off
    digitalWrite(11, HIGH);     // set tilt enable to disabled
    digitalWrite(10, HIGH);     // set pan enable to disabled

only seems to work if something is sent from the joystick, like depressing another button that I don't need for the camera or laser control...
Here is my sketch so far:

char inByte;

int laser = 12;
int tilt_en = 11;
int pan_en = 10;
int tilt_con = 9;
int pan_con = 8;

void setup(){

Serial.begin(9600);

pinMode(12, OUTPUT);        // laser control
pinMode(11, OUTPUT);        // tilt enable 
pinMode(10, OUTPUT);        // pan enable
pinMode(9, OUTPUT);         // tilt control
pinMode(8, OUTPUT);         // pan control

digitalWrite(12, LOW);      // set laser to off
digitalWrite(11, HIGH);     // set tilt enable to disabled
digitalWrite(10, HIGH);     // set pan enable to disabled
}

void loop(){
  if (Serial.available()>0) {   // check if any data received
    inByte = Serial.read();    // yes, so read it from incoming buffer
    Serial.print("I received: ");
    Serial.println(inByte);     // say what you got
    //val = atoi(inByte);
    
  if (inByte != 'f' || inByte != 'u' || inByte != 'd' || inByte != 'l' || inByte != 'r'){
    digitalWrite(12, LOW);      // set laser to off
    digitalWrite(11, HIGH);     // set tilt enable to disabled
    digitalWrite(10, HIGH);     // set pan enable to disabled
}
  // Note:  need to find out how to get the laser and enables to go
  // HIGH after finishing a task...
  
  switch (inByte){
    case 'f':  // fire laser
      digitalWrite(laser, HIGH);
      delay(250);
      digitalWrite(laser, LOW);
      Serial.print("Firing Laser");
      break;
      
    case 'u':  // tilt up
      digitalWrite(tilt_en, LOW);
      digitalWrite(tilt_con, LOW);
      Serial.print("Tilting Up");
      break;
      
    case 'd':  // tilt down
      digitalWrite(tilt_en, LOW);
      digitalWrite(tilt_con, HIGH);
      Serial.print("Tilting Down");
      break;
      
    case 'r':  // pan right
      digitalWrite(pan_en, LOW);
      digitalWrite(pan_con, LOW);
      Serial.print("Panning Right");
      break; 
      
    case 'l':  // pan left
      digitalWrite(pan_en, LOW);
      digitalWrite(pan_con, HIGH);
      Serial.print("Panning Left");
      break;
}
}
}

I have the joy stick sending out a "r" for CW rotation and "l" for CCW rotation. When I return the joystick to center position (nothing being send to the arduino)

That is your problem you need something to indicate when the joystick is returned the the center. Without this you are sunk.
Can you give more information about the joystick, type number or circuit.

int laser = 12;
int tilt_en = 11;
pinMode(12, OUTPUT);        // laser control
pinMode(11, OUTPUT);        // tilt enable

If you'd used the nice names you'd given the pins, you wouldn't need the comments

I'm using a Microsoft Sidewinder Precision 2 Joystick. I'm using the Joycur program to map the buttons on the joystick. I'm also using the typematic function with polling interval at 100ms, typematic delay at 50ms, typematic interval 100ms

@ AWOL: thanks...the focus of my degree is the hardware side not the programming side. I appreciate the pointer!

I would ditch the typematic and write you own function to read the stick. After all if you are concentrating on the hardware it is something you should be addressing directly.

I think I figured it out. I updated my sketch to look for "null" and if it sees nothing then to "zeroize" the laser and chip enables. I also added a 200ms delay on the serial.read since the joystick program is has a send delay of 200ms. I checked the arduino outputs with a logic probe and it looks good!
Here is my updated sketch:

char Joystick_in;

int laser = 12;
int tilt_en = 11;
int pan_en = 10;
int tilt_con = 9;
int pan_con = 8;

void setup(){

Serial.begin(9600);

pinMode(laser, OUTPUT);        // laser control
pinMode(tilt_en, OUTPUT);        // tilt enable 
pinMode(pan_en, OUTPUT);        // pan enable
pinMode(tilt_con, OUTPUT);         // tilt control
pinMode(pan_con, OUTPUT);         // pan control

digitalWrite(laser, LOW);      // set laser to off
digitalWrite(tilt_en, HIGH);     // set tilt enable to disabled
digitalWrite(pan_en, HIGH);     // set pan enable to disabled
}

void loop(){
  if (Serial.available()>0) {         // check if any data received
    Joystick_in = Serial.read();    // yes, so read it from incoming buffer
    Serial.print("I received: ");
    Serial.println(Joystick_in);    // say what you got
    delay(200);
    //Joystick_in = "";
    //val = atoi(inByte);
  }
  else if (Joystick_in = "null" || Joystick_in != 'f' || Joystick_in != 'u' || Joystick_in != 'd' || Joystick_in != 'l' || Joystick_in != 'r'){
    Serial.print("Setting all points to zero");
    digitalWrite(laser, LOW);      // set laser to off
    digitalWrite(tilt_en, HIGH);     // set tilt enable to disabled
    digitalWrite(pan_en, HIGH);     // set pan enable to disabled
}
 
  switch (Joystick_in){
    case 'f':  // fire laser
      digitalWrite(laser, HIGH);
      delay(250);
      digitalWrite(laser, LOW);
      Serial.print("Firing Laser1");
      Serial.flush();
      break;
      
    case 'u':  // tilt up
      digitalWrite(tilt_en, LOW);
      digitalWrite(tilt_con, LOW);
      Serial.print("Tilting Up1");
      break;
      
    case 'd':  // tilt down
      digitalWrite(tilt_en, LOW);
      digitalWrite(tilt_con, HIGH);
      Serial.print("Tilting Down1");
      break;
      
    case 'r':  // pan right
      digitalWrite(pan_en, LOW);
      digitalWrite(pan_con, LOW);
      Serial.print("Panning Right1");
      break; 
      
    case 'l':  // pan left
      digitalWrite(pan_en, LOW);
      digitalWrite(pan_con, HIGH);
      Serial.print("Panning Left1");
      break;
}
}

The next part of my project is hard mount the control and the power circuitry onto a solderable PCBA (from a breadboard) and integrate everything on the quad-rotor flyer! I'm using xbee's to transmit everything from the serial port of the laptop to the arduino on the flyer...Good times!