¿Microprocesador a RS-232 en tiempo real usando PySerial / Matplotlib?

Soy nuevo en el mundo de Python y mis habilidades de programación son bastante pobres, pero estoy tratando de encontrar una manera de usar Python para mostrar la salida de un circuito EEG (usando el circuito OpenEEG)http://openeeg.sourceforge.net)

La salida analógica se amplifica y procesa a través de un ADC (en un microcontrolador ATmega8) y se convierte a RS232 por un MAX232.

La señal RS232 es la siguiente:

Byte 1: valor de sincronización 0xa5
Byte 2: valor de sincronización 0x5a
Byte 3: versión
Byte 4: número de cuadro
Byte 5: Canal 1 Low Byte
Byte 6: Canal 1 High Byte
Byte 7: Canal 2 Low Byte
Byte 8: Canal 2 High Byte
...
Los bytes 9-16 son para canales de electrodos adicionales, pero no se requieren datos ya que solo se utilizan los dos primeros
...
Byte 17: Estados del botón (b1-b4)

Tengo algunas funciones básicas de PySerial pero necesito encontrar una manera de utilizar los datos entrantes almacenándolos en un búfer y representando los valores útiles como 2 formas de onda x-y en tiempo real (tiempo frente a voltaje)

Actualización de la pregunta:

Estoy obteniendo el código para imprimir con las pocas líneas obvias de PySerial, pero es un engaño. Estoy tratando de dividir los datos en el formato de los valores que luego se pueden trazar. Los 17 bytes de datos están llegando actualmente a 256 cuadros / seg. Los (dos) canales están compuestos por 10 bits de datos cada uno (con 6 ceros para completar el resto de los 2 bytes). No están firmados, lo que da valores posibles de 0 a 1023. Estos corresponden a valores que deben representarse como positivos y negativos, por lo que un valor binario de 512 corresponde a una gráfica de cero (micro) voltios ...

¿Cómo leo el flujo entrante como un binario de 8 bits (eliminando los datos que no necesito), luego combino los dos bytes relevantes de cada canal que quiero (posiblemente eliminando los 6 ceros adicionales si es necesario)?

Respuestas a la pregunta(3)

Su respuesta a la pregunta