Das Zeitlimit für die Semaphore wurde erreicht

Hallo alle zusammen,

ich bastel schon länger mit Arduinos, hauptsächlich mit einem Arduino Uno R3 (bzw Elegoo Uno R3). Bis
jetzt hat die Hardware auch immer funktioniert, wenn etwas nicht ging lag es meistens am Code.

Heute wollte ich dann was neues probieren, jedoch konnte ich den Code nicht mehr auf den Arduino hochladen. Es kommt dann folgende Fehlermeldung:

"avrdude: ser_open(): can't open device "\.\COM5": Das Zeitlimit f�r die Semaphore wurde erreicht."

Er wird im Gerätemanager aber unter COM 5 angezeigt.
RX und TX werden nicht verwendet.

Erfolglos war bisher:

  • Ein anderer Uno R3
  • ein anderer USB Port
  • ein anderes Kabel
  • Aktualisieren des Treibers
  • Deinstallieren der und installieren der IDE
  • Verwenden des online Editors
  • Neustart des PCs
  • Drücken des Reset Buttons des Arduinos

Habt ihr eventuell noch Ideen was ich noch probieren könnte?

(deleted)

sdfghjpoiuztedcuzhhjgferfdvgb:
Habt ihr eventuell noch Ideen was ich noch probieren könnte?

Ich vermute, du arbeitest unter Windows (COM5)? Ich hatte unlängst ein vergleichbares Problem unter Linux. Durch einen Fehler meinerseits hatte ich kurzzeitig den USB Port malträtiert. Dies hat dazu geführt, dass der aktive Linux Kernel zerschossen wurde (dort speziell die Schnittstelle zu Com-Ports). Die USB Ports funktionierten noch mit anderen Devices, aber nicht mehr mit der IDE. Bei Linux bootet man dann einfach den "vorigen" Kernel, und aktualisiert danach auf den neuesten. Danach klappte die IDE Übertragung sofort wieder.

Da ich Windows nur noch mit großem Grundekel hochfahre, kann ich hier nur abstrakte Tipps geben. Ich würde mal die USB Treiber "erneuern" und ggf. die IDE neu installieren.

Viel Glück!

EDIT: Seit kurzem weiß ich, was in diesem Kontext das "Semaphore" bedeutet. Ein COM-Dienst könnte in einem Multitasking OS (WIN, NIX...) durch mehrere Anwendungen gleichzeitig und mit unterschiedlichen Protokollen genutzt werden, was unangenehme Folgen hätte. Um dies zu vermeiden, reicht das OS ein Fähnchen an die IDE weiter (das Semaphore). Dieses Fähnchen gibt's nur 1x, und nur wer es hat, bekommt den Port. Sobald die IDE den Port nicht mehr benötigt, reicht sie das Fähnchen an's OS zurück. Wenn das Fähnchen aber nicht in vereinbarter Zeit zurück geliefert wurde, gibt's einen Timeout - und in Folge diese Meldung in der IDE.
So zumindest mein laienhaftes Wissen.

Demokrit:
Um dies zu vermeiden, reicht das OS ein Fähnchen an die IDE weiter (das Semaphore). Dieses Fähnchen gibt's nur 1x, und nur wer es hat, bekommt den Port. Sobald die IDE den Port nicht mehr benötigt, reicht sie das Fähnchen an's OS zurück. Wenn das Fähnchen aber nicht in vereinbarter Zeit zurück geliefert wurde, gibt's einen Timeout - und in Folge diese Meldung in der IDE.

Eher will die IDE den Port öffnen, kann aber innerhalb der vorgegebenen Zeit die dazu gehörige Semaphore nicht in Besitz nehmen.

Eine Variante von "port busy" denke ich.

Danke für die umfangreiche Analyse :slight_smile:

Ein Zerschießen des Systems hängt vom Treiber ab, und da sind Linux und Windows Treiber ziemlich unähnlich.

Ich würde im Taskmanager nachschauen, welche Prozesse möglicherweise auf den COM Port zugreifen, und die abschießen.

Und bei Windows natürllich sämtliche AV Software entfernen, und auch den Defender deaktivieren, das beseitigt viele solcher seltsamer Probleme.

Ggf. auch zur vorhergehenden IDE Version wechseln, vielleicht wurde da inzwischen irgend ein Bug eingebaut.

sdfghjpoiuztedcuzhhjgferfdvgb:
Heute wollte ich dann was neues probieren, jedoch konnte ich den Code nicht mehr auf den Arduino hochladen.

Etwas neues das Pins 0 oder 1 benutzt?

Whandall:
Etwas neues das Pins 0 oder 1 benutzt?

Der TO schreibt, RX und TX sind nicht belegt.

Hallo,

weder MS Essentails unter Win7 noch jetzt der Defender von Win10 haben mir jemals irgendwelche seltsamen Probleme beschert.
Unter Win10 ausgeblendete Geräte anzeigen lassen und alles rauswerfen, was mal irgendwelche COM belegt hatte.

Außerdem schauen, ob es Leichen von seriellen Mäusen oder BallPoint Devices gibt, die legte Windows gern mal sinnlos an, wenn ein COM-Geröte angemeldet wird.

Gruß aus Berlin
Michael

Das habe ich dann übersehen, sorry.

Dennoch würde mich interessieren was anscheinend diesen Effekt hervorrief.

amithlon:
weder MS Essentails unter Win7 noch jetzt der Defender von Win10 haben mir jemals irgendwelche seltsamen Probleme beschert.

Einmal ist immer das erste Mal :wink:

Gegen false positives ist kein Programm gefeit :frowning:

Hallo,

DrDiettrich:
Einmal ist immer das erste Mal :wink:

Gegen false positives ist kein Programm gefeit :frowning:

das ist völlig richtig, hatte ich auch schon. Gegencheck bei virustotal, wenn es außerdem Files sind, die ich schon lange nutze und kenne, wird eben eine Ausnahme angerlegt.

Meiner Meinung nach ist der größte Voreil die gute Integration in Windows, im Gegensatz zu anderen sind sie noch nie wirklich unangenehm aufgefallen.
Mal schauen, was der TO erreicht, die Geschichte, daß Win gern irgendwelche seriellen Geräte anlegt, wenn ma eine Brudge ansteckt, verfolgt mich un den Jahren immer mal wieder. Der Reg-Key, der das abschaltet, geht unter Win10 aber wohl auch nicht mehr wie früher.

Gruß aus Berlin
Michael

Hi, erstmal danke für die ganzen Tipps.

Des Rätsels Lösung war, dass ich alle COM & LPT Anschlüsse deaktiviere und den Arduino danach anstecke.

Da jetzt nur ein Anschluss genutzt werden kann, kann die IDE den Port anscheinend rechtzeitig nutzen.

Viele Grüße und vielen Dank

Alex