Arduino Leonardo wird nach Upload nicht mehr erkannt

Hallo

Bin neu hier und auch in der Verwendung von Arduino. Ich habe leider ein gröberes Problem mit meinem Leonardo und hoffe auf eure Hilfe.

Ich habe das Forum bereits durchstöbert, bin mir aber nicht sicher was jetzt wirklich die Ursache für die Problem ist.

Folgende Situation: Ich habe ein Leonardo mit einem HC-06 verbunden, um Daten eines Sensors zu übertagen. Als ich das sketch hochgeladen habe, ist am ende des uploads die usb verbindung abgebrochen. Die Meldung "Verbindung wurde getrennt" schien auf.

Seit dort, wird das Leonardo vom Rechner nicht mehr erkannt (weder in Win7 noch in Ubuntu). Im Gerätemanager ist lediglich ein "unknown devise" vorhanden. Manuelle Treiberinstallation funktioniert nicht.

Fehleranalyse ergab zwei Probleme:
1tens hab ich versehentlich die TX und RX pins verkehrt ans HC-06 angeschlossen.
2ten habe ich im sketch einen Fehler. das Serial1.print() steht in einem durch timer ausgelösten interrupt. das hab ich erst jetzt gelesen, dass dies nicht möglich ist.

Welcher der beiden Fehler glaub iht, ist die Ursache für den Ausfall und was kann ich das board wieder in gang bekommen? Bootloader neu brennen? Board wegschmeißen und ein neues kaufen?

Hoffe ihr könnt mir weiterhelfen.
lg Georg

  1. Über ISP den Bootloader überschreiben (am besten das Programm gleich mit löschen, falls das nicht automatisch geschieht)

  2. Reset Verfahren, bitte dazu mal Google oder das Forum bemühen. Es geht, wenn du zwischen Kompilierzeit und Upload die Reset Taste drückst. Ist fast wie Einarmiger Bandit von der Erfolgschance, musst vermutlich mehrmals versuchen

  3. Tx und Rx vertauschen ist ungeschickt, führt aber nicht zwingend zum Defekt.

Problem wird der falsch programmierte uart vermutlich sein.

danke für die rasche antwort.

Das Reset Verfahren habe ich schon entdeckt, geht aber in meinem fall nicht, weil das board nicht mehr erkannt wird. es steht kein com port zur verfügung, über den ich einen upload machen könnte. Oder geht das auch, wenn ich den upload über den bluetooth com port mache? vermute mal nicht, oder?

Nein, über Bluetooth geht es so nicht, ausser du hast entsprechende Module, welche die HC05 /06 nicht sind.

oettlgeo:
Das Reset Verfahren habe ich schon entdeckt, geht aber in meinem fall nicht, weil das board nicht mehr erkannt wird. es steht kein com port zur verfügung, über den ich einen upload machen könnte.

Das Board wird schon erkannt, aber nur während der Bootloader läuft für ca. eine Sekunde.

Derselbe Leonardo lief bereits am selben PC, d.h. die Treiber sind installiert?

Du müßtest dann jetzt erstmal einen "Upload mit manuellem Reset" machen mit einem funktionierenden Programm, z.B. "Blink".

Damit Du den richtigen Reset-Zeitpunkt exakt triffst, bitte Du unter "Einstellungen" das Häkchen setzen bei der Option "Ausführliche Ausgaben Anzeigen während (x) Upload".

Dann drückst Du den Reset-Knopf, hältst ihn gedrückt und startest den Upload. In der Ausgabe siehst Du dann, wie nach Comports gescannt wird. Während nach den Comports gescannt wird, läßt Du dann sofort(!) den Reset-Button los und der Upload sollte erfolgen. Beim Blink-Programm wird der erfolgreiche Upload erkennbar am Blinken der Pin-13 LED.

Danach sind weitere Uploads dann wieder mit automatischem Reset möglich.

Allerdings: Mit fehlerhaften Sketchen kannst Du ein Leonardo/Micro Board leicht wieder bricken. Wenn Du neue Algorithmen entwickelst oder totaler Anfänger bist, nimmst Du lieber ein UNO-Board, das einen automatischen Upload über Bootloader stets erlaubt, selbst wenn Du den Controller mit Deinem Sketch total blockierst. Oder Du nimmst zum Programmieren eines Leonardo oder Micro Boards einen ISP-Programmer. Ansonsten wirst Du die manuelle Reset-Prozedur wohl bald wie im Schlaf beherrschen.

Viel Erfolg!

P.S.: Das typische Board für blutige Arduino-Anfänger ist ein "UNO"!

Danke für die Hilfe. Das Resetverfahren hat mein Leonardo wieder zum Laufen gebracht. Danke juris, für die detailierte Beschreibung. Ich war der Meinung, dass der Com Port noch erkannt werden muss, dass dies funktioniert.
ich nicht.

Danke