Cosa strana con Arduino MEGA

Ho un sketch abbastanza complesso.

Se metto

if (cam.begin()) {
    Serial.println("CAMERA TROVATA");
  } else
  {
    Serial.println("CAMERA NON TROVATA");
    return;
  }

compila, se invece metto

 if (cam.begin()) {
    Serial.println("CAMERA TROVATA");
  } else {
    Serial.println("CAMERA NON TROVATA !!!!!!!!!!");
    return;
  }

Arriva a "uploading" e si ferma.
Chiaramente ho cambiato il testo e non ci sono problemi, ma qualcuno sa il perchè?

N

la sparo nel mucchio: la serie di ! in byte è uno dei comandi del bootloader che quindi se ne va in palla perchè gli arriva quel comando quando meno se lo aspetta.
Ma è la prima cosa che mi è venuta in mente, c'è da verificare nel codice

contecavour:
Arriva a "uploading" e si ferma.

Attiva il modo verbose e posta l'errore esatto, così è impossibile capire perché si comporta in questo modo.

lesto:
la sparo nel mucchio: la serie di ! in byte è uno dei comandi del bootloader che quindi se ne va in palla perchè gli arriva quel comando

Quando invii il file .hex è normale che arrivano tutte le possibili combinazioni di byte, però una volta che AvrDude comincia a leggere l'hex per trasferirlo non interpreta il suo contenuto, si limita ad inviarlo al micro pertanto la tua ipotesi non è valida.