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

  • Probiere Morgen weiter.


    Hätte noch eine andere RC6 Fernbedienung im Haus, aber da fehlen mir aktuell passende Batterien...

    Kaufe ich Morgen und mache eine Gegenprobe.


    Das mit den Tasten 1-4 lässt sich nicht 100% reproduzieren. Jetzt kommt bei allen Tasten ffffffffff00 an.

    So exotisch kann die Sky FB doch nicht sein.


    irw funktioniert doch nur mit LIRC? yavdr 0.7 setzt auf eventlircd.

  • irw funktioniert doch nur mit LIRC? yavdr 0.7 setzt auf eventlircd.

    irw funktioniert mit allem, was Tastendrücke auf einem lirc-kompatiblen Sockel ausgibt - man kann damit schauen, was lirc, eventlircd, inputlirc uvm. so ausgeben - aber das hilft dir so nicht weiter, wenn das Anlernprogramm Probleme hat ein Mapping der Tastendrücke zu erstellen, so dass irmplircd (oder das HID-Device, das als Keyboard arbeitet, je nachdem welche Firmwarevariante man nutzt) die Tastendrücke so ausgeben kann, dass eventlircd etwas damit anfangen kann.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Hier hat schon mal jemand nach Sky gefragt. Wie immer wäre ein Scan nötig, um das in IRMP einzubauen.

    Dazu ist eine serielle Schnittstelle auf dem µC nötig. Die ist aber nicht auf dem Stick, sondern nur auf den Developer Boards.

    Du könntest einfach mal Frank fragen, ob das noch nötig ist, da die Info ja anscheinend schon da ist.

  • Ok, hatte Beitrag #1.080 von Seahawk1986 überlesen. Sky FB ist ein Exot.


    Gegenprüfung mit anderen Fernbedienungen (RC5 & RC6) funktioniert 1a.


    Anfrage an Frank bzw. im Mikrocontroller Forum ist abgesetzt.

  • Frank hat geantwortet: https://www.mikrocontroller.ne…oder?goto=7110877#7111600

    Eine Scan-Datei wäre sinnvoll. Bei den Sticks müsste man dazu aber mit Fädeldraht an zwei Pins ran (M-Reimer hat das mal gemacht: IRMP auf STM32 - ein USB IR Empfänger/Sender/Einschalter mit Wakeup-Timer). Eine entsprechende Firmware würde ich dir bereitstellen. Ansonsten müssten deine Fernbedienung und ein Developer-Board mit Logging und USB-seriell-Adapter mal am selben Ort sein. Oder hast du einen Logic-Analyzer oder ein Oszilloskop?

  • Ich habe die Sky FB (URC1635) zweimal.


    jrie

    Eine kann ich Dir per Post schicken? Rest per PN

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

    Bis das auch in der Keyboard-Version ankommt, kann es noch etwas dauern, denn da muss ich erst mal 2 Jahre Weiterentwicklung nachholen.


    Man kann die Fernbedienung URC1635 über die 6 Pins oberhalb der Batterien mit RMIR roh ausgelesen. Leider wird sie von RMIR noch nicht richtig unterstützt.

  • Hallo STM32 Fans

    Es gibt wiedermal was neues

    Für alle die Probleme haben mit einem Standard STM32 Stick oder STM 32 Arduino USB IRMP

    Zum Steuern und Einschalten eines VDR,s

    Hier nun die Version mit einem Optokoppler mit nachgeschaltetem Relais.

    Damit sollten auch Problemfälle sich sicher einschalten lassen.

    In der Abbildung mit einer Orginal SMK RC6 MCE Fernbedienung

    Diese Fernbedienung sendet nur in MS_MCE Code ..

    Images

    Test_VDR: Lintec Senior - MSI G41M P25 MS7592 Board - Intel P4 E8500 / 775 CPU - MSI GT710 PCI-e passiv - DVBSky S2 952 Dual SAT - 120GB Intenso SSD + Big HDD - 2x2GB DDR3 RAM - LG GH24NSD1 S-ATA DVD - SMK RC6 MCE 50GB FB. an STM32 USB-Arduino - EasyVDR 5 - Softhddevice mit Pulseaudio - Kodi 20.2 m. Confluence Skin
    Clients:Raspberry PI B+ mit OpenElec 5.08 Kodi Helix 14.2 und Tsop31238 Lirc mit Conrad Promo8 FB on Code VCR 0104 - Raspi3 m.OpenElec 6.03 und Kodi 15.2 Isengard

  • Ich arbeite an einer Firmware für den Raspberry Pi Pico. Die läuft bereits, muss aber noch aufgeräumt werden.


    Der Raspi Pico hat den Vorteil, dass die Firmware einfach im Dateimanager auf den Pico gezogen wird und fertig. Nie wieder Probleme mit Bootloader/Firmware flashen. :)

  • Super, auch die Keyboard Firmware? Über USB kommt ja 5v - wie hast Du das mit der Spannungsversorgung (3,3v) gelöst?

  • Die Keyboard Firmware kommt dann hoffentlich später, wenn meine Ressourcen das zulassen.

    Die zweite Frage verstehe ich nicht, der Pico hat doch einen Spannungswandler 5 V auf 3,3 V wie die STM32 Boards auch.

  • Die zweite Frage verstehe ich nicht, der Pico hat doch einen Spannungswandler 5 V auf 3,3 V wie die STM32 Boards auch.

    Oh sorry, hatte das gestern nur auf dem Handy Display nachgelesen und nichts von 5v gelesen.

    Mein Fehler.

  • Da ich relativ unzufrieden mit dem meson-ir auf meinem odroid n2+ bin habe ich mir von Emma53 einen STM32 Empfänger bestellt - ich hab son Ding schon seit Jahren an meinem VDR im Esszimmer und bin da egtl sehr zufrieden mit.


    Als Basis bin ich mit diesem alten LibreELEC Addon von jrie https://github.com/j1rie/IRMP_…aster/irmplircd/LibreELEC und meiner CoreElec 20 Installation mit chroot Ubuntu eingestiegen. Benötigt werden hier vor hauptsächlich aktuelle arm4 Binarys zu irmplircd lircd-uinput.


    Für das irmplircd hatte ich beta gebeten mit einmal das binary auf seiner Entwicklungsumgebung zu bauen, das läuft aber leider weder bei ihm noch bei mir, genauso wenig wie das Binary aus Ubuntu Jammy. Um hier weiterzukommen hab ich kurzerhand das Paket auf dem chroot Ubuntu Jammy installiert und von CoreELEC aus gestartet:


    Die Unit hab ich dazu kurz passend gemacht:


    das lircd-uinput ist auf dem Coreelec freundlicherweise dabei, daher hab ich dein binary rausgehauen und durch einen Symlink ersetzt:

    Code
    lircd-uinput -> /usr/sbin/lircd-uinput


    Damit startet das lircd-uinput mit dem systemd service.


    den meson Empfänger kann man hiermit ausknipsen, so dass beim nächsten boot das Modul nicht mehr geladen wird:

    Code
    touch '/storage/.config/remote.disable'

    meine bestehende MCE Konfiguration für ir-keytable konnte ich mithilfe der irmp_keymap.map aus dem 1. Beitrag Verkaufsthread von Emma53 mit einem Editor einfach passend machen.


    Ab hier funktioniert die Fernbedienung erstmal und läuft auch schon extrem rund mit der Harmony MCE Profil die ich seit Jahren nutze. Obwohl das irmplircd auf dem chroot gestartet wurde funktioniert hier 👍


    Ein Problem hab ich ich noch mit dem irmplircd.service wen ich den enablen will, da moniert er ein nicht vorhandenes Device .

    Code
    root@CKone:~$ systemctl enable irmplircd
    Created symlink /storage/.config/system.d/dev-irmp_stm32.device.wants/irmplircd.service → /storage/.config/system.d/irmplircd.service.
    Unit /storage/.config/system.d/irmplircd.service is added as a dependency to a non-existent unit dev-irmp_stm32.device.


    Hier fehlt mir leider im Moment etwas die Idee, das device wird ja aus der udev Rule erzeugt und das funktioniert ja einwandfrei.


    Vllt hat hier ja noch wer eine Idee?

    CKone: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G540, 2x 2GB Kingston DDR3, Zotac GT630 1GB, S2-1600, Ocz Agility 3 60GB, LG GH24NS DVD, 15.6" Selbstbau TFT, Harmony 665, CIR Selbstbau - das Ganze im Silverstone SST-SG03B
    CKtwo: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G1610, 2x 2GB Corsair DDR3, Zotac GT630 1GB, TT S2-1600, Ocz Vertex 2 50 GB, 92 Kanal Seduatmo, Harmony 665, atric USB
    CKthree: yavdr-ansible/22.04 LTS/2.6.1/kodi19.3 auf Intel NUC, Celeron J4005, UHD Graphics 600, 4GB Crucial DDR4, Ocz Vertex2 50 GB, Harmony 350

    PowerEdge: Ubuntu Server 16.04 LTS / VDR 2.4.1 auf Dell PowerEdge T20, Xeon E3-1225 v3, 16GB ECC DDR3, 2x Cine S2 V6 mit Duoflex, Samsung 840 EVO 120GB, 3x WD White WD80EZAZ 8TB in SW Raid5



  • Ich denke das hängt daran wie neuere Systemd-Versionen funktionieren - du könntest es mal so wie bei yaVDR so umdrehen, dass die udev-Regel die Systemd-Unit startet:

    Code: 80-irmp.rules
    ACTION=="add", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1209", ATTRS{idProduct}=="4444", TAG+="systemd", ENV{SYSTEMD_WANTS}="irmplircd@%k.service", SYMLINK+="irmp_stm32"
    Code: irmplircd@.service
    [Unit]
    Description=irmplircd - a daemon for IRMP receivers
    
    [Service]
    Type=forking
    Environment="SOCKET=/var/run/lirc/irmplircd" "KEYMAP=/etc/irmplircd/irmplicd.map"
    EnvironmentFile=-/etc/default/irmplircd
    Type=forking
    ExecStart=chroot /storage/UBUNTU /usr/bin/irmplircd -t /storage/.kodi/addons/virtual.irmp_stm32/etc/irmp_stm32.map /dev/%I -d /run/lirc/lircd.socket -r 300 -s 100
    SuccessExitStatus=0 71

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • danke, das Vorgehen funktioniert prinzipiell jedoch scheint das Timing nicht zu stimmen.


    Die udev rule löst das aus, legt den symlink an und startet den systemd service, dennoch bekomme ich ein dev not found


    wenn ich dann von Hand starte gehts dann problemlos.


    Code
    Feb 24 15:06:51 CKone systemd[1]: Starting irmplircd.service...
    Feb 24 15:06:51 CKone chroot[3245]: Could not open /dev/irmp_stm32: No such file or directory
    Feb 24 15:06:51 CKone chroot[3245]: Unable to open any event device!
    Feb 24 15:06:51 CKone systemd[1]: irmplircd.service: Deactivated successfully.
    Feb 24 15:06:51 CKone systemd[1]: Started irmplircd.service.

    CKone: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G540, 2x 2GB Kingston DDR3, Zotac GT630 1GB, S2-1600, Ocz Agility 3 60GB, LG GH24NS DVD, 15.6" Selbstbau TFT, Harmony 665, CIR Selbstbau - das Ganze im Silverstone SST-SG03B
    CKtwo: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G1610, 2x 2GB Corsair DDR3, Zotac GT630 1GB, TT S2-1600, Ocz Vertex 2 50 GB, 92 Kanal Seduatmo, Harmony 665, atric USB
    CKthree: yavdr-ansible/22.04 LTS/2.6.1/kodi19.3 auf Intel NUC, Celeron J4005, UHD Graphics 600, 4GB Crucial DDR4, Ocz Vertex2 50 GB, Harmony 350

    PowerEdge: Ubuntu Server 16.04 LTS / VDR 2.4.1 auf Dell PowerEdge T20, Xeon E3-1225 v3, 16GB ECC DDR3, 2x Cine S2 V6 mit Duoflex, Samsung 840 EVO 120GB, 3x WD White WD80EZAZ 8TB in SW Raid5



  • Könnte es sein, dass /dev zu dem Zeitpunkt noch nicht in das für das chroot genutzte Verzeichnis gemountet wurde?

    Wenn ich das richtig sehe, passiert das bei euren Skripten in https://github.com/horchi/vdrO…scripts/ubuntu-init.sh#L7 - dann bräuchte die irmplircd@.service noch eine Abhängigkeit von der ubuntu.service

    Code
    [Unit]
    Description=irmplircd - a daemon for IRMP receivers
    After=ubuntu.service
    Requires=ubuntu.service

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • sowas wird es sein, danke Alexander, probiere ich morgen.

    CKone: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G540, 2x 2GB Kingston DDR3, Zotac GT630 1GB, S2-1600, Ocz Agility 3 60GB, LG GH24NS DVD, 15.6" Selbstbau TFT, Harmony 665, CIR Selbstbau - das Ganze im Silverstone SST-SG03B
    CKtwo: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G1610, 2x 2GB Corsair DDR3, Zotac GT630 1GB, TT S2-1600, Ocz Vertex 2 50 GB, 92 Kanal Seduatmo, Harmony 665, atric USB
    CKthree: yavdr-ansible/22.04 LTS/2.6.1/kodi19.3 auf Intel NUC, Celeron J4005, UHD Graphics 600, 4GB Crucial DDR4, Ocz Vertex2 50 GB, Harmony 350

    PowerEdge: Ubuntu Server 16.04 LTS / VDR 2.4.1 auf Dell PowerEdge T20, Xeon E3-1225 v3, 16GB ECC DDR3, 2x Cine S2 V6 mit Duoflex, Samsung 840 EVO 120GB, 3x WD White WD80EZAZ 8TB in SW Raid5



  • Sorry, falsch abgebogen :o

    CKone: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G540, 2x 2GB Kingston DDR3, Zotac GT630 1GB, S2-1600, Ocz Agility 3 60GB, LG GH24NS DVD, 15.6" Selbstbau TFT, Harmony 665, CIR Selbstbau - das Ganze im Silverstone SST-SG03B
    CKtwo: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G1610, 2x 2GB Corsair DDR3, Zotac GT630 1GB, TT S2-1600, Ocz Vertex 2 50 GB, 92 Kanal Seduatmo, Harmony 665, atric USB
    CKthree: yavdr-ansible/22.04 LTS/2.6.1/kodi19.3 auf Intel NUC, Celeron J4005, UHD Graphics 600, 4GB Crucial DDR4, Ocz Vertex2 50 GB, Harmony 350

    PowerEdge: Ubuntu Server 16.04 LTS / VDR 2.4.1 auf Dell PowerEdge T20, Xeon E3-1225 v3, 16GB ECC DDR3, 2x Cine S2 V6 mit Duoflex, Samsung 840 EVO 120GB, 3x WD White WD80EZAZ 8TB in SW Raid5



    Edited 2 times, last by CKone ().

  • Kann ich nicht beantworten, da ich so ein Board nicht habe.

    Fürchte da hilft nur ausprobieren.

    MfG Helmut

    Test_VDR: Lintec Senior - MSI G41M P25 MS7592 Board - Intel P4 E8500 / 775 CPU - MSI GT710 PCI-e passiv - DVBSky S2 952 Dual SAT - 120GB Intenso SSD + Big HDD - 2x2GB DDR3 RAM - LG GH24NSD1 S-ATA DVD - SMK RC6 MCE 50GB FB. an STM32 USB-Arduino - EasyVDR 5 - Softhddevice mit Pulseaudio - Kodi 20.2 m. Confluence Skin
    Clients:Raspberry PI B+ mit OpenElec 5.08 Kodi Helix 14.2 und Tsop31238 Lirc mit Conrad Promo8 FB on Code VCR 0104 - Raspi3 m.OpenElec 6.03 und Kodi 15.2 Isengard

Participate now!

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