Решено: Нужна помощь зала. Не объяснимая ошибка

Прошу очень помощи зала. Ситуация следующая: пишу прошивку «Бортовой компьютер» автомобиля
на основе Arduino Nano (хобби у меня такое, не работа).
Минимальный пример, для воспроизведения ошибки (удалил по максимуму всё, лишь бы ошибка воспроизводилась):

https://wokwi.com/projects/390348182761575425

Проблема в следующем, не обьяснимым образом, теряются данные в переменных при вызове функции translate.

String translate(String txt){
return txt;
};

Например при использовании вот так (строки 141-146):

display.print(translate("Transmission:"));
display.setCursor(0, 20);
display.print(translate("Bridge:"));
display.setCursor(0, 30);
display.print(translate("GRM ribbon:"));
display.display();   

На экран выводится «Bridge». Однако стоит убрать строчку

 display.print(translate("GRM ribbon:"));

Как волшебным образом, на экран начинает выводится и Transmission: и Bridge:.

Дело не только в этой строчке. Закомментировав рандомно часть кода выше-ниже, вообще не относящегося к выводу на экран, можно добиться эффекта, что выводятся на экран все три строчки.

Подумал что памяти не хватает. Но вроде норм. Я уже начинаю сходить с ума, несколько дней бьюсь над проблемой. Проблема воспроизводится и на «реальном железе», не только в эмуляторе.

Update: си не умеет возвращать строки. Только массивы символов. Поэтому верный код что-то вроде:

const char * translate(char *txt){  
  return txt;
};

Arduino: передача массива строк в качестве функции

За что я не очень люблю СИ, так за то что можно споткнуться на пустом месте и долго думать почему так? И в этот раз тоже, долго гуглил, почему у меня не получается передать массив строк в функцию, массив внутри «обнулялся». Наконец наткнулся, что СИ это не умеет. Умеет только передавать указатель на массив. Поэтому функция может выглять подобным образом:


int PutMenu(int cnt,String *mass){
  for (int i=0; i <= cnt; i++){
    Serial.println(mass[i]);    
  };
}

void setup(void){
    Serial.begin(9600);
    String massive[] = { "name", "test", "name", "need", "you", "need", "me", "test" };
    PutMenu(3,massive);
    return 0;
}

void loop(void){

}