Das Anlernen und Programmieren hat funktioniert. In Kodi oder auch evtest, muss ich dann aber lange auf Tasten drücke, bis sich was tut.
IRMP auf STM32 - ein USB-HID-Keyboard IR Empfänger+Einschalter mit Wakeup-Timer
-
-
Zeig mal eine evtest Ausgabe.
Wie ist repeat_delay, repeat_period und repeat_timeout eingestellt?
Ist das auf einem Clon (CKS CS32) oder auf einem STM32?
-
Es ist ein STM32 Stick. Hier die Ausgabe von evtest:
Code
Alles anzeigenInput driver version is 1.0.1 Input device ID: bus 0x3 vendor 0x1209 product 0x4445 version 0x111 Input device name: "STMicroelectronics STM32 IRMP HID-KBD-Device Keyboard" Supported events: Event type 0 (EV_SYN) Event type 1 (EV_KEY) Event code 1 (KEY_ESC) Event code 2 (KEY_1) Event code 3 (KEY_2) Event code 4 (KEY_3) Event code 5 (KEY_4) Event code 6 (KEY_5) Event code 7 (KEY_6) Event code 8 (KEY_7) Event code 9 (KEY_8) Event code 10 (KEY_9) Event code 11 (KEY_0) Event code 12 (KEY_MINUS) Event code 13 (KEY_EQUAL) Event code 14 (KEY_BACKSPACE) Event code 15 (KEY_TAB) Event code 16 (KEY_Q) Event code 17 (KEY_W) Event code 18 (KEY_E) Event code 19 (KEY_R) Event code 20 (KEY_T) Event code 21 (KEY_Y) Event code 22 (KEY_U) Event code 23 (KEY_I) Event code 24 (KEY_O) Event code 25 (KEY_P) Event code 26 (KEY_LEFTBRACE) Event code 27 (KEY_RIGHTBRACE) Event code 28 (KEY_ENTER) Event code 29 (KEY_LEFTCTRL) Event code 30 (KEY_A) Event code 31 (KEY_S) Event code 32 (KEY_D) Event code 33 (KEY_F) Event code 34 (KEY_G) Event code 35 (KEY_H) Event code 36 (KEY_J) Event code 37 (KEY_K) Event code 38 (KEY_L) Event code 39 (KEY_SEMICOLON) Event code 40 (KEY_APOSTROPHE) Event code 41 (KEY_GRAVE) Event code 42 (KEY_LEFTSHIFT) Event code 43 (KEY_BACKSLASH) Event code 44 (KEY_Z) Event code 45 (KEY_X) Event code 46 (KEY_C) Event code 47 (KEY_V) Event code 48 (KEY_B) Event code 49 (KEY_N) Event code 50 (KEY_M) Event code 51 (KEY_COMMA) Event code 52 (KEY_DOT) Event code 53 (KEY_SLASH) Event code 54 (KEY_RIGHTSHIFT) Event code 55 (KEY_KPASTERISK) Event code 56 (KEY_LEFTALT) Event code 57 (KEY_SPACE) Event code 58 (KEY_CAPSLOCK) Event code 59 (KEY_F1) Event code 60 (KEY_F2) Event code 61 (KEY_F3) Event code 62 (KEY_F4) Event code 63 (KEY_F5) Event code 64 (KEY_F6) Event code 65 (KEY_F7) Event code 66 (KEY_F8) Event code 67 (KEY_F9) Event code 68 (KEY_F10) Event code 69 (KEY_NUMLOCK) Event code 70 (KEY_SCROLLLOCK) Event code 71 (KEY_KP7) Event code 72 (KEY_KP8) Event code 73 (KEY_KP9) Event code 74 (KEY_KPMINUS) Event code 75 (KEY_KP4) Event code 76 (KEY_KP5) Event code 77 (KEY_KP6) Event code 78 (KEY_KPPLUS) Event code 79 (KEY_KP1) Event code 80 (KEY_KP2) Event code 81 (KEY_KP3) Event code 82 (KEY_KP0) Event code 83 (KEY_KPDOT) Event code 85 (KEY_ZENKAKUHANKAKU) Event code 86 (KEY_102ND) Event code 87 (KEY_F11) Event code 88 (KEY_F12) Event code 89 (KEY_RO) Event code 90 (KEY_KATAKANA) Event code 91 (KEY_HIRAGANA) Event code 92 (KEY_HENKAN) Event code 93 (KEY_KATAKANAHIRAGANA) Event code 94 (KEY_MUHENKAN) Event code 95 (KEY_KPJPCOMMA) Event code 96 (KEY_KPENTER) Event code 97 (KEY_RIGHTCTRL) Event code 98 (KEY_KPSLASH) Event code 99 (KEY_SYSRQ) Event code 100 (KEY_RIGHTALT) Event code 102 (KEY_HOME) Event code 103 (KEY_UP) Event code 104 (KEY_PAGEUP) Event code 105 (KEY_LEFT) Event code 106 (KEY_RIGHT) Event code 107 (KEY_END) Event code 108 (KEY_DOWN) Event code 109 (KEY_PAGEDOWN) Event code 110 (KEY_INSERT) Event code 111 (KEY_DELETE) Event code 113 (KEY_MUTE) Event code 114 (KEY_VOLUMEDOWN) Event code 115 (KEY_VOLUMEUP) Event code 116 (KEY_POWER) Event code 117 (KEY_KPEQUAL) Event code 119 (KEY_PAUSE) Event code 121 (KEY_KPCOMMA) Event code 122 (KEY_HANGUEL) Event code 123 (KEY_HANJA) Event code 124 (KEY_YEN) Event code 125 (KEY_LEFTMETA) Event code 126 (KEY_RIGHTMETA) Event code 127 (KEY_COMPOSE) Event code 128 (KEY_STOP) Event code 129 (KEY_AGAIN) Event code 130 (KEY_PROPS) Event code 131 (KEY_UNDO) Event code 132 (KEY_FRONT) Event code 133 (KEY_COPY) Event code 134 (KEY_OPEN) Event code 135 (KEY_PASTE) Event code 136 (KEY_FIND) Event code 137 (KEY_CUT) Event code 138 (KEY_HELP) Event code 140 (KEY_CALC) Event code 142 (KEY_SLEEP) Event code 150 (KEY_WWW) Event code 152 (KEY_SCREENLOCK) Event code 158 (KEY_BACK) Event code 159 (KEY_FORWARD) Event code 161 (KEY_EJECTCD) Event code 163 (KEY_NEXTSONG) Event code 164 (KEY_PLAYPAUSE) Event code 165 (KEY_PREVIOUSSONG) Event code 166 (KEY_STOPCD) Event code 173 (KEY_REFRESH) Event code 176 (KEY_EDIT) Event code 177 (KEY_SCROLLUP) Event code 178 (KEY_SCROLLDOWN) Event code 179 (KEY_KPLEFTPAREN) Event code 180 (KEY_KPRIGHTPAREN) Event code 183 (KEY_F13) Event code 184 (KEY_F14) Event code 185 (KEY_F15) Event code 186 (KEY_F16) Event code 187 (KEY_F17) Event code 188 (KEY_F18) Event code 189 (KEY_F19) Event code 190 (KEY_F20) Event code 191 (KEY_F21) Event code 192 (KEY_F22) Event code 193 (KEY_F23) Event code 194 (KEY_F24) Event code 240 (KEY_UNKNOWN) Event type 4 (EV_MSC) Event code 4 (MSC_SCAN) Key repeat handling: Repeat type 20 (EV_REP) Repeat code 0 (REP_DELAY) Value 250 Repeat code 1 (REP_PERIOD) Value 33 Properties: Testing ... (interrupt to exit) Event: time 1562171408.441526, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70028 Event: time 1562171408.441526, type 1 (EV_KEY), code 28 (KEY_ENTER), value 1 Event: time 1562171408.441526, -------------- SYN_REPORT ------------ Event: time 1562171408.442446, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70028 Event: time 1562171408.442446, type 1 (EV_KEY), code 28 (KEY_ENTER), value 0 Event: time 1562171408.442446, -------------- SYN_REPORT ------------ Event: time 1562171410.181469, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70028 Event: time 1562171410.181469, type 1 (EV_KEY), code 28 (KEY_ENTER), value 1 Event: time 1562171410.181469, -------------- SYN_REPORT ------------ Event: time 1562171410.182468, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70028 Event: time 1562171410.182468, type 1 (EV_KEY), code 28 (KEY_ENTER), value 0 Event: time 1562171410.182468, -------------- SYN_REPORT ------------ Event: time 1562171414.225532, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70052 Event: time 1562171414.225532, type 1 (EV_KEY), code 103 (KEY_UP), value 1 Event: time 1562171414.225532, -------------- SYN_REPORT ------------ ^[[AEvent: time 1562171414.439531, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70052 Event: time 1562171414.439531, type 1 (EV_KEY), code 103 (KEY_UP), value 0 Event: time 1562171414.439531, -------------- SYN_REPORT ------------ Event: time 1562171426.755534, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70051 Event: time 1562171426.755534, type 1 (EV_KEY), code 108 (KEY_DOWN), value 1 Event: time 1562171426.755534, -------------- SYN_REPORT ------------ ^[[BEvent: time 1562171426.756480, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70051 Event: time 1562171426.756480, type 1 (EV_KEY), code 108 (KEY_DOWN), value 0 Event: time 1562171426.756480, -------------- SYN_REPORT ------------ Event: time 1562171427.503539, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70051 Event: time 1562171427.503539, type 1 (EV_KEY), code 108 (KEY_DOWN), value 1 Event: time 1562171427.503539, -------------- SYN_REPORT ------------ ^[[BEvent: time 1562171427.504474, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70051 Event: time 1562171427.504474, type 1 (EV_KEY), code 108 (KEY_DOWN), value 0 Event: time 1562171427.504474, -------------- SYN_REPORT ------------ Event: time 1562171433.959500, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70013 Event: time 1562171433.959500, type 1 (EV_KEY), code 25 (KEY_P), value 1 Event: time 1562171433.959500, -------------- SYN_REPORT ------------ pEvent: time 1562171433.960443, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70013 Event: time 1562171433.960443, type 1 (EV_KEY), code 25 (KEY_P), value 0 Event: time 1562171433.960443, -------------- SYN_REPORT ------------ Event: time 1562171434.814491, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70013 Event: time 1562171434.814491, type 1 (EV_KEY), code 25 (KEY_P), value 1 Event: time 1562171434.814491, -------------- SYN_REPORT ------------ Event: time 1562171434.815443, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70013 Event: time 1562171434.815443, type 1 (EV_KEY), code 25 (KEY_P), value 0 Event: time 1562171434.815443, -------------- SYN_REPORT ------------
Es dauert bis zu drei Sekunden, bis manche Tasten reagieren. Manche gehen etwas schneller. repeat wird in der GUI 250 angezeigt.
-
Wie ist repeat_delay, repeat_period und repeat_timeout eingestellt?
Erhöhe versuchsweise repeat_timeout auf z.B. 20.
-
Erhöhe versuchsweise repeat_timeout auf z.B. 20.
EDIT: Doch.... funktioniert. Ich hatte den falschen Timeout erwischt.
repeat_timeout 20
sieht sehr gut aus.
-
Ich habe etwas damit herumgespielt. Eine gute Alternative zu IRMP_STM32 mit irmplircd, wobei ich persönlich irmplircd favorisiere. Gefühlt läuft IRMP_STM32 mit irmplircd geschmeidiger. OK, vielleicht fehlt noch Feintuning aber ich bin IRMP_STM32 gewohnt. Auch das Handling mit der /etc/irmp_stm32.map Datei finde ich angenehm und sehr flexibel.
Der Vorteil von IRMP_STM32_KBD liegt klar auf der Hand. Unkompliziert ohne weitere Software gemäß Tastatur Standard eine Fernbedienung nutzen.
Sehr gute Arbeit Schon cool was mit den STM32 Sticks so möglich ist.
Folgendes ist mir eben passiert: Beim Anlernen drückte ich die Taste für "auf" und da ging mein PC (mit Manjaro) in den Standby. Ich konnte es nicht mehr provozieren.
-
Mir fehlen Infos.
Was für Boards sind das?
Was ist mit USBDP?
Was sagt evtest?
Wie hast du die repeat timings eingestellt?
Bei mir waren es die Repeat Timings ...
Einfach nochmal den KDB Thread durchlesen hätte geholfen. (Sorry & Danke für den Tipp)
Grillbert -
Sehr gute Arbeit Schon cool was mit den STM32 Sticks so möglich ist.
Danke für die Lorbeeren
Was man besser findet, hat sicher auch was mit Gewöhnung zu tun.
Es gibt neue Firmwares.
-
Man kann jetzt protokollieren, wann der Receiver den VDR gestartet hat.
Wenn kurz nach den Bootmeldungen ein Eintrag im Receiver-Logfile landet, weiß man dass der VDR vom Receiver gestartet wurde. Wenn der Eintrag im Receiver-Logfile älter ist als die Bootmeldungen wurde per Einschalter am VDR oder per Timer gestartet.
Das ist nützlich, wenn eine Logitech Fernbedienung auf einen Druck hin den VDR und alle anderen Geräte einschaltet. Wenn der VDR durch einen Timer gestartet wurde, würde er sonst aus gehen, wenn man alle anderen Geräte einschalten will. Durch eine Abfrage im shutdown-Skript kann man das vermeiden.
Funktioniert jetzt, und ein Beispiel Skript gibt es auch.
-
Für alle die es interessiert - eine kurze Zusammenfassung der "Stolpersteine" die ich mitgenommen habe...
- "Blue Pill"... man könnte denken (da der Fehler seit Jahren bekannt ist) dass der USB Widerstand inzwischen korrekt ist...
-> IST ER NICHT!!
- Maple Mini (Baite) mit Bootloader habe ich nicht dazu überreden können den über DFUUTILS geflashten Code auszuführen.
(Mit STM32 Stick ohne Bootloader flashen hat dann geklappt)
Die Timings sind wichtig!!
Für meine Harmony (KLS 1.6) habe ich
repeat delay:250
repeat period:100
repeat timeout:15eingetragen. Mit den voreingestellten Werten kommen nur sehr sporadisch Tastendrücke an.
USB braucht natürlich Strom im ausgeschalteten Zustand...
Bei meinem Asrock Board muss man dazu "Deep S5" auf "Auto" stellen - und die "Wake on USB" Einstellungen dazu aktivieren.
Ich habe aber den Eindruck dass man das Board einmal ganz stromlos machen muss damit die Einstellungen auch aktiv sind.
Den Pin durchmessen der "Power On" macht klappt natürlich nur wenn man den Maple Mini nicht über einen aktiven USB Port mit Strom versorgt. (Hatte ich in dem langen Thread überlesen...)
Wenn mann dann (fast) klug ist und statt des PC USB Ports eine Powerbank nimmt, zieht der Maple den Pin natürlich auf die Masse der Powerbank kann man toll mit dem Multimeter messen, interessiert ein Mainboard aber herzlich wenig.
Wenn dann alles klappt (USB hat im ausgeschalteten Zustand Strom, Power Switch korrekt verdrahtet) klappt es leider immer noch nicht, weil der Maple ein USB Wakeup sendet UND den Power Switch "drückt" ... dann ist das Board direkt wieder aus....
Wenn ich bei meinem Board USB mit Strom versorge kann man wohl genausogut auch auf Verkabelung zum Power Switch verzichten denke ich.
Insgesamt trotzdem ein super Projekt ... Danke nochmal an jrie!! -
Maple Mini (Baite) mit Bootloader habe ich nicht dazu überreden können den über DFUUTILS geflashten Code auszuführen.
Siehe IRMP auf STM32 - ein USB IR Empfänger/Sender/Einschalter mit Wakeup-Timer
Die Timings sind wichtig!!
Für meine Harmony (KLS 1.6) habe ich
repeat delay:250
repeat period:100
repeat timeout:15eingetragen. Mit den voreingestellten Werten kommen nur sehr sporadisch Tastendrücke an.
Die neue Firmware hat bessere voreingestellten Werte drin.
klappt es leider immer noch nicht, weil der Maple ein USB Wakeup sendet UND den Power Switch "drückt" ... dann ist das Board direkt wieder aus....
Falls du eines der wenigen Boards hast, die aus S5 auf USB Wakeup reagieren, brauchst du keine Powerkabel. Dann wäre das doppelt gemoppelt.
Boards die nicht aus S5 auf USB Wakeup reagieren, stört der USB Wakeup nicht.
Insgesamt trotzdem ein super Projekt ... Danke nochmal an jrie!!
Danke für das Lob
Schön, dass mehr Leute auch die Keyboard Version benutzen.
-
Hallo,
ich werde nicht ganz schlau aus dem Keymapping...
Zunächst habe ich für meinen YaVDR Ansible die Keymap aus dem Template mit meiner Fernbedienung (Harmony, KLS1.6) und stm32kbdIRconfig_gui (Windows) befüllt und es lief ganz OK - allerdings funktionierte die Rote Taste nicht.
Dann ist mir eingefallen dass YaVDR ja andere Tasten verwendet (F Keys 1-4 für die Farbtasten und habe versucht ein eigenes Mapping auf den Tasten des YaVDR zu erstellen. Das hat (bis auf die Ziffern) so gar nicht geklappt... Nochmal im Thread gelesen und gemerkt dass die Tasten doch mit eventlircd events statt der normalen Tastatur-Tasten gleichzusetzen sind.
Also auf Basis von https://www.yavdr.org/documentation/0.5/en/ch03s03.html ein weiteres eigenes Template gebaut und einfach mal probiert Keys wie "KEY_PVR" mit zu belegen. Geht nicht - die Fehlermeldung sagt dass nur Keys vom Keyboard belegt werden können (Sinngemäß).
Dann wieder zurück zum alten Template und hoffen dass es beim ersten Anlauf nicht funktioniert hat weil sich ein Fehler eingeschlichen hat - alle Tasten nochmal angelernt - selbes Ergebnis.
Muss ich für YaVDR ansible vielleicht irgend etwas beachten? Gibt es Ideen?
So sieht meine MAP jetzt aus:Code
Alles anzeigen07000b000000 ff|KEY_0 07000b000100 ff|KEY_1 07000b000200 ff|KEY_2 07000b000300 ff|KEY_3 07000b000400 ff|KEY_4 07000b000500 ff|KEY_5 07000b000600 ff|KEY_6 07000b000700 ff|KEY_7 07000b000800 ff|KEY_8 07000b000900 ff|KEY_9 07000b004400 ff|KEY_UP 07000b004500 ff|KEY_DOWN 07000b004700 ff|KEY_RIGHT 07000b004600 ff|KEY_LEFT 07000b000b00 ff|KEY_POWER 07000b000c00 ff|KEY_POWER 07000b001000 ff|KEY_KPPLUS#volumeup 07000b001100 ff|KEY_KPMINUS#volumedown 07000b000d00 ff|KEY_F8#mute 07000b004800 ff|KEY_ENTER#ok 07000b004a00 ff|KEY_BACKSPACE#back 07000b004900 ff|KEY_M#menu 07000b003500 ff|KEY_P#play 07000b003300 ff|KEY_SPACE#pause 07000b003600 ff|KEY_X#stop 07000b004c00 ff|KEY_I#info 07000b003200 ff|KEY_R#rewind 07000b003400 ff|KEY_F#forward 07000b003100 ff|KEY_PAGEUP#skipplus 07000b003000 ff|KEY_PAGEDOWN#skipminus ffffffffffff ff|KEY_DOT#skipnext ffffffffffff ff|KEY_COMMA#skipprevious ffffffffffff ff|KEY_TAB#fullscreen ffffffffffff ff|KEY_SYSRQ#screenshot ffffffffffff ff|KEY_BACKSLASH#togglefullscreen ffffffffffff ff|KEY_HOME#firstpage ffffffffffff ff|KEY_END#lastpage 07000b004000 KEY_LEFTCTRL|KEY_T#red 07000b004100 KEY_LEFTCTRL|KEY_E#green 07000b004200 KEY_LEFTCTRL|KEY_M#yellow 07000b004300 KEY_LEFTCTRL|KEY_I#blue ffffffffffff ff|KEY_F12#user2 ffffffffffff ff|KEY_F13#user3 ffffffffffff ff|KEY_F14#user4 ffffffffffff ff|KEY_F15#user5 ffffffffffff ff|KEY_F16#user6 ffffffffffff ff|KEY_F17#user7 ffffffffffff ff|KEY_F18#user8 ffffffffffff ff|KEY_F19#user9 ffffffffffff ff|KEY_F20 ffffffffffff ff|KEY_F21 ffffffffffff ff|KEY_F22 ffffffffffff ff|KEY_KPEQUAL ffffffffffff ff|KEY_I#info ffffffffffff ff|KEY_ESC#home ffffffffffff ff|KEY_SPACE#pause ffffffffffff ff|KEY_X#stop ffffffffffff ff|KEY_ESC#home ffffffffffff ff|KEY_DELETE
-
Eigentlich sollten die Tastennamen über die evmap 03_1209_4445.evmap passend übersetzt werden - die udev-Attribute sollten durch https://github.com/yavdr/yavdr…ventlircd-names.rules#L54 passend gesetzt werden (eventuell weicht der Name bei deinem Empfänger ab).
Am besten probierst du die folgenden Dinge aus:
- Bei gestopptem eventlircd (systemctl stop eventlircd.{socket,service}) mit evtest (sudo evtest) nachsehen, welche Tasten vom Empfänger kommen, wenn du die rote Taste auf der Fernbedienung drückst.
- Mit der von evtest angezeigten Nummer des Input Device kannst du dann seine Udev-Attribute abfragen:
Da wäre wichtig, ob eventlircd_enabled=true gesetzt ist und die oben genannte evmap geladen wird.
-
- Bei gestopptem eventlircd (systemctl stop eventlircd.{socket,service}) mit evtest (sudo evtest) nachsehen, welche Tasten vom Empfänger kommen, wenn du die rote Taste auf der Fernbedienung drückst.
- Mit der von evtest angezeigten Nummer des Input Device kannst du dann seine Udev-Attribute abfragen:
CodeEvent: time 1565624314.088079, type 4 (EV_MSC), code 4 (MSC_SCAN), value 7004d Event: time 1565624314.088079, type 1 (EV_KEY), code 107 (KEY_END), value 1 Event: time 1565624314.088079, -------------- SYN_REPORT ------------ Event: time 1565624314.096039, type 4 (EV_MSC), code 4 (MSC_SCAN), value 7004d Event: time 1565624314.096039, type 1 (EV_KEY), code 107 (KEY_END), value 0 Event: time 1565624314.096039, -------------- SYN_REPORT ------------
Das ist schon mal ein anderer Key als ich ihn definiert habe.
Für die grüne Taste funktioniert es interessanterweise korrekt...In der Ausgabe von
CodeEvent: time 1565624315.456035, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e0 Event: time 1565624315.456035, type 1 (EV_KEY), code 29 (KEY_LEFTCTRL), value 1 Event: time 1565624315.456035, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70008 Event: time 1565624315.456035, type 1 (EV_KEY), code 18 (KEY_E), value 1 Event: time 1565624315.456035, -------------- SYN_REPORT ------------ Event: time 1565624315.464029, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e0 Event: time 1565624315.464029, type 1 (EV_KEY), code 29 (KEY_LEFTCTRL), value 0 Event: time 1565624315.464029, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70008 Event: time 1565624315.464029, type 1 (EV_KEY), code 18 (KEY_E), value 0 Event: time 1565624315.464029, -------------- SYN_REPORT ------------
Ich vermute die 2 Events kommen für keypress und keyrelease ...
In der Ausgabe von
finde ich gar keinen Treffer auf "lircd":
Code
Alles anzeigenUdevadm info starts with the device specified by the devpath and then walks up the chain of parent devices. It prints for every device found, all possible attributes in the udev rules key format. A rule to match, can be composed by the attributes of the device and the attributes from one single parent device. looking at device '/devices/pci0000:00/0000:00:15.0/usb1/1-7/1-7.4/1-7.4:1.0/0003:1209:4445.0001/input/input1/event1': KERNEL=="event1" SUBSYSTEM=="input" DRIVER=="" looking at parent device '/devices/pci0000:00/0000:00:15.0/usb1/1-7/1-7.4/1-7.4:1.0/0003:1209:4445.0001/input/input1': KERNELS=="input1" SUBSYSTEMS=="input" DRIVERS=="" ATTRS{name}=="STMicroelectronics STM32 IRMP HID-KBD-Device" ATTRS{phys}=="usb-0000:00:15.0-7.4/input0" ATTRS{properties}=="0" ATTRS{uniq}=="4973154D3237" looking at parent device '/devices/pci0000:00/0000:00:15.0/usb1/1-7/1-7.4/1-7.4:1.0/0003:1209:4445.0001': KERNELS=="0003:1209:4445.0001" SUBSYSTEMS=="hid" DRIVERS=="hid-generic" ATTRS{country}=="00" looking at parent device '/devices/pci0000:00/0000:00:15.0/usb1/1-7/1-7.4/1-7.4:1.0': KERNELS=="1-7.4:1.0" SUBSYSTEMS=="usb" DRIVERS=="usbhid" ATTRS{authorized}=="1" ATTRS{bAlternateSetting}==" 0" ATTRS{bInterfaceClass}=="03" ATTRS{bInterfaceNumber}=="00" ATTRS{bInterfaceProtocol}=="01" ATTRS{bInterfaceSubClass}=="00" ATTRS{bNumEndpoints}=="02" ATTRS{supports_autosuspend}=="1" looking at parent device '/devices/pci0000:00/0000:00:15.0/usb1/1-7/1-7.4': KERNELS=="1-7.4" SUBSYSTEMS=="usb" DRIVERS=="usb" ATTRS{authorized}=="1" ATTRS{avoid_reset_quirk}=="0" ATTRS{bConfigurationValue}=="1" ATTRS{bDeviceClass}=="00" ATTRS{bDeviceProtocol}=="00" ATTRS{bDeviceSubClass}=="00" ATTRS{bMaxPacketSize0}=="64" ATTRS{bMaxPower}=="100mA" ATTRS{bNumConfigurations}=="1" ATTRS{bNumInterfaces}==" 1" ATTRS{bcdDevice}=="0200" ATTRS{bmAttributes}=="e0" ATTRS{busnum}=="1" ATTRS{configuration}=="" ATTRS{devnum}=="4" ATTRS{devpath}=="7.4" ATTRS{idProduct}=="4445" ATTRS{idVendor}=="1209" ATTRS{ltm_capable}=="no" ATTRS{manufacturer}=="STMicroelectronics" ATTRS{maxchild}=="0" ATTRS{product}=="STM32 IRMP HID-KBD-Device" ATTRS{quirks}=="0x0" ATTRS{removable}=="unknown" ATTRS{serial}=="4973154D3237" ATTRS{speed}=="12" ATTRS{urbnum}=="44" ATTRS{version}==" 2.00" looking at parent device '/devices/pci0000:00/0000:00:15.0/usb1/1-7': KERNELS=="1-7" SUBSYSTEMS=="usb" DRIVERS=="usb" ATTRS{authorized}=="1" ATTRS{avoid_reset_quirk}=="0" ATTRS{bConfigurationValue}=="1" ATTRS{bDeviceClass}=="09" ATTRS{bDeviceProtocol}=="01" ATTRS{bDeviceSubClass}=="00" ATTRS{bMaxPacketSize0}=="64" ATTRS{bMaxPower}=="100mA" ATTRS{bNumConfigurations}=="1" ATTRS{bNumInterfaces}==" 1" ATTRS{bcdDevice}=="8832" ATTRS{bmAttributes}=="e0" ATTRS{busnum}=="1" ATTRS{configuration}=="" ATTRS{devnum}=="3" ATTRS{devpath}=="7" ATTRS{idProduct}=="0608" ATTRS{idVendor}=="05e3" ATTRS{ltm_capable}=="no" ATTRS{maxchild}=="4" ATTRS{product}=="USB2.0 Hub" ATTRS{quirks}=="0x0" ATTRS{removable}=="removable" ATTRS{speed}=="480" ATTRS{urbnum}=="28" ATTRS{version}==" 2.00" looking at parent device '/devices/pci0000:00/0000:00:15.0/usb1': KERNELS=="usb1" SUBSYSTEMS=="usb" DRIVERS=="usb" ATTRS{authorized}=="1" ATTRS{authorized_default}=="1" ATTRS{avoid_reset_quirk}=="0" ATTRS{bConfigurationValue}=="1" ATTRS{bDeviceClass}=="09" ATTRS{bDeviceProtocol}=="01" ATTRS{bDeviceSubClass}=="00" ATTRS{bMaxPacketSize0}=="64" ATTRS{bMaxPower}=="0mA" ATTRS{bNumConfigurations}=="1" ATTRS{bNumInterfaces}==" 1" ATTRS{bcdDevice}=="0415" ATTRS{bmAttributes}=="e0" ATTRS{busnum}=="1" ATTRS{configuration}=="" ATTRS{devnum}=="1" ATTRS{devpath}=="0" ATTRS{idProduct}=="0002" ATTRS{idVendor}=="1d6b" ATTRS{interface_authorized_default}=="1" ATTRS{ltm_capable}=="no" ATTRS{manufacturer}=="Linux 4.15.0-55-generic xhci-hcd" ATTRS{maxchild}=="9" ATTRS{product}=="xHCI Host Controller" ATTRS{quirks}=="0x0" ATTRS{removable}=="unknown" ATTRS{serial}=="0000:00:15.0" ATTRS{speed}=="480" ATTRS{urbnum}=="46" ATTRS{version}==" 2.00" looking at parent device '/devices/pci0000:00/0000:00:15.0': KERNELS=="0000:00:15.0" SUBSYSTEMS=="pci" DRIVERS=="xhci_hcd" ATTRS{broken_parity_status}=="0" ATTRS{class}=="0x0c0330" ATTRS{consistent_dma_mask_bits}=="64" ATTRS{d3cold_allowed}=="1" ATTRS{dbc}=="disabled" ATTRS{device}=="0x31a8" ATTRS{dma_mask_bits}=="64" ATTRS{driver_override}=="(null)" ATTRS{enable}=="1" ATTRS{irq}=="124" ATTRS{local_cpulist}=="0-3" ATTRS{local_cpus}=="f" ATTRS{msi_bus}=="1" ATTRS{numa_node}=="-1" ATTRS{revision}=="0x03" ATTRS{subsystem_device}=="0x31a8" ATTRS{subsystem_vendor}=="0x1849" ATTRS{vendor}=="0x8086" looking at parent device '/devices/pci0000:00': KERNELS=="pci0000:00" SUBSYSTEMS=="" DRIVERS==""
-
Das ist schon mal ein anderer Key als ich ihn definiert habe.
Für die grüne Taste funktioniert es interessanterweise korrekt...Wenn es für die grüne Taste funktioniert, sollte die evmap angewendet werden. Dann wäre jetzt also die Herausforderung zu klären, warum der Empfänger die falsche Tastenkombination sendet...
Ich vermute die 2 Events kommen für keypress und keyrelease ...
Genau, value 1 ist ein Tastendruck, value 0 ist ein Loslass-Event, value 2 wäre eine Wiederholung einer gedrückt gehaltenen Taste.
-
Klicke in die debug messages , kopiere alles und füge es in einen Editor ein und poste das bitte.
Zusätzlich poste bitte auch das Ergebnis von "get eeprom", "save file".
-
Klicke in die debug messages , kopiere alles und füge es in einen Editor ein und poste das bitte.
Zusätzlich poste bitte auch das Ergebnis von "get eeprom", "save file".
Soweit ich es jetzt beurteilen kann habe liegt der Fehler bei mir ...
Die map die ich oben gepostet habe war nicht identisch zu dem was ich ausgelesen habe.
Hier waren Codes mehrfach vergeben und es wurde der 1. Eintrag genommen - "Works as Designed".
Besten Dank für die schnelle Unterstützung! -
Hi,
mit dieser Fernbedienung funktioniert der Aufnahme Knopf nicht. Mit der IRMP_STM32 Version funktioniert dieser. Ist das im KBD Standard nicht vorgesehen? Per evtest habe ich eine unbekannte Taste entdeckt:
Code
Alles anzeigenInput driver version is 1.0.1 Input device ID: bus 0x3 vendor 0x1209 product 0x4445 version 0x111 Input device name: "STMicroelectronics STM32 IRMP HID-KBD-Device Keyboard" Supported events: Event type 0 (EV_SYN) Event type 1 (EV_KEY) Event code 1 (KEY_ESC) Event code 2 (KEY_1) Event code 3 (KEY_2) Event code 4 (KEY_3) Event code 5 (KEY_4) Event code 6 (KEY_5) Event code 7 (KEY_6) Event code 8 (KEY_7) Event code 9 (KEY_8) Event code 10 (KEY_9) Event code 11 (KEY_0) Event code 12 (KEY_MINUS) Event code 13 (KEY_EQUAL) Event code 14 (KEY_BACKSPACE) Event code 15 (KEY_TAB) Event code 16 (KEY_Q) Event code 17 (KEY_W) Event code 18 (KEY_E) Event code 19 (KEY_R) Event code 20 (KEY_T) Event code 21 (KEY_Y) Event code 22 (KEY_U) Event code 23 (KEY_I) Event code 24 (KEY_O) Event code 25 (KEY_P) Event code 26 (KEY_LEFTBRACE) Event code 27 (KEY_RIGHTBRACE) Event code 28 (KEY_ENTER) Event code 29 (KEY_LEFTCTRL) Event code 30 (KEY_A) Event code 31 (KEY_S) Event code 32 (KEY_D) Event code 33 (KEY_F) Event code 34 (KEY_G) Event code 35 (KEY_H) Event code 36 (KEY_J) Event code 37 (KEY_K) Event code 38 (KEY_L) Event code 39 (KEY_SEMICOLON) Event code 40 (KEY_APOSTROPHE) Event code 41 (KEY_GRAVE) Event code 42 (KEY_LEFTSHIFT) Event code 43 (KEY_BACKSLASH) Event code 44 (KEY_Z) Event code 45 (KEY_X) Event code 46 (KEY_C) Event code 47 (KEY_V) Event code 48 (KEY_B) Event code 49 (KEY_N) Event code 50 (KEY_M) Event code 51 (KEY_COMMA) Event code 52 (KEY_DOT) Event code 53 (KEY_SLASH) Event code 54 (KEY_RIGHTSHIFT) Event code 55 (KEY_KPASTERISK) Event code 56 (KEY_LEFTALT) Event code 57 (KEY_SPACE) Event code 58 (KEY_CAPSLOCK) Event code 59 (KEY_F1) Event code 60 (KEY_F2) Event code 61 (KEY_F3) Event code 62 (KEY_F4) Event code 63 (KEY_F5) Event code 64 (KEY_F6) Event code 65 (KEY_F7) Event code 66 (KEY_F8) Event code 67 (KEY_F9) Event code 68 (KEY_F10) Event code 69 (KEY_NUMLOCK) Event code 70 (KEY_SCROLLLOCK) Event code 71 (KEY_KP7) Event code 72 (KEY_KP8) Event code 73 (KEY_KP9) Event code 74 (KEY_KPMINUS) Event code 75 (KEY_KP4) Event code 76 (KEY_KP5) Event code 77 (KEY_KP6) Event code 78 (KEY_KPPLUS) Event code 79 (KEY_KP1) Event code 80 (KEY_KP2) Event code 81 (KEY_KP3) Event code 82 (KEY_KP0) Event code 83 (KEY_KPDOT) Event code 85 (KEY_ZENKAKUHANKAKU) Event code 86 (KEY_102ND) Event code 87 (KEY_F11) Event code 88 (KEY_F12) Event code 89 (KEY_RO) Event code 90 (KEY_KATAKANA) Event code 91 (KEY_HIRAGANA) Event code 92 (KEY_HENKAN) Event code 93 (KEY_KATAKANAHIRAGANA) Event code 94 (KEY_MUHENKAN) Event code 95 (KEY_KPJPCOMMA) Event code 96 (KEY_KPENTER) Event code 97 (KEY_RIGHTCTRL) Event code 98 (KEY_KPSLASH) Event code 99 (KEY_SYSRQ) Event code 100 (KEY_RIGHTALT) Event code 102 (KEY_HOME) Event code 103 (KEY_UP) Event code 104 (KEY_PAGEUP) Event code 105 (KEY_LEFT) Event code 106 (KEY_RIGHT) Event code 107 (KEY_END) Event code 108 (KEY_DOWN) Event code 109 (KEY_PAGEDOWN) Event code 110 (KEY_INSERT) Event code 111 (KEY_DELETE) Event code 113 (KEY_MUTE) Event code 114 (KEY_VOLUMEDOWN) Event code 115 (KEY_VOLUMEUP) Event code 116 (KEY_POWER) Event code 117 (KEY_KPEQUAL) Event code 119 (KEY_PAUSE) Event code 121 (KEY_KPCOMMA) Event code 122 (KEY_HANGUEL) Event code 123 (KEY_HANJA) Event code 124 (KEY_YEN) Event code 125 (KEY_LEFTMETA) Event code 126 (KEY_RIGHTMETA) Event code 127 (KEY_COMPOSE) Event code 128 (KEY_STOP) Event code 129 (KEY_AGAIN) Event code 130 (KEY_PROPS) Event code 131 (KEY_UNDO) Event code 132 (KEY_FRONT) Event code 133 (KEY_COPY) Event code 134 (KEY_OPEN) Event code 135 (KEY_PASTE) Event code 136 (KEY_FIND) Event code 137 (KEY_CUT) Event code 138 (KEY_HELP) Event code 140 (KEY_CALC) Event code 142 (KEY_SLEEP) Event code 150 (KEY_WWW) Event code 152 (KEY_SCREENLOCK) Event code 158 (KEY_BACK) Event code 159 (KEY_FORWARD) Event code 161 (KEY_EJECTCD) Event code 163 (KEY_NEXTSONG) Event code 164 (KEY_PLAYPAUSE) Event code 165 (KEY_PREVIOUSSONG) Event code 166 (KEY_STOPCD) Event code 173 (KEY_REFRESH) Event code 176 (KEY_EDIT) Event code 177 (KEY_SCROLLUP) Event code 178 (KEY_SCROLLDOWN) Event code 179 (KEY_KPLEFTPAREN) Event code 180 (KEY_KPRIGHTPAREN) Event code 183 (KEY_F13) Event code 184 (KEY_F14) Event code 185 (KEY_F15) Event code 186 (KEY_F16) Event code 187 (KEY_F17) Event code 188 (KEY_F18) Event code 189 (KEY_F19) Event code 190 (KEY_F20) Event code 191 (KEY_F21) Event code 192 (KEY_F22) Event code 193 (KEY_F23) Event code 194 (KEY_F24) Event code 240 (KEY_UNKNOWN) Event type 4 (EV_MSC) Event code 4 (MSC_SCAN) Key repeat handling: Repeat type 20 (EV_REP) Repeat code 0 (REP_DELAY) Value 250 Repeat code 1 (REP_PERIOD) Value 33 Properties: Testing ... (interrupt to exit)
-
Mit der IRMP_STM32 Version funktioniert dieser
Was für einen Code liefert denn stm32IRconfig_gui im receive mode bei dieser Taste?
Und was hast du diesem Code in der stm32kbdIRconfig_gui zugewiesen?
-
Was für einen Code liefert denn stm32IRconfig_gui im receive mode bei dieser Taste?
Und was hast du diesem Code in der stm32kbdIRconfig_gui zugewiesen?
Ahhh, ok. Verstanden. Ich habe die Taste gerade angelernt
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!