Arduino Micro USB Keyboard CDC

Hallo zusammen,

ich versuche gerade ein Macrokeyboard zu bauen und bin auf ein Problem gestoßen.
Ich nutze als Bibliothek das HID-Project mit Bootkeyboard. Falls das Problem hier liegt gerne andere Vorschläge. Ich nutze diese lib weil es ein deutsches Tastaturlayout beinhaltet.
IDE ist 1.8.11

Beim Nutzen an einem KVM Switch wird der Arduino allerdings nicht als Tastatur erkannt, unter Windows funktioniert es problemlos. Meine Vermutung ist, dass das Problem vom zusätzlichen Serial Port (CDC?) ausgelöst wird.

Nun hab ich 2 Fragen dazu, was genau steuert dieses CDC? Ich habe gelesen das es benötigt wird um neue Programme auf den Chip zu laden. OK, dabei soll es vor allem den Reboot des Chips auslösen wenn die IDE die Serial Verbindung kurz auf 1200 Baud stellt. Ist das denn die einzige Funktion? Den Reboot auslösen? Das könnte ich über den Reset Button ja manuell machen.

  1. Wie kann man den zusätzlichen Serial Port deaktivieren in der Hoffnung, dass der Arduino als reine Tastatur erkannt wird? Ich habe dazu diese Anweisung gefunden: Modify USB profile to remove serial port - just want keyboard (Leonardo) · Issue #6387 · arduino/Arduino · GitHub hab auch die Datei geändert, allerdings hat es genau gar nichts bewirkt.

Vielen Dank schonmal

??
Was ist ein CDC?
Hast Du den gleichen Fehler wenn Du nur die Arduino-Bibliothek keybord.h verwendest?
Grüße Uwe

Ja das gleiche Problem habe ich auch wenn ich die Keyboard.h verwende.

Der Arduino Micro erstellt 2 Geräte im Gerätemanager. Einmal das Eingebagerät einer Tastatur und einmal einen COM Port. Dieser Comport wird durch das CDC erstellt. Und da dürfte wahrscheinlich das Problem mit dem KVM Switch liegen, das will eine reine Tastatur, kein USB "Mischgerät".

  1. Wie kann man den zusätzlichen Serial Port deaktivieren in der Hoffnung, dass der Arduino als reine Tastatur erkannt wird?

setup() und loop() weg lassen.
Stattdessen eine main() verwenden.
Dann ist aber auch das gesamte Arduino Framework weg.
Dann du für alles selber verantwortlich ... millis() usw.

Hm. klingt erstmal einfach, aber ich hab das Gefühl das wird komplizierter als mein skill hergibt.

Zum Thema CDC hab ich noch das hier gefunden (englisch) http://ftp.multicomm.com.au/arduino-1.0.5-r2/reference/Guide_ArduinoLeonardo.html

So mal als kurze Rückmeldung:

Man kann die USBCore.cpp einfach ins selbe Verzeichnis packen wie das eigene Sketch und dort die im Link genannten Änderungen machen.

Nach dem Hochladen wird der zusätzliche Com Port nicht mehr im Gerätemanager angezeigt.

Hochladen funktioniert trotzdem noch einfach: In der IDE auf Hochladen und warten bis in der Statusleiste “Hochladen…” steht. Nun einfach den Reset des Micro auslösen und schon wirds hochgeladen.
Hat bei meinem speziellen Problem leider nicht geholfen.

Selbst das komplette entfernen des Bootloaders indem der Micro mit einem Arduino as ISP programmiert wird führt nicht dazu, dass es als Tastatur erkannt wird.