Perdendo dados em string serial recebida

Portanto, parte de um projeto maior precisa receber uma longa cadeia de caracteres hexadecimais de uma porta serial usando um pi de framboesa. Eu pensei que tinha tudo funcionando, mas depois descobri que estava perdendo um pedaço de dados no meio da string.

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

Este é o script usado para recuperar os dados, a taxa de transmissão e os comandos seriais estão definidos corretamente e o script é executado como "unbuffered" (-u), mas a string completa não é salva. A string tem aproximadamente 16384 caracteres, mas apenas aproximadamente 9520 caracteres (varia) estão sendo salvos (não é possível fornecer a string para análise). Alguém sabe o que eu sinto falta? Felicidades por qualquer ajuda que você possa me dar.

questionAnswers(2)

yourAnswerToTheQuestion