IRMP auf STM32 - ein USB-HID-Keyboard IR Empfänger/Sender/Einschalter mit Wakeup-Timer

  • Mit welchem Befehl bringst du den Thin-Client in den Schlafzustand, aus dem er mit der Tastatur aufgeweckt werden kann?

    Ist das eine besondere Tastatur speziell für den Thin-Client oder eine übliche normale Tastatur? Der Empfänger kann alles senden, was eine normale Tastatur kann (sogar mehr).


    Meine PC's wachen genauso gut per Empfänger nur über USB auf wie per USB-HID-Tastatur.

  • Quote

    WARNING: This device's microcontroller is a , NOT a STM32 or RP2040!

    im Bild von RE: IRMP auf STM32 - ein USB IR Empfänger/Sender/Einschalter mit Wakeup-Timer ist ein Hinweis auf einen fiesen Fehler.

    Ich war im Urlaub und zu entspannt, um die Folgen zu bedenken: Man konnte in der GUI nicht das eeprom commiten, da die Knöpfe deaktiviert waren.

    Das lag daran, dass bei den STM32 der Firmware-String ein Array war, aber bei den RP2040 ein Pointer ist, aber das (noch) nicht berücksichtigt wurde.

    Ist jetzt gefixt und es gibt neue Firmware.

  • Ja, das habe ich mir dann auch durch dutzende Forenbeiträge (oder war's das cmdline-Prg?) erarbeitet, dass der RP2040 ein commit braucht. Ich habe die Tasten im RP2040 am PC angelernt und dann am VDR getestet - nur waren dann keine Tasten mehr angelernt weil das commit gefehlt hatte (der Button im GUI war ja ausgegraut) und deshalb hat der VDR auf nichts reagiert.

    Irgendwo habe ich dann was zum commit gelesen und nach dem Anlernen der Tasten im GUI den commit mit der commandline Version gemacht (die Infos bleiben ja erhalten solange der RP2040 Strom hat, deshalb hat das direkte Auslesen im GUI auch immer korrekt ausgesehen).

    Letztendlich wacht der VDR jetzt mit der Power-Taste auf. Dann haben noch einige Tasten in der eventlircd Keymap gefehlt (warum ist da channel up/down nicht drin? Die hat doch quasi jede FB) und ich habe die repeat rate noch etwas runtergesetzt, aber im VDR kommen die Tastendrücke trotzdem nicht schneller als ca 250ms an.


    Die Fotos zeigen den Futro S 740 mit den Adaptern von USB 3 auf USB-A 2.0 und den RP2040-One; der IR-Sensor wird später an die Stelle der Mikrofonbuchse eingeklebt

  • Schön, dass du dich trotzdem durchgewurschtelt hast :)


    Dann haben noch einige Tasten in der eventlircd Keymap gefehlt (warum ist da channel up/down nicht drin? Die hat doch quasi jede FB)

    Zeig mal, dann übernehme ich das. Oder mach einen PullRequest.


    ich habe die repeat rate noch etwas runtergesetzt, aber im VDR kommen die Tastendrücke trotzdem nicht schneller als ca 250ms an.

    RC5 hat normalerweise eine Wiederholrate von 114 ms. Wenn sich deine FB daran hält, müsste es doppelt so schnell gehen.

    Was sind denn deine Werte für repeat_timeout, repeat_delay und repeat_period?

    Du könntest mal ir-keytable ausprobieren, siehe #181.

  • Ist jetzt gefixt und es gibt neue Firmware.

    Ja, damit wird jetzt mein RP2040 erkannt!


    Für Channel up/down scheint Page up/down Standard zu sein:

    Code
    RP2040_IRMP.evmap:
    KEY_PAGEUP      = KEY_CHANNELUP
    KEY_PAGEDOWN    = KEY_CHANNELDOWN                                                      

    Da ich noch einige Menüs auf der FB haben will habe ich einfach A,S und D genommen weil die noch frei waren, weiß aber nicht ob das generell Sinn hat:

    Code
    KEY_A           = KEY_EPG
    KEY_S           = KEY_TIME
    KEY_D           = KEY_PVR

    repeat_timeout, repeat_delay und repeat_period habe ich auf 100/100/15 gesetzt. Mit irw bekomme ich da auch "handgestoppt" 10-11 Events pro Sekunde, im VDR aber nur ca 4 (=250ms). Mit dem Keyboard geht es schneller, also kann zumindest der Minirechner das auch schneller verarbeiten.

  • Mit ir-keytable komme ich nicht klar. Das -d aus #181 kennt er nicht mehr und -s erwartet offenbar etwas aus

    /sys/class/rc, was aber leer ist. Die Ausgaben von ir-keytable scheinen sowieso etwas "wirr" zu sein ....


  • Mit irw bekomme ich da auch "handgestoppt" 10-11 Events pro Sekunde, im VDR aber nur ca 4 (=250ms).

    Was steht denn bei dir im VDR Menü unter Einstellungen - Sonstiges - Fernbedienung Wiederholverzögerung bzw. Wiederholintervall?

  • Mit 0-0 wird er fast unbedienbar, da z.B. OK gleich zweimal ausgeführt wird wenn nicht ganz kurz drückt.

    Bin jetzt bei WH=125, Intervall=0, damit geht s schneller, aber die Anfangsverzögerung gibts nicht.


    evtest gibt auch nur 0 und 1 aus, keine 2 für repeat - ist das ok?

  • Rätselhaft. Der vdr bekommt die Eingaben über lirc, aber irw, der lirc anzeigt, ist schneller als der vdr.

    Blöde Frage: Warst du mit irw am selben socket den der vdr benutzt? Hast du irgendein Plugin/Patch, das da noch filtert?

  • 640 - 655: der timeout ist 15

    640 - 745: 115 RC5 repeat interval, auch OK


    aber die Anfangsverzögerung gibts nicht.

    Entweder im VDR die Wiederholverzögerung hochsetzen ODER im Empfänger repeat_delay hochsetzen.


    evtest gibt auch nur 0 und 1 aus, keine 2 für repeat - ist das ok?

    IRMP_STM32_KBD/eventlircd/ootb_oder_Zusatzsoftware at master · j1rie/IRMP_STM32_KBD
    Contribute to j1rie/IRMP_STM32_KBD development by creating an account on GitHub.
    github.com

  • Code
    KEY_PAGEUP      = KEY_CHANNELUP
    KEY_PAGEDOWN    = KEY_CHANNELDOWN

  • Da ja die Keys mit 114 ms Abstand rein kommen, ist es merkwürdig, dass der Wechsel von Wiederholintervall 100 auf 0 einen Unterschied macht. Da gibt es vielleicht eine Verzögerung durch das Betriebssystem?


    Generell sollte man nur an einer Stelle filtern. Also die Werte im Empfänger einstellen und im VDR auf 0,0 ODER im Empfänger sehr klein und im VDR einstellen. Dabei ist es vorteilhaft die 114 ms Abstand zu beachten. Also Werte die nahe an 114, 228, 342 sind sollte man vermeiden und eher Werte wählen, die in der Mitte davon liegen.


    Aber Versuch macht kluch ;)

  • Gibt es eine Möglichkeit an die Rohdaten (Pulse-Pausen Abfolgen mit Dauer) des IR-Empfängers zu kommen? Dann könnte man sich mal genauer ansehen, was die Fernbedienung so liefert.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Ein etwas längerer evtest mit länger gedrückter Taste wäre gut. Und ein irw mit timing Ausgabe (#2 und #9).

    Sonst mit IRMP mit debug über UART (ist aber für RP2040 glaub ich noch gar nicht drin?) oder mit einem LogicAnalyzer oder Oszi.

  • Aus 0x12c = 300 wird dann effektiv 342 wegen RC5,

    aus 0x64 = 100 wird effektiv 114 wegen RC5,

    die Werte vom VDR sind kleiner und er funkt nicht mehr dazwischen.

  • Ich bin jetzt endlich dazu gekommen die Macro Programmierung in's MLD Setup mit aufzunehmen. Es funktioniert wie gewünscht. Danke dafür!


    Eine Frage habe ich aber noch. Beim RP2040 leuchtet dauerhaft eine Weiße LED. Lässt sich das (optional) abstellen? Das könnte den einen oder anderen User stören.

    MLD 5.5 mit vdr 2.6 - lirc yaUSBir - Octopus NET S2 - SCR - XFX GeForce 9300 mit Intel E3200 - 2GB RAM - WD Green 12TB HDD - SanDisk 64GB SSD - Lian Li PC-C37B - Samsung LE40A559
    MLD 5.5 mit vdr 2.4 - Raspberry Pi 3 - rpihddevice
    MLD 5.5 mit Squeeze Play - Raspberry Pi 2 - 32GB SD - 7" Touch TFT

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!