En el IDE Arduino las variables tipo byte son 8 bits sin signo, la función devuelve valores negativos. En otros compiladores nos avisa con un mensaje de error o warning, Cambiado por tipo char 8 bits signo.
Realizando pruebas los valores devueltos no eran validos, no realizaba el trabajo adecuado. 
Después del cambio trabaja correctamente.