Si querés seguir trabajando los datos como string en vez de un array de bytes como te sugerí, probá que pasa si le imponés el encoding que vas a utilzar, te sugiero el cp437:
	
	
	
		
Y después cuando ya tengas el string de la "S", convertilo a bytes usando el objeto cp437 como hice en el mensaje anterior.
				
			
		C#:
	
	...
            Encoding cp437 = Encoding.GetEncoding(437);
            puertoSerie = new SerialPort()
            {
                // Configuración del puerto serie.
                PortName = "COM3",           // Nombre del puerto serie.
                BaudRate = 2400,             // Velocidad en baudios.
                Parity = Parity.None,        // Esquema para comprobar la paridad de cada byte recibido.
                StopBits = StopBits.One,     // Número de bits de parada por byte.
                DataBits = 8,                // Número de bits de datos por byte.
                Handshake = Handshake.None,  // Protocolo de establecimiento.
                DtrEnable = true,            // Línea de terminal de datos.
                RtsEnable = true,            // Línea de solicitud.
                // Establecer los tiempos de espera de lectura / escritura.
                ReadTimeout = 500,           // Tiempo de espera de escritura en ms.
                WriteTimeout = 500,          // Tiempo de espera de escritura en ms.
                // Más configuraciones.
                DiscardNull = false,         // Descartar bytes nulos recibidos.
                ParityReplace = 63,
                ReadBufferSize = 4096,
                WriteBufferSize = 2018,
                ReceivedBytesThreshold = 1,
                Encoding = cp437
            };
...
	Y después cuando ya tengas el string de la "S", convertilo a bytes usando el objeto cp437 como hice en el mensaje anterior.
  
				
						



