Perdiendo datos en la cadena serial recibida

Por lo tanto, parte de un proyecto más grande necesita recibir una cadena de caracteres hexadecimales larga desde un puerto serie utilizando una pi frambuesa. Pensé que lo tenía todo funcionando pero luego descubrí que estaba perdiendo una parte de los datos en medio de la cadena.

def BUTTON_Clicked(self, widget, data= None):

        ser = serial.Serial("/dev/ex_device", 115200, timeout=3)

        RECEIVEDfile = open("RECIEVED.txt", "r+", 0) #unbuffered


        #Commands sent out
        ser.write("*n\r")
        time.sleep(1)
        ser.flush()
        ser.write("*E")
        ser.write("\r")

        #Read back string rx'd
        RECEIVED= ser.read()


        RECEIVED= re.sub(r'[\W_]+', '', RECEIVED) #remove non-alphanumeric characters (caused by noise maybe?)
        RECEIVEDfile.write(re.sub("(.{4})", "\\1\n", RECEIVED, 0, re.DOTALL)) #new line every 4 characters


        RECEIVEDfile.close              
        ser.write("*i\r")
        ser.close

Esta es la secuencia de comandos utilizada para recuperar los datos, la velocidad en baudios y los comandos serie se configuran correctamente y la secuencia de comandos se ejecuta como "sin almacenamiento" (-u), pero aún no se guarda la cadena completa. La cadena tiene aproximadamente 16384 caracteres, pero solo se guardan aproximadamente 9520 caracteres (varía) (no se puede proporcionar la cadena para el análisis). Alguien sabe lo que me estoy perdiendo? Saludos por cualquier ayuda que puedas darme.

Respuestas a la pregunta(2)

Su respuesta a la pregunta