Problema con lectura puerto USB y python

No hay como postear en un foro para encontrar el problema... en fin.

// LECTURA DEL SERIAL
  if (Serial.available()) {
    while(Serial.available()) {
        i = i +1;
        tmpl[i] = Serial.read();
        leerGS = 1;
      }
      if (leerGS == 1) {
        leerGS = 0;
        // Serial.println("LECTURA SERIAL:");
        // Serial.println(tmpl[1]);
        for (i = 1;i < 33; i++) {
          GS[i] = tmpl[i];
        }
        i = 0;      
      }
  }

Me acabo de dar cuenta quitando y poniendo que esta parte es la que hace que la salida se convierta en 1023, pero no se porque lo hace.

Este código lo que pretende es leer el puerto serie donde recibe los sensores activos para luego leer los datos en caso de estar activos. El envío no se hace siempre, solo cuando hay cambios.

Cuando quito el código del if (leerGS == 1) es cuando funciona.

Pues de lo que me he dado cuenta es que durante dos o tres lecturas si va bien la cosa, pero llega un momento en la que solo marca 1023... ahora estoy peor que antes... en fin.

A ver si alguien me puede echar un cable, porque ahora mismo ando muy perdido.

un saludo.