Leonardo und avrdude

Hallo zusammen,
ich möchte meinen Leonardo unabhängig von der IDE von Arduino programmieren. Das Problem ist nun das nach dem überspielen des Programmcodes mit avrdude der Leonardo keinen Port mehr erhält. Mache ich es über die IDE erscheint der Leonardo im Geräte-Manager wieder unter dem voher eingestelltem Port.
Kann es also sein das Arduino noch zusätzlichen Code anhängt um die USB-Funktionen zu aktivieren.

Gruß Eulenspiegel

Du kannst Dir in der IDE ja anzeigen lassen, welche Kommandos die IDE ausführt. Wenn Du das selbe machst, sollte auch das Resultat identisch sein. Für mich tönt es ein wenig nach einem fehlenden Reset des Leonardos, aber so ganz schlau werde ich nicht aus Deinen Ausführungen. Da Du von Port und Geräte-Manager schreibst, gehe ich von einer Windows-Umgebung aus. Ist das richtig?
Poste Deinen avrdude-Aufruf!

Ist das HEX-file das Du mit avrdude machst gleich groß wie das mit IDE erzeugt wird?
grüße Uwe

Ist das HEX-file das Du mit avrdude machst gleich groß wie das mit IDE erzeugt wird?

Mein avrdude lädt nur die Daten zum ATmega hoch, das Hex-File muss dafür bereits vorhanden sein. Ich nehme mal an, das wird per Makefile erzeugt.

Interessanter wäre, ob der Leonardo durch Ausstecken und wieder Einstecken auch wieder "einen Port erhält" (oder wie auch immer Du die Anmeldung am USB nennst). Dies natürlich im Fall, wenn avrdude alleine (und nicht die IDE) den kompilierten Sketch hochgeladen hat.

Hi, erstmal danke für dein Post. Der Leonardo wird nach dem upload durch avrdude nicht mehr als USB-Gerät erkannt. Das liegt aber daran das die IDE noch etwas Programmcode für die USB-Schnittstelle im Hintergrund zusätzlich einbindet. Kurz gesagt ich muss die USB-Schnittstelle im Leonardo aktivieren.
Gruß Eulenspiegel

Kurz gesagt ich muss die USB-Schnittstelle im Leonardo aktivieren.

Das machst Du schon, wenn Du das Serial-Objekt in Deinem Sketch verwendest. Dann wird automatisch der entsprechende Code eingebunden. Der Leonardo-Bootloader macht das natürlich auch, damit er bereit für einen Code-Upload per USB Serial Profile ist.

Wenn Du das Serial-Objekt nicht verwendest, macht es auch keinen Sinn, den entsprechenden Code zu laden, da er ja nicht verwendet würde und nur Rechenzeit auf dem Leonardo beanspruchen würde.

Vielleicht machst Du aber auch einen Fehler im Code oder bei der Compilation. Kannst Du Makefile und Code posten?

ich programmiere nicht mit der IDE von Arduino, deshalb kann da auch nichts eingebunden werden.
Gruß Eulenspiegel

ich programmiere nicht mit der IDE von Arduino, deshalb kann da auch nichts eingebunden werden.

Aber Du benützt die Bibliotheken von Arduino?

Ansonsten würde ich Dir zumindest empfehlen, einen Teil davon zu gebrauchen, sonst musst Du den ganzen USB-Teil mit CDC usw. selbst schreiben.