Utilisation de la bibliothèque Serial

115 200 c'est lent si on compare à d'autres modes de transmission, si on résonne à l'échelle d'un micro 8-bit 16 mhz, ça commence à être pas mal.

Pour la limiation à 64 octets c'est normal, voir hardware/arduino/cores/arduino/HardwareSerial.cpp :

// Define constants and variables for buffering incoming serial data.  We're
// using a ring buffer (I think), in which head is the index of the location
// to which to write the next incoming character and tail is the index of the
// location from which to read.
#if (RAMEND < 1000)
  #define SERIAL_BUFFER_SIZE 16
#else
  #define SERIAL_BUFFER_SIZE 64
#endif

SERIAL_BUFFER_SIZE peut-être augmenter, tout en sachant que c'est autant de RAM de "perdue"

Autre point à souligner, le problème m'est arrivé plusieurs fois. Toujours mettre un delay() (5 ms suffisent normalement) après un Serial.available() afin de laisser le temps à la transmission de se terminer. Si votre traitement est plus rapide que la transmission d'un caractère (particulièrement vrai à faible vitesse), vous traiterez des bouts seulement. Et c'est encore plus vrai avec des transmissions de longues chaines