Передача данных с Arduino Mega на PC

Увеличить размер буфера приёма для сериал порта в его библиотеке под вашу задачу. Тогда будете читать весь буфер разом, а не побайтно.

Для ради “поиграться” попробовал запустить небольшой код. В Python-e вообще не разбираюсь, это вторая в жизни попытка))

Спойлер
import serial
# Открываем Serial порт ('COMX' замените на имя вашего порта)
ser = serial.Serial('COM40', 9600)

while True:
  response = ser.readline()
  # Декодируем ответ из байтов в строку с использованием UTF-8
  decoded_response = response.decode('utf-8')

  print(decoded_response)

Arduino - код из #4

Спойлер

Как видим , всё норм. Никакой буфер не переполняется, надо искать косяк в своей программе ИМХО.
P.S. Пару строчек кода на Python “выковырял” отсюда:
https://amperkot.ru/blog/serial-py/?srsltid=AfmBOoqokTeFO7iUmwBsFrkIkPvhO85xo1CoLY8faITwNu-JCDSmFip4

Я тоже не знаю Питона, но мне сдается, что serial.readLine() нужно заменить на что-нибудь вроде serial.readChar() и проверить, что print может работать не только со строками, но и с отдельными символами. Ну либо заменить его той функцией, которая может.