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

  • Am STM32 messe ich eine Ruhespannung von 0,2 V. Diese verändert sich bei Tastendrücken nicht und der Pi wacht nur bei der definierten Taste auf. Also so wie es sein soll.



  • Ich messe die Spannung am Pin 6 (SWCLK) nach dem Widerstand gegen GND.

    Das ist am RedLinkCrap aber EXTLED.


    Wenn es mit dem STM32 geht, spricht das erst recht dagegen die RedLinkCrap mit

    CKS32 zu verwenden.

  • Das ist am RedLinkCrap aber EXTLED.


    Wenn es mit dem STM32 geht, spricht das erst recht dagegen die RedLinkCrap mit

    CKS32 zu verwenden.

    Einen anderen Anschluss gibt es nicht. Den SWDIO hatte ich geprüft und der geht nicht.


    Nun, somit haben sich die weiteren Tests mit RedLinkCrap mit CKS32 erübrigt.



  • So, ich habe mir für meine Raspberry Spielwiese einen RobotDyn (BlueDev) gelötet. Der RobotDyn in meinem M3d1@Pi hat die Firmware Version 2019-07-04_01-31_blueDev_BL_SC_KBD_jrie.bin und da ist die Steuerleitung vom IR Empfänger an B9. Mit 2020er Versionen hast du was geändert? Es funktioniert nämlich an B9 nicht mehr und wenn ich in der config.h nachschaue, steht da A13 für IR_IN. A13 gibt es beim RobotDyn nicht.



  • Ich habe gerade die Änderung von dir im github eingeblendet und das gefunden:


    https://github.com/j1rie/IRMP_…2df6c06e86e9cafef5704e019


    Funktioniert ;D:]



    2 Mal editiert, zuletzt von obelix ()

  • Hallo,


    ich hatte mir vor einiger Zeit einen IRMP-STM32-USB-IR-Empfänger+Einschalter bei Jörg bestellt, der toll funktioniert hat. Leider ist irgendwie die Empfangsdiode verschütt gegangen und ich habe gerade die Anleitungen gewälzt, aber keine Materialliste gesehen.


    Welcher Infrarot-Empfänger würde funktionieren? Auf eBay habe ich viele VS1838B gefunden. Würde die passen?


    Viele Grüße
    Matthias

    [VDR1] AS J3455M mit 2x2 Device Bonding Digital Devices DuoFlex L4M-Twin S2 ver. 6.2, Ubuntu 14.04 64bit mit yavdr-experimental-repo und xine-Ausgabe mit vaapi, vdr 2.0.6
    [VDR2] ASRock N3050B-ITX SoC mit TBS 6281 2x DVB-C und Easyvdr als Komplettsystem mit einer X10 an einem Fernseher

  • Ich hatte den TSOP4838 verwendet. Der ist gut und günstig und hat sich bei mir bewährt.

    Wenn man möglichst viele Protokolle empfangen können will, sollte man z.B. den TSOP34338 nehmen.

    Die VS1838B gehen sicher auch, aber das Datenblatt lässt vieles offen.

    Siehe auch hier.

  • Die Keyboard-Firmware kann jetzt auch Sky Q (Sky+ Pro) und Sky+.

    Und ich habe 2 Jahre Weiterentwicklung aus der irmplircd-Firmware nachgeholt.

    Es fehlt nur noch der F401, der wegem grösserem emuliertem Eeprom und schnellerem µC am empfehlenswertestem für die Keyboard-Version ist.


    Bugreports und Erfolgsmeldungen willkommen :)

  • Super, Stick ist upgedatet und programmiert:



    rudimentärer Testbetrieb läuft. Interner Einbau incl. Platinen Anschlüsse (Power) verlöten, habe ich mir für Wochenende vorgenommen.


    Mögliche Tasten sind hier zu finden -> https://github.com/j1rie/IRMP_…_gui/Linux/usb_hid_keys.h

    2 Mal editiert, zuletzt von vdr_rossi ()

  • Mit creating-an-eeprom-map, zweite Methode.


    Edit: das war eine Antwort auf eine inzwischen gelöschte Frage. Durch den Hinweis auf mögliche Tasten verstehe ich jetzt auch, was mit der Frage eigentlich gemeint war ;)


    Ich hatte damals überlegt, in der gui ein Auswahlmenü für mögliche Keys zu machen. Aber bei 164 möglichen Keys wäre eine eindimensionale Liste wie im select-Feld einfach zu lang. Gelegentlich gucke ich mal, ob es im fox toolkit andere Möglichkeiten gibt. Vielleicht ein Quadrat 13x13?

    Hat jemand Ideen?


    Wie löst Flirc das Problem? Über Tastatur geht auch nicht, weil viel zu wenig Tasten im Vergleich zu 164 möglichen.


    Edit2: Jetzt steht da, ich hätte #169 editiert. Habe ich aber nicht. Dämliche Foren-Software.

  • …Durch den Hinweis auf mögliche Tasten verstehe ich jetzt auch, was mit der Frage eigentlich gemeint war ;)


    Wie löst Flirc das Problem?

    so:


    [Blockierte Grafik: https://support.flirc.tv/hc/en-us/article_attachments/201165899/Full_keyboard.png]


    Taste auf der Tastatur im Bild drücken und dann gewünschte FB Taste hinterher - fertig.

  • Code
    repeat_timeout = 15
    repeat_delay = 100
    repeat_period = 100

    Bekomme oben genannte Werte nicht in den Stick.


    Vorgehen per stm32kbdIRconfig_gui.exe

    -> select repeat delay -> get repeat -> unter repeat 100 eingetragen -> set repeat

    dann -> select repeat period-> get repeat -> unter repeat 100 eingetragen -> set repeat

    und -> select repeat timeout-> get repeat -> unter repeat 15 eingetragen -> set repeat


    Da nützt auch ein reset repeat nix

    Code
    Sent 5 bytes:
    03 00 02 08 02 
    Received 4 bytes:
    02 02 02 08 
    **********************ERROR**************************

    Alle Knöpfe unter reset durchprobiert...


    Vorhandenen Werte sind total hoch, z.B. repeat delay = 25600


    ?

  • Auch mit stm32kbdIRconfig auf der Kommandozeile probiert:

  • Taste auf der Tastatur im Bild drücken und dann gewünschte FB Taste hinterher - fertig.

    Mal sehen, ob ich das auch so implementieren kann. Wäre jedenfalls einfacher als jetzt.

    Aber wie kommen Tasten rein, die nicht auf der Tastatur sind?


    Bekomme oben genannte Werte nicht in den Stick.

    Habe den Fehler gefunden, ich hatte beim Umbauen an einer Stelle vergessen eine 4 durch eine 5 zu ersetzen.

    Es gibt neue Firmwares.

  • Aber wie kommen Tasten rein, die nicht auf der Tastatur sind?


    Für was für eine exotische Konstellation könnte man das brauchen? Tastaturen aus anderen Ländern?


    Am Ende geht es um Tastatur Bedienung von vdr oder Kodi - da kommt man doch mit knapp 30 Tasten aus. Alle Tasten dafür findet man auf erster Ebene...


    Gut, bei mir ist jetzt die aktuelle Firmware drin und nun lassen sich auch repeat Timings programmieren.


    Für meine Sky FB (URC1635) haben sich folgende Timings ergeben:


    Code
    repeat_timeout = 15
    repeat_delay = 250
    repeat_period = 100

    Läuft!

  • Ich komme nochmal auf die repeat timings zurück.


    Irgendwie passen die oben genannten Werten nicht. Wenn ich z.B. F4 für gelb drücke, bleibt der vdr Dialog nicht stehen um ihn mit Enter zu bestätigen.

    Der vdr Dialog geht gleich wieder weg. Bei einem Gegencheck mit echter Tastatur funktioniert das.


    Habe diverse Timings durchprobiert - ohne Erfolg.


    Ist eventl. stm32kbd2uinput noch nötig? Verwende Kernel 5.15.x

    Kann ich die Eingabegeschwindigkeit mit einer anderen Platine z.B. Typ stm32F401 noch steigern? Bilde mir ein das ich vor Urzeiten mit lirc über com1 oder war es noch zu FullFeatered SD Zeiten... eine rasend schnelle Bedienung hatte. Mit der FB konnte man durch das vdr osd fliegen.

    Einmal editiert, zuletzt von vdr_rossi ()

  • Benutzt du yaVDR oder was sonst?

    Zeig mal deine udev und evmap und eeprom map.

    Die Eingabegeschwindigkeit ist eigentlich nur durch die Wiederholfrequenz der Fernbedienung begrenzt, der µC sollte dabei keine grosse Rolle spielen.

  • Gerade mal gemessen: Wenn man mit dem Finger auf einer Taste bleibt, kommen bei der URC1635 alle 149-150 ms die Tastendrücke an.

    Es gibt schnellere Protokolle, aber es sollte trotzdem schnell genug sein.

    Bei den Farbtasten verhält sich die URC1635 unerwartet, sie sendet erst nach Loslassen der Farbtaste.

    Was sagt denn evtest, wenn du deine Problem-Taste drückst?

  • Ja, ich setze Ubuntu 22.04 LTS mit yavdr ansible ein.


    udev


    /lib/udev/rules.d/69-irmp-kbd.rules

    Code
    ACTION=="add", KERNEL=="event[0-9a-f]*", SUBSYSTEM=="input", ATTRS{idVendor}=="1209", ATTRS{idProduct}=="4445", TAG+="uaccess"
    
    ACTION=="add", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1209", ATTRS{idProduct}=="4444", TAG+="uaccess"
    ACTION=="add", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="27d9", TAG+="uaccess"

    Es wird keine evmap geladen.


    eeprom map

    evtest


    Grundsätzlich ist die Geschwindigkeit ok, hatte mich da an frühe Zeiten erinnert. Es war gefühlt direkter und schneller.

    Das war mit einer TechnoTrend TT-micro S835 (RC5) Fernbedienung. Diese ist noch vorhanden, mache demnächst mal einen Gegencheck.


    Helfen die oben gemachten Angaben beim Funktionstasten Problem weiter? Wundert mich das Flirc diese FB mit Funktionstasten händeln kann.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!