Ich habe gefühlt hunderte von Arduinos in Projekten verbaut. Nie Probleme gehabt beim Upload. Jetzt habe ich fast ständig die Meldung Port busy. Dabei spielt es keine Rolle, ob ich innerhalb von 20 Sekunden es 10 mal Versuche und mal zwei Minuten warte, das Verhalten ist völlig random. Auch rebooten scheint nicht gross einen Einfluss zu haben. Versucht habe ich: Originaler Arduino Uno aus der Box Mehrere Nanos Kabel getauscht, kuze Kabel lange Kabel verschiedener Hersteller Kabel direkt am PC anstatt USB Hub Arduino IDE SW update Libs update Jetzt gehen mir die Idee aus, weil so macht es keinen Spass. Die Hardware ist dieselbe wie eh und je, ich kann mir nur vorstellen dass durch die Windows Update mal was runtergejubelt wurde dass der Port nicht mehr richtig freigegeben wird. Irgendwer mit ähnlichen Erfahrungen?
Philipp G. schrieb: > Irgendwer mit ähnlichen Erfahrungen? Ja, hatte ich auch mal nach einem Windowsupdate. Im Batchfile zum Laden des Programms war vor dem eigentlichen Transfer ein probeweises Öffnen und Schließen der Schnittstelle vorhanden, vermutlich um deren Existenz zu verifizieren. Jedenfalls war nach Beendigung dieser Schnüffelroutine die Schnittstelle noch eine kurze Zeit als "busy" markiert und das folgende Programm bekam sie nicht geöffnet. Eine Millisekunde Verzögerung in das Batchfile eingebaut und alles lief wieder reibungslos. Gruß Klaus (der soundsovielte)
Philipp G. schrieb: > Jetzt gehen mir die Idee aus, weil so macht es keinen Spass. Dann einmal der Reihe nach: Von wem kommt die Meldung "Port busy"? Was sagt der Gerätemanager? Kannst du dich mit einem Terminalprogramm auf den Port verbinden? Wie nutzt du das DTR Signal? Welcher Boot Loader ist auf dem Arduino? Was hast du als Boot Loader eingestellt? Was passiert, wenn du die Reset-Taste benutzt?
Es kann helfen, die mit der Zeit immer mehr verklumpende Zuordnung von Schnittstellennummern zu USB-Seriell-Bridges zu entrümpeln. https://www.uwe-sieber.de/misc_tools.html#arbiter
Harald K. schrieb: > Es kann helfen, die mit der Zeit immer mehr verklumpende Zuordnung von > Schnittstellennummern zu USB-Seriell-Bridges zu entrümpeln. > > https://www.uwe-sieber.de/misc_tools.html#arbiter Habe ich soeben probiert - leider kein Erfolg. Rainer W. schrieb: > Von wem kommt die Meldung "Port busy"? Arduino IDE > Was sagt der Gerätemanager? Das Gerät funktioniert einwandfrei > Kannst du dich mit einem Terminalprogramm auf den Port verbinden? Geht. > Wie nutzt du das DTR Signal? Gar nicht. > Welcher Boot Loader ist auf dem Arduino? Der welcher original ausgeliefert wird. (Ich bin einer der die Dinger auch auf reichelt bestellt weil ich das Arduino Programm finanziell unterstützen möchte und nix nur Clones aus China kauft) > Was hast du als Boot Loader eingestellt? Alles durchprobiert, keine Wirkung > Was passiert, wenn du die Reset-Taste benutzt? Nun, der Taster schliesst den Stromkreis zum Reset Pin als Folge hiervon der CPU veranlasst einen Reset durchzuführen. Kann ein-austecken oder Resetten keine Verbesserung
Senden die µC was über UART ohne vorher gefragt zu werden? Dann erkennt Windows das Gerät als serielle Maus und blockiert so den Port.
Update: Ich habe mal ein vid gemacht damit es klar wird: https://www.youtube.com/watch?v=yRlOPvcXFk8
Philipp G. schrieb: >> Wie nutzt du das DTR Signal? > > Gar nicht. Das ist sehr ungewöhnlich. Eine neu installierte Arduino IDE mit dem Arduino Nano sollte das tun. Vielleicht solltest du überlegen, was du an der Arduino IDE kaputtkonfiguriert hast. Neuinstallation hast du schon probiert? >> Kannst du dich mit einem Terminalprogramm auf den Port verbinden? > > Geht. Kannst du vom Terminalprogramm aus über DTR einen Reset des Controllers auslösen? Kannst du mit einem anderen Programm die Serielle Schnittstelle zum Arduino öffnen? Jim M. schrieb: > Dann erkennt Windows das Gerät als serielle Maus und blockiert so den > Port. Dann dürfte auch das Terminalprogramm sie nicht öffnen können.
:
Bearbeitet durch User
stelle sicher, dass kein anderes Programm auf die serielle Schnittstelle zugreift - also schließ jedes Terminal und den Seriellen Monitor, bevor du den Upload versuchst.
Ich hatte auch mal so ein Problem. Bei mir war CURA schuld. Da es automatisch alle COM-Ports allokiert. Das mitgelieferte CURA-Plugin "USB Printing" deaktivieren und es ging wieder.
Die Fehlerursache wurde doch weiter oben schon beschrieben... Die Sitzung beginnt mit einem Reset des Arduino. Dazu wird die Schnittstelle geöffnet, an der DTR Leitung gewackelt und die Schnittstelle wieder geschlossen. Nun beginnt die eigentliche Programmierung. Dazu muss die Schnittstelle wieder geöffnet werden. Windows ist aber an manchen Ecken etwas träge und das Schliessen aus dem Reset Vorgang hat sich noch nicht im System herumgesprochen. Folglich kommt die Fehlermeldung, dass die Schnittstelle nicht zur Verfügung steht. Abhilfe wäre, das Schliessen und erneute Öffnen wegzulassen. Oder es muss zwischen Schliessen und Öffnen eine kleine Verzögerung eingebaut werden. Beides wäre Sache des AVRDude Programmierers (den ich hiermit herzlichst bitte).
Georg G. schrieb: > Beides wäre Sache des AVRDude Programmierers (den ich hiermit > herzlichst bitte). Und der hat gefaelligst regelmaessig die Freds hier zu lesen, damit er deinem Urteil zeitnah abhelfen kann! Gehts noch? Schreibe wenigstens einen korrekten Problemreport auf Github: https://github.com/avrdudes/avrdude/issues. Aber am besten Quellcode runterladen, die betreffenden Zeilen aendern, und neu kompilieren. Duerfte sich wahrscheinlich auf das Auskommentieren von ein paar Zeilen beschraenken. Du weisst wahrscheinlich nicht wie Open Source funktioniert!
Georg G. schrieb: > Abhilfe wäre, das Schliessen und erneute Öffnen wegzulassen. In der Tat, das ist ja auch komplett überflüssig.
Joe schrieb: > Und der hat gefaelligst regelmaessig die Freds hier zu lesen Er liest hier mit. Und ich kenne ihn. Ich bin mir sicher, er wird das bald erledigt haben.
Und das haben wir gefaelligst zu wissen? Interessante Lebenseinstellung. Eckst du da nicht oefters mal an?
Joe schrieb: > https://github.com/avrdudes/avrdude/issues Joe schrieb: > Und das haben wir gefaelligst zu wissen? Wenn Du die von Dir angegebene Adresse aufrufst und Dich dort etwas umsiehst, dann könntest Du auf einen bekannten Namen stoßen. ;)
Warum ist das denn jetzt ein AVRDude Problem wenn die Arduino-IDE offenbar zu schnell hintereinander den Port öffnet?
Björn W. schrieb: > Warum ist das denn jetzt ein AVRDude Problem wenn die Arduino-IDE > offenbar zu schnell hintereinander den Port öffnet? So schlimm kann es mit dem "zu schnell" nicht sein. Sonst hätte sich die Arduino IDE nicht dermaßen weit in der Welt verbreitet. Das hört sich eher nach einem lokalen Rechnerproblem an.
Rainer W. schrieb: > Das hört sich eher nach einem lokalen Rechnerproblem an. Das glaube ich auch. Fand nur den "schuldigen" bei AVRDude zu suchen in den vorigen Posts Unsinn.
Rainer W. schrieb: > Eine neu installierte Arduino IDE mit dem > Arduino Nano sollte das tun. Vielleicht solltest du überlegen, was du an > der Arduino IDE kaputtkonfiguriert hast. Die Arduino IDE installiert man nicht, man nutzt sie als portable. Oder redet Philipp G. (geiserp) etwa von der neuen Version mit ihren diversen Macken? Georg G. schrieb: > Die Fehlerursache wurde doch weiter oben schon beschrieben... > > Die Sitzung beginnt mit einem Reset des Arduino. Dazu wird die > Schnittstelle geöffnet, an der DTR Leitung gewackelt und die > Schnittstelle wieder geschlossen. > > Nun beginnt die eigentliche Programmierung. Dazu muss die Schnittstelle > wieder geöffnet werden. Wo nimmst Du diese Behauptung her? Nach DTR muss sie nicht geschlossen werden, der Arduino kann auch antworten, wenn sie offen bleibt.
Manfred P. schrieb: > Die Arduino IDE installiert man nicht, man nutzt sie als portable. Aha. Deswegen gibt es ja auch ein Installationsprogramm. Damit man es nicht benutzt. Klar. Versteht jeder. Manfred P. schrieb: > Oder redet Philipp G. (geiserp) etwa von der neuen Version mit ihren > diversen Macken? Version 2.x ist die erste wenigstens vage benutzbare Version dieser IDE, die den Benutzer nicht völlig verblödet vor den *.ino-Dateien stehen lässt, sondern Dinge zulässt, die andere IDEs schon seit Jahrzehnten können (z.B. "springe zur Definition eines Symbols"). Perfekt ist das alles nicht, keine Frage.
Harald K. schrieb: > Aha. Deswegen gibt es ja auch ein Installationsprogramm. Damit man es > nicht benutzt. > > Klar. Versteht jeder. Du verstehst das offensichtlich nicht! Vermutlich fehlt dir da was an nötiger Information, um das sinnbehaftet beurteilen zu können. Kann ich damit richtig liegen?
Arduino F. schrieb: > Kann ich damit richtig liegen? Nein. Ich finde bloß Helden, die mit pauschalen Aussagen wie eben der hier > Die Arduino IDE installiert man nicht, man nutzt sie als portable. ankommen, ein bisschen arg dumm. Dumm, weil sie unreflektiert ihre persönliche Vorgehensweise als die einzig mögliche und richtige darstellen. Es gibt sicherlich gute Gründe dafür, den Kram so nutzen zu wollen, aber dann sollte man anderes darauf hinweisen als "man macht das so".
Philipp G. schrieb: > Ich habe mal ein vid gemacht damit es klar wird: Daraus wird mir nur klar, daß beim Compilieren ein Fehler auftritt. Macht es zuviel Mühe, in den Einstellungen der ArduinoIDE die erweiterte Ausgabe für den Ladeprozeß zu aktivieren, sich daraus den Aufruf von avrdude abzukupfern und das dann nochmal manuell zu starten? Wenns dann lädt, ist es der von mir beschriebene Timing-Fehler. Bei mir jedenfalls (Version 1.8.19) wird die Hexdatei nicht gelöscht und ist für einen zweiten Versuch vorhanden. Gruß Klaus (der soundsovielte) P.S. Fände ich nach der bisherigen Theoretisiererei mal interessant.
Klaus S. schrieb: > Macht es zuviel Mühe, in den Einstellungen der ArduinoIDE die erweiterte > Ausgabe für den Ladeprozeß zu aktivieren, sich daraus den Aufruf von > avrdude abzukupfern und das dann nochmal manuell zu starten? Wenns dann > lädt, ist es der von mir beschriebene Timing-Fehler. Bei mir jedenfalls > (Version 1.8.19) wird die Hexdatei nicht gelöscht und ist für einen > zweiten Versuch vorhanden. > > Gruß Klaus (der soundsovielte) > > P.S. Fände ich nach der bisherigen Theoretisiererei mal interessant. Ja, habe die entsprechende Zeile im command prompt laufen lassen. Ergebnis: Verhalten und Fehler derselbe.
Philipp G. schrieb: > Ja, habe die entsprechende Zeile im command prompt laufen lassen. > Ergebnis: Verhalten und Fehler derselbe. Danke für die Rückmeldung, dann liegt es nicht an der von mir beschriebenen Fehlerursache. Dann finde ich es aber sehr seltsam, daß (wie von Dir beschrieben) der serielle Port von einem Terminalprogramm geöffnet werden kann. Wieso kann ein Terminalprogramm den Port öffnen, avrdude aber nicht? Gruß Klaus (der soundsovielte) P.S. ein UART-Sniffer könnte hilfreich sein. Bin z.Zt beim Kunden, habe aber auf MCN schonmal auf den von mir verwendeten Sniffer hingewiesen (frei erhältlich und unter Win10 im Administratormodus lauffähig).
Klaus S. schrieb: > Bin z.Zt beim Kunden, habe > aber auf MCN schonmal auf den von mir verwendeten Sniffer hingewiesen > (frei erhältlich und unter Win10 im Administratormodus lauffähig). Na das ist ja echt toll. Danke fur das Posten des Links, der Source Code ist bestimmt top kommentiert. Und viele Linuxer freuen sich darauf das unter Windows im Administrator-Modus ausfuehren zu koennen. Dir, als Langjaehrigem mit Glied, kann man ja bedingungslos vertrauen. Super!! Boa-Ey!
Joe schrieb: > Na das ist ja echt toll. Danke fur das Posten des Links, der Source Code > ist bestimmt top kommentiert. Hast Du 'nen Furz quersitzen?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.