Problem beim Hochladen von Programmen auf Arduino Leonardo

Guten Abend,
erstmal hoffe ich ich habe den richtigen Bereich im Forum gewählt;)Auf jeden Falll habe ich mir vor kurzem einen Bad-USB bestellt, der an sich ein Arduino Leonardo ist(weiß nicht genau wie ich das beschreiben soll,hier der Link für diejenigen die es interessiert: https://www.amazon.de/Ils-CJMCU-32-Keyboard-Leonardo-ATMEGA32U4/dp/B0768C5CD4/ref=sr_1_fkmr0_1?ie=UTF8&qid=1540502855&sr=8-1-fkmr0&keywords=badusb+iloveshipping)

Auf jeden Fall lief der erste Versuch erstaunlich gut, als ich dann aber ein anderes Programm hochladen wollte, kam das Problem: Der Stick muss während des Hochladens eingesteckt werden, weshalb er erstens das Programm ausführt, obwohl er eigentlich nur neu programmiert werden sollte, was eigentlich kein so großes Problem ist. Das schwerwiegendere Problem ist, dass der Stick anscheinend keine Befehle annimmt, während er als Virtuelle Tastatur fungiert.
Den kompletten Output von der Arduino IDE habe ich mal unten eingefügt. Vielen Dank für jeden der versucht mir zu helfen;)

Hier der Output:

Der Sketch verwendet 5614 Bytes (19%) des Programmspeicherplatzes. Das Maximum sind 28672 Bytes.
Globale Variablen verwenden 260 Bytes (10%) des dynamischen Speichers, 2300 Bytes für lokale Variablen verbleiben. Das Maximum sind 2560 Bytes.

avrdude: butterfly_recv(): programmer is not responding

avrdude: ser_recv(): read error: Das Gerät erkennt den Befehl nicht.

avrdude: butterfly_recv(): programmer is not responding
avrdude: ser_drain(): read error: Das Gerät erkennt den Befehl nicht.

avrdude: ser_send(): write error: sorry no info avail
avrdude: ser_recv(): read error: Das Gerät erkennt den Befehl nicht.

avrdude: butterfly_recv(): programmer is not responding
avrdude: ser_send(): write error: sorry no info avail
avrdude: ser_recv(): read error: Das Gerät erkennt den Befehl nicht.

avrdude: butterfly_recv(): programmer is not responding
avrdude: ser_recv(): read error: Das Gerät erkennt den Befehl nicht.

avrdude: butterfly_recv(): programmer is not responding
avrdude: ser_send(): write error: sorry no info avail
avrdude: ser_recv(): read error: Das Gerät erkennt den Befehl nicht.

avrdude: butterfly_recv(): programmer is not responding
Found programmer: Id = "þ"; type = ¸
Software Version = i.

Hallo,

Dies kann ein Kabelproblem sein, ein schlechter Kontakt verursacht dies auch, überprüfen Sie im Gerätemanager, das Vorhandensein der seriellen Schnittstelle

Es kann einfacher sein, Hilfe in Ihrer Sprachabteilung zu bekommen,

[Arduino Forum > International > Deutsch]
https://forum.arduino.cc/index.php?board=31.0

Wenn Du Deutsch schreiben möchtest dann mußt Du im deutschen Teil schreiben.
Ich kenne das Ding nicht und mir scheint das Ding hat auch keinen Resettaster um beim Upload manuell den Vorgang zu starten.

Grüße Uwe

Was ist denn das?? :confused:

Keine Gute Idee einen 32u4 in einem USB Stick zu verbauen. Da ich auch vermute das dieses Ding keinen Reset Knopf hat, kann man das Teil höchst wahrscheinlich nur neu programmieren wenn man es im richtigen Moment ansteckt. Zeitfenster: ~2sek.

Wäre es ein Arduino Leonardo könnte man über den ICSP Header neu flashen oder eben im richtigen Moment auf Reset drücken.
Der 32u4 kann entweder als Arduino USB (vcom) oder als HID (Maus, Tastatur) verwendet werden, beides geht nicht.
Bei einem Leonardo würde ich einen Taster der folgende Funktion Keyboard.end ausführt empfehlen.

Daher ist meine Empfehlung: Zurückschicken oder zerlegen.

Grüße,
Donny
PS: Du kannst nur versuchen, auf Upload zu klicken und den Stick abstecken und wieder anstecken, wie gesagt, das Zeitfenster ist sehr klein und es ist auch keine empfehlenswerte Vorgangsweiße.

Das schwerwiegendere Problem ist, dass der Stick anscheinend keine Befehle annimmt, während er als Virtuelle Tastatur fungiert.

Das ist auch richtig so.
Wenn sich im Programm kein Serial.begin(xxx) findet.

Der Stick muss während des Hochladens eingesteckt werden, weshalb er erstens das Programm ausführt, obwohl er eigentlich nur neu programmiert werden sollte,

Das sollte allerdings klappen!
Erst wird der Bootloader gestartet, danach die Anwendung.

Wirst du wohl öfter mal probieren müssen.

Alternativ:
Wenn man den Stick auseinander zieht, kommt man an eine Reihe Lötaugen.
Soweit mir bekannt, ist das die ISP Schnittstelle.

Da ein Resetknopf dran, dann klappts mit dem Upload bestimmt besser.

Also:
Dran kommen, tut man!

Der 32u4 kann entweder als Arduino USB (vcom) oder als HID (Maus, Tastatur) verwendet werden, beides geht nicht.
Bei einem Leonardo würde ich einen Taster der folgende Funktion Keyboard.end ausführt empfehlen.

Der Leonardo kann sehr wohl Serial und HID gleichzeitig!
Der Stick also auch.

Grundlage für Experimente:

if(Serial)  Keyboard.end;

combie:
Grundlage für Experimente:

if(Serial)  Keyboard.end;

Hallo,

Ja, das ist eine gute Idee. :slight_smile:

Der Leonardo kann sehr wohl Serial und HID gleichzeitig!

Was meinst Du eigentlich mit gleichzeitig? Nicht wirklich gleichzeitig sondern durch "Umschalten", zB: ein Interrupt führt Keyboard.end aus, oder sehe ich das falsch?

Grüße,
Donny

oder sehe ich das falsch?

Gleichzeitig!
Ohne irgendwelche Umschaltungen.

Es ist möglich und sogar typisch, dass sich einzelnen USB Geräte als 2 oder mehr Geräte in der Systemsteuerung zeigen. Die Arduino USB Implementierung ist dazu in der Lage.

Für einen Leonardo ist es kein Problem gleichzeitig ein HID Gerät zu sein und auf dem Seriellen Monitor Debugausgaben zu zeigen.

Suche nach: "USB Composite Device"

ok, Danke, hab das mal das gegenteilige gehört/gelesen, aber mich damit auch noch nicht besonders damit auseinandergesetzt.
Werd ich googeln.

Danke!

Grüße,
Donny