Upload-Probleme

Hallöle.
Einer meiner MEGA`s will nicht mehr so richtig.
WAS der Bursche hat, ist mir unklar denn:

Nehm ich ihn standalone, und schicke ihm irgendein Programm rauf, klappt es im allgemeinen problemlos.
Möcht ich ihm aber ein bestimmtes Programm (das vom TomWay- das lief schon!) aufspielen, kommt der Fortschritt-Balken bis kurz vorm Ende, bleibt da minutenlang und dann erscheint folgende Meldung:

Binäre Sketchgröße: 22.582 Bytes (von einem Maximum von 258.048 Bytes)
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_getsync(): timeout communicating with programmer

Etliche Male hintereinander..

-am Programm kann es nicht liegen, denn auf den Uno kann ichs ganz problemlos aufspielen.

  • die IDE hab ich, samt Treibern, schon neu installiert, das Problem ist geblieben
    -wenn ich nach dem missglückten Versuch probiere, ein anderes Programm aufzuspielen erscheint die Meldung, dass der Port bereits benutzt wird...dabei leuchtet die TX-LED dauerhaft und die RX-Led blinkt alle 3-4s kurz auf.
    Ziehe ich den Mega ab, und stecke ihn wieder an, erscheint er mitunter nicht (er ist üblicherweise auf COM5, aber immer sind 5 und 1 in der Liste, aber auf 1 isser nicht ansprechbar (das war schon immer so), nach mehrmaligem an-und abstecken gehts dann-auf COM5.
    Dann sind die beiden LED`s auch aus.
    Eben hab ich noch versucht, nach der beschriebenen, erfolgreichen Übertragung wieder das fragliche Programm aufzuspielen- geht wieder nicht.
    Auch nicht, wenn ich den Stecker gezogen hatte (eben auch noch versucht).

Jemand eine Idee?

Andere Testprogramme nimmt das Ding aber durchaus an und die laufen auch!

Rabenauge:
-am Programm kann es nicht liegen, denn auf den Uno kann ichs ganz problemlos aufspielen.

Ich schätze mal, Dein MEGA hat den "Schlechte-Grammatik-Bug" und Du pflegst einen Programmierstil, bei dem Du irgendwo in Deinem Quelltext drei (oder noch mehr) Ausrufungszeichen nacheinander stehen hast.

Suche die Stelle und bemühe Dich mehr um korrekte Zeichensetzung, also keine dreifachen Ausrufungszeichen nacheinander, sondern korrekterweise ein Satzzeichen und fertig. Na gut, 2 Ausrufungszeichen nacheinander akzeptiert der MEGA auch noch, aber 3 Ausrufungszeichen nacheinander sind vielen MEGA-Bootloadern einfach zu viel.

Nein, das wars nicht.
Solche Ausrufezeichenfolgen benutze ich nämlich nicht-weder beim programmieren noch anderswo. Bin der Meinung, was ein Ausrufezeichen nicht bewirkt, bringen auch zehn nicht zustande..

Natürlich hab ich das Programm trotzdem danach abgesucht- erfolglos.

ABER: es funktioniert dann, wenn ich die Zeile

Serial.begin(115200); auskommentiere!
Dann sind die beiden LED`s auch aus nach dem upolad.
Das wundert mich nun doch schwer, denn ich hab das seit Monaten drin..?
Klappt auch dann nicht, wenn ich die Baudrate runter setze-auch das hab ich getestet.

Nachtrag: benutze ich irgendein anderes Programm, was ebenfalls die serielle Konsole als Ausgabe hernimmt- funktionierts.
Eben erfolgreich probiert...

Rabenauge:
ABER: es funktioniert dann, wenn ich die Zeile

Serial.begin(115200); auskommentiere!
Dann sind die beiden LED`s auch aus nach dem upolad.
Das wundert mich nun doch schwer, denn ich hab das seit Monaten drin..?

Hast Du vielleicht noch eine veraltete Arduino-Softwareversion v.1.0.1 im Einsatz?
Dann würde sich ein Update auf v.1.0.5 anbieten.

Nö.
Es ist die 1.05-r2.

Vorhin extra frisch runtergeladen.

In ganz hartnäckigen Fällen die übersetzte Hex Datei auf drei aufeinanderfolgende "21" absuchen.

Oder den Gegen-Test:

void setup()
{
static char x [] = "Mist !!!";
if (x[1] < 0x7f) x[1]++; // verwenden, sonst wird's weg-optimiert
}
void loop() { }

Die hex -Datei davon hört so auf:

:0A01E0004D697374202121210000F5
:00000001FF

Das kann ein alter 2560-Bootloader auch nicht laden.
Wenn es deiner kann, dann ist dein Bootloader in Ordnung

Also dein Code wird ebenfalls nicht angenommen, wie es scheint.
Upload bleibt kurz vorm Ende hängen und RX und TX blitzen alle paar Sekunden kurz auf.

Und tatsächlich: wenn ich die fragliche Zeile aktiviere, sieht die drittletzte Zeile im Hexfile so aus:

:1058240022000000007A21FD221021412121216A59

Verflixt. Und nu?

Rabenauge:
Verflixt. Und nu?

Wenn Dein Compiler Dir die drei Fragezeichen im Code versteckt:

  • Fehlerbereinigte MEGA-Bootloader sollen existieren (könnte man aufspielen)
  • ISP-Programmer existieren (könnte man zum Uploaden verwenden)

Oder den Quellcode des Sketches wieder so ändern, dass der Compiler den problematischen Code nicht mehr erzeugt.

Na Klasse.

Drei Variablennamen geändert und weg ist das Problem (nein, auch die enthielten keine Ausrufezeichen).

Jungejunge, da soll einer drauf kommen. :astonished:
Trotzdem danke an euch.

Werd mich dann aber bei Gelegenheit mal damit befassen, ob ich mit meinem Krempel hier (nen ISP-Programmer hab ich nicht, weil ich den nie haben wollte) das Ding geupdatet krieg irgendwie.