Arduino Mega 2560 Upload Probleme

Moin moin,

kennt jemand das Verhalten beim Arduino Mega 2560 das Sketche beim Upload hängen bleiben?

Der Sketch wird (fehlerfrei) kompiliert und beim Upload bliebt die IDE dann einfach stehen bis man das USB-Kabel zieht.

Die RX und TX LEDs am Arduino leuchten während des Uploads dann auch nicht.
Das KS0108 LCD das ich angeschlossen habe, flackert normalerweise beim Upload auch, dies tut es dann auch nicht.

Jetzt aber der Knüller: Schreibe ich in mein void setup() einfach nochmal 5 oder 10 mal GLCD.Init(); untereinander klappt der Upload wieder.

Manchmal hängt der upload auch einfach durch ein return; lösche ich dies wieder, geht der Upload wieder.

Ich konnte online nur 2 weitere Personen mit diesem Problem finden, leider sind die Forum-Posts
nie wieder beantwortet worden.

MfG NeoCortex.

Zieh das Display während des Uploads ab. Ansonsten fehlen hier einfach zu viele Infos. Wie angeschlossen, orginal Arduino mit 16U2, ......

Display abziehen bringt leider keine Änderung.
Angeschlossen ist der Arduino per USB.
Der Arduino wurde vor ca. 2 oder 3 Jahren gekauft. Auf der Unterseite steht Board Model: Mega 2560 R3

Wenn hier sonst noch was gebraucht wird, lasst es mich einfach wissen. Bin hier im Forum neu unterwegs.

Hallo,

ein nackter Sketch geht zu laden?
Den Blink Sketch kannste auch übertragen?
Display ist ab und dennoch funktioniert der Upload dafür nicht?
Ohne den Code zu sehen könnte es vielleicht daran liegen das irgendwo im Code eine Ausgabe mit mehreren !!! drin ist? Wenn ja, auf 2 beschränken. Fällt mir gerade so sein.

Ansonsten Code zeigen der nicht funktioniert und deinen Schaltplan.

Moin moin,

nackter Sketch geht.
Blink Sketch? Welchen meinst du damit? Ich habe hier die openGLCD Lib, andere Beispiele aus der gehen fehlerfrei.
Mehrere Ausrufezeichen werden nicht verwendet.

Ich denke nicht das es am LCD liegt, sondern viel mehr am Mega selbst.

Ein Tipp ins blaue währe, dass ein Teil des Speichers einen weg hat und der Programmer beim schreiben der Pages es nicht schafft ein bit zu kippen und beim erneuten Versuch die Spannung weg bricht.

Hehe tja Code zeigen ist ne Sache.
Das wird ein Digitaler Tacho, der Code ist schon ein paar Zeilen lang...

Ich kann dir einen Auszug zeigen, der dafür verantwortlich war das der Upload nicht mehr ging.

Zuerst:

void setup()
{
  GLCD.Init();
  
  // Select the font for the default text area
  GLCD.SelectFont(System5x7);

  //GLCD.DrawBitmap(startup, 0, 0, PIXEL_ON); // <- this will crash the arduino upload, dont ask me why...
  GLCD.DrawBitmap(simson, 32, 20, PIXEL_ON);
}

Wird das zweite DrawBitmap wird de-kommentiert... Adê Upload

Hier noch eine Codestelle mit der, der Upload in Urlaub geht

  // yellow button while in state 2
  if (digitalRead(button_yellow) == 0 && button_push == false)
  {
    button_push = true; // only press once!
    Serial.println("BUTTON YELLOW!");

    // is the LCD off? turn it on no matter what!
    if (lcd_on == false)
    {
      standby();
      //return; // THIS PART CRASHES THE ARDUINO UPLOAD AGAIN :(
    }
    
    menu_selection++;
    if (menu_selection == 9) menu_selection = 8; // max menu!
    draw_menu();
  }

Wird hier der return wird de-kommentiert heisst es auch Upload? Wer? Ich? Nö nö.

Auch wenn das LCD abgezogen ist, geht der Upload dann nicht.
Wie gesagt hilft es (immer mal wieder) einfach 10 bis 20 mal GLCD.Init() im setup() unter einander zu schreiben.

Hallo,

man kann die .ino auch als File ranhängen wenn das zu groß wird zum einfügen.

Blink Sketch > IDE > Datei > Beispiele > Basic > Blink
oder
Blink Sketch > IDE > Datei > Beispiele > Digital > BlinkWithoutDelay

Nur wenn das schon im Code steht, dass der Upload gestört wird, dann ist der Fall doch schon klar. Was willste da weiter suchen? Dann wird wohl die Lib Müll sein.

@ schulteworker:
hattest Du nicht mal in einem ähnlichen Fall einen Workaround entdeckt zum LCD Init? Ich weis aber nicht worum da genau ging. Nur so ähnlich denke ich.

Was ich bis jetzt vergessen hatte zu erwähnen:
Auf einem Arduino UNO macht der selbe Sketch keine Probleme.
Einziger Unterschied, dort wird SoftwareSerial verwendet.

Das waren nur Auszüge aus dem Ganzen.
An der zweiten Stelle ist es nur ein einfacher return der den Upload stört.

GLCD.Init() im setup zu "spammen" hatte ich auch nur versucht um Speicher auf zu füllen,
so das der Teil in der nächsten Page des programmers landet.

Wie es bis jetzt aussieht, liege ich mit der Vermutung richtig. Da scheint was im Flash das Zeitliche gesegnet zu haben.

Was ich mir noch vorstellen könnte, dass der Programmer beim erneuten Versuch der Page die 5,25V des USB-Ports sprengt.
Allerdings hab ich erst morgen eine externe Stromversorgung zum testen da.
In diesem Sinne also erst mal gute Nacht zusammen.

Um sicher zu sein daß es ein Problem des Arduino MEGA ist bräuchtest Du einen zweiten MEGA zum testen ob der die gleichen Symptome macht.
Grüße Uwe

Das ist ein Argument. Glücklicherweise, wie der Zufall so will, warte ich gerade auf eine Lieferung.
Ich habe mir noch einen Mega bestellt, da der den ich hier gerade benutze einem Freund gehört.

Sobald der da ist, probiere ich den Sketch mal in ihm aus und lasse es euch wissen.

Mal ein kleines Update für zwischendurch.

Ich wunderte mich, dass der letzte Eintrag meines Menüs nicht angezeigt wurde.
Die Ausgabe per Serial.println zeigte dann auch warum. Der String wird im Speicher einfach völlig
zerrupt.

Ich hoffe das Kit, dass ich bestellen möchte, ist bald wieder lieferbar.
Dann kann ich das ganze mal auf einen anderen Mega brennen und schauen was der sagt.

So wie versprochen dann nochmal eine Rückmeldung.
Der neue Genuino Mega 2560 ist da und macht keine Probleme.

Es liegt also wirklich an dem (alten) Arduino Mega 2560.

MfG Neo