   else if(the_input.startsWith("E="))
   {
     debug_info(F("Bad NMEA"));
+  }
+  #endif
+  
+  else if(the_input.startsWith("S=") && the_input.length() >= 5) // Minimum FHUB sentence length (?)
+  {
+    queueMessage(the_input.substring(2));
+  }
+  #ifdef INPT_DEBUG_ON
+  else if(the_input.startsWith("S="))
+  {
+    debug_info(F("Bad FHx"));
   }
   #endif
   

  }
}

void houseKeeping()
{
  #ifdef STAT_DEBUG_ON
  IPAddress local = WiFi.localIP();
  debug_info(String(F("WiFi.status()=")) + WiFi.status() + String(F(", IP address: ")) + local.toString()); 
  #endif

  long now = millis();

  {
    displayCurrentVariables();
  }
  else if(the_input.charAt(0) == 'f')
  {
    showFileList();  
  } 

  if(the_input.startsWith("factory"))
  {
    help_info("Doing factory reset ...");
    //init_eeprom_memory();
    //read_eeprom_memory();
    help_info("FIX THIS HACK");
    initFileSystem();
  }

  else if(the_input.startsWith("E=") && the_input.length() >= 5) // Minimum NMEA sentence length (?)
  {
    echoNMEA(the_input.substring(2));
