Kein Upload mehr auf Leonardo Pro Micro

Hallo zusammen,

bin neu hier im Forum und auch kein so guter Arduino Programmierer.
Daher entschuldigt auch bitte wenn ich nicht ganz zu 100% die richtigen Wortlaute treffe.
Prinzipiell Programmiere ich ab und an für meinen Modellbau sehr einfache Schaltungen / Programme.
Zeit- oder Interrupt gesteuert und das wars dann auch schon.

Als neues Projekt hatte ich mir eine Ausgabe auf einem PC mittels Leonardo vorgestellt.
Daher habe ich angefangen mit einem solchen etwas herumzuexperimentieren.

Leider ist der Leonardo nach dem 1. Upload für einen weitern upload nicht mehr erreichbar.
Er arbeitet noch, was ich an der Seriellen Ausgabe auch sehe.
Auch im Gerätemanager sehe ich dass er angeschlossen wurde.

In anderen Threads habe ich etwas von Boardloader brennen gelesen.
Aber wenn ich in meiner Arduino IDE auf den Button drücke tut sich da überhaupt nichts.

Da ich noch nicht mal weiß, nach welchen Suchbegriffen ich suchen kann wäre ich über eure Hilde oder einen Link sehr dankbar.

Hier noch mein sehr einfachen Test - Quellcode welchen ich auf den Leonarde aufspielen konnte
(kann mir nicht vorstellen was hier schief gelaufen ist, da der Code auf einem Nano einwandfrei läuft):

#include <avr/wdt.h> // Bibliothek für Wachtdogtimer

unsigned long aktuelleMillis; // Speicher aktuelle Millis
long bisherigeMillis = 0; // Speicher bisherige Zeit, Startzeit = 0
long vMillis = 0; // Speicher Zeit für Prog. Geschwindigkeit, Start = 0
int T = 1000; // T = 1s

//-------------------------------------------------------------------------------------------
void setup()
{
Serial.begin(9600); // Schnittstelle mit PC herstellen
while(!Serial); // Serialprogramm startet erst wenn Monitor geöfnet wird
Serial.println("Programmstart"); // Programmstart ausführen

pinMode(9,INPUT_PULLUP); // pin 9 Eingang Hauptschalter
pinMode(10,INPUT_PULLUP); // pin 10 Eingang
wdt_enable(WDTO_4S); // Watchdog Timer = ein; 4s
}
//---Hauptprogramm---------------------------------------------------------------------------
void loop() // Hauptprogramm
{
wdt_reset(); // reset Watchdogtimer

aktuelleMillis = millis(); // schreibe in aktuelle Mills die Mills des Arduino

//---Messung Prog. Geschwindigkeit > Ausführung ---

if(aktuelleMillis - vMillis > 120000) // frage ab: ist aktuelle Mills - bisherige Mills noch größer als 60000ms = 1 min
{
Serial.println("Hallo!");
vMillis = aktuelleMillis; // schreibe in vMillis die aktuelle Millis

}
}

Vielen Dank!

Schritt für Schritt Anleitung:

  1. Wunschprogramm in der IDE öffnen (z.B. das Blink Beispiel)
  2. Reset Taste am Leonardo drücken und festhalten
  3. Dann erst Leonardo an USB anschließen
  4. Upload in der IDE betätigen
  5. Wenn "Hochladen" in der Statuszeile erscheint, Reset Taste los lassen
1 Like

Hi,
danke für den schnellen Hilfe Versuch.
Ich habe vergessen zu schreiben.
Ich habe ein Leonardo Mini > keine Reset Taste...
Ich schau ob ich es in der Überschrift noch editieren kann.

Sowas gibt es nicht.

Aber wenn ohne Taste dann:
Erst wenn "Hochladen" in der Statuszeile erscheint, dann sofort den Leonardo an USB stecken.

Ok sorry (ich sagte ja... DAU)
das Teil heißt Pro Micro
Ich probier es danke!

Der hat aber einen reset-Pin, an den man einen eigenen Reset-Taster anschließen kann. Im Notfall tut es auch ein Stück Draht auf einem Breadboard den man ( zwischen Reset-Pin und Gnd ) einsteckt, und zum rechten Zeitpunkt wieder rauszieht.

Morgen, super danke Reset Pin mit Anleitung von combie hat funktioniert!

Aber prinzipiell:
Ist das normal ein Upload beim Leonardi Pro Micro so durchzuführen oder mach ich da etwas falsch?
Auch mein 2 ter Leonardo hat das selbe Verhalten gezeigt, von daher bin ich etwas skeptisch...

Du fummelst da mit dem WDT rum.
Da wundert mich das jetzt nicht.
Denn der wird von einem Reset nicht abgeschaltet. Da bedarf es eines Power Down Zyklus.

Platinen mit dem ATmega32U4 (Leonardo, MICRO, PRO MICRO, Robot, und andere) sind etas anfälliger für Probleme mit dem automatischen Reset vor dem Upload.
Da der ATmega32U4 resetiert wird wenn die Bautrate auf 1200 geschaltet wird und das als ein Teil des Codes ist, der aus dem Sketch generiert wird, können Probleme mit dem Sketch oder anderer Hardware des Controllers, die verwendet werden, die Resetgenerierung blockieren. Da hift nur fehlerfrei programmieren oder den Reset-Taster bemühen.
Grüße Uwe