Везде, где вы добавляете символы в свой массив, например:
if (Seen == true) {
if (Index < 2) {
//Serial.print("P");
pack = tmp[Index++] = received;
Serial.print(pack);
Вы также должны завершать строку нулем следующим образом:
if (Seen == true) {
if (Index < 2) {
//Serial.print("P");
pack = tmp[Index++] = received;
tmp[Index] = 0;
Serial.print(pack);
Таким образом, вы можете использовать strlen для получения длина строки в массиве. Он будет считать количество символов до этого нулевого символа.
int length = strlen(tmp);
На следующем проходе l oop, когда вы пишете другим символом, вы запишите его поверх этого нуля, а затем запишите новый ноль сразу после этого нового символа.