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

  • Hallo jrie,

    sorry, das habe ich übersehen.

    Werde ich gleich mal testen

    HW: Gigabyte EP41-UD3L | Core2Duo 7400 | 2GB Kingston | MSI N220GT-MD1GZ (passiv) | L4M-Twin S2 ver 6.5 mit Flex S2 | Silverstone LC16M mit iMON VFD | Samsung LE46B750
    SW: Xubuntu 14.04 3.13.0-24 | NVIDIA 304.117 | vdr 2.1.6 | softhddevice | inputlirc | lcdproc

  • Hallo jrie,

    sorry, das habe ich übersehen.

    Werde ich gleich mal testen

    Das gleiche Problem hatte ich ja auch. ^^

    Nimm eine andere Fernbedienung bzw. wenns sie prrogrammierbar ist ein anderes Layout.

    VDR_1:

    Asus J3455-M, GT 710, SSD 240GB, 8GB DDR3, 1x DvbSky S950 with yavdr-ansible (testing)

    VDR_2:

    AsRock J3455, GT 710, SSD 120GB + SATA 400GB, 8GB DDR3, 1x DvbSky S952 with yavdr-ansible (testing)

  • Man kann jetzt per Fernbedienung oder stm32IRconfig(_gui) den Empfänger rebooten. Wenn man vorher dfu-util im Loop Modus gestartet hat, wird dann die Firmware neu geflasht. So bequem war es noch nie.

    Bei eingebautem Empfänger muss man nicht mal mehr das Gehäuse öffnen :) .

    Voraussetzung: einer der neuen Bootloader und neue Firmware.

  • Hallo zusammen,

    möchte stm32IRconfig_gui unter Ubuntu (16.04.3 LTS (GNU/Linux 4.4.0-98-generic x86_64)) kompilieren, bekomme aber die folgende Fehlermeldung. Was fehlt da noch?


    Code
    1. root@chrisxbmc:/media/Daten/STM32/IRMP_STM32-master/stm32IRconfig_gui/Linux# make
    2. g++ -Wall -g -c `fox-config --cflags` `pkg-config libusb-1.0 --cflags` stm32IRconfig_gui.cpp -o stm32IRconfig_gui.o
    3. /bin/sh: 1: fox-config: not found
    4. stm32IRconfig_gui.cpp:15:16: fatal error: fx.h: Datei oder Verzeichnis nicht gefunden
    5. compilation terminated.
    6. Makefile:18: die Regel für Ziel „stm32IRconfig_gui.o" scheiterte
    7. make: *** [stm32IRconfig_gui.o] Fehler 1
    8. root@chrisxbmc:/media/Daten/STM32/IRMP_STM32-master/stm32IRconfig_gui/Linux#


    Grüße

    Christian

  • Hi,


    stm32IRconfig_gui.cpp:15:16: fatal error: fx.h: Datei oder Verzeichnis nicht gefunden

    Code
    1. sudo apt-get install libfox-1.6-dev


    Gruss

    Wolfgang

  • Hallo Wolfgang,

    libfox-1.6-dev und libusb-1.0-0-dev wurden installiert. Jetzt kommt:


    Download https://github.com/j1rie/IRMP_STM32 von gestern.

    Grüße

    Christian

  • Dann fehlt dir vermutlich noch libudev-dev.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Moinsen,


    hatte 2 Empfänger im November bei Jörg bestellt und sind gut erhalten angekommen, reibungsloser Ablauf und gute Arbeit! :)


    Bin nun endlich mal dazu gekommen die einzubauen und näher zu testen, nach ein paar Anfangsschwierigkeiten hab ich die dann erfolgreich zum Laufen gekriegt unter Easyvdr mit meiner alten MD4688 (mit irw neue keymap anlernen und irmplircd zum Futter gegeben), auch wakeup funktioniert nachdem ich 5V vom standby der PSU auf den 5V pin des USB Connectors gezogen hatte (älteres HP OEM Mainboard, liefert keinen Saft auf die USB ports im ausgeschalteten Zustand, weder über Hardware noch über Software Optionen).


    Was mich jetzt noch mal interessieren würde ist wie der TImer wakeup auf dem stm32 sich mit den VDR shutdown scripten verheiraten lässt, bzw. ob es da schon Lösungen gibt. Manuell klappt das wunderbar, wenn ich mit stm32IRalarm manuell eine Zeit in den chip schreibe, dann runterfahre -> wacht wieder genau zu der Zeit auf. Perfekt, aber wäre natürlich schön wenn man das automatisieren könnte beim Runterfahren. Ich denke mal das ist wahrscheinlich Distributionsabhängig, ich konnte diesbezüglich jedoch nirgendwo Ansätze finden im Netz. Ich hatte schon versucht eine custom shutdown config zu basteln, stoße bei den vorhandenen wakeup scripten (ACPIwakeup etc.) immer wieder auf die Variable $1 oder $2 aber komme nicht da drauf wie oder wo denn jetzt genau VDR die letzten Timerzeiten genau diesen Variablen übermittelt und wie oder wo die dann genau an den shutdown Vorgang übermittelt werden. Muss gestehen... ist schon nen Weilchen her (+10 Jahre?) das ich etwas tiefer in die Materie eingetaucht bin.


    Ist vielleicht ein Fall für das entsprechende Distributionsboard (in diesem Falle Easyvdr, plane evtl. später MLD einzusetzen), aber falls jemand von Euch Eine Idee hat wäre ich sehr dankbar!


    Ansonsten: eine sehr gute Empfänger/ wakeup Lösung und ein super Projekt! Läuft stabil, keine Probleme mit der Empfänger Reichweite und zahlreiche Erweiterungsmöglichkeiten -> top!


    Lieben Gruß,

    El gitano

  • Hallo gitano,


    danke für das Lob!


    Generell gilt:

    "$1" # time in seconds of next timer

    "$2" # time in seconds until next timer (may be negative)

    "$3" # channel recorded by next timer

    "$4" # filename for next recording

    "$5" # 1 if shutdown reqested by user


    Du brauchst also für z.B. 5 Minuten früher als nächster Aufnahmebeginn folgendes im Script:

    Code
    1. /Pfad/stm32IRalarm -d /dev/hidraw0 -s ($2 - 300)

    Siehe auch die README.

    Wenn du wie empfohlen die udev-Regel drin hast, ist das "-d /dev/hidraw0" nicht nötig.


    Herzlichen Gruß

    Jörg

  • Es hat sich ja in letzter Zeit einiges am Projekt getan und ich habe die Diskussionen einige Zeit lang nicht verfolgt.

    Gibt es irgendwo eine aktuelle Anleitung, bzw. ein paar Empfehlungen wie man einen STM32-Flasher in "Stick-Bauweise" (eloxiertes Alugehäuse) zum IR-Empfänger umbaut? Inklusive Bootloader-Installation. Welche "Variante" der Firmware ist für die Sticks empfohlen? Welcher Bootloader?

  • Jörg :

    Danke für die Auflistung der Variablen!


    Genauso nach dem Readme hatte ich die Zeiten manuell reingeschrieben, jetzt muss ich nur noch herausfinden in welchem shutdown script genau ich das reinbauen kann... da steh ich grad ein bisschen auf dem Schlauch. Rumprobieren nehme ich mal an, sind ja bald Feiertage :)

    Lieben Gruß,
    gitano

  • Bei mir ist in der /video/conf.d/vdr.conf eine Zeile

    Code
    1. --shutdown=/Pfad/zum/script

    und im script der stm32IRalarm Befehl.


    Wie das die verschiedenen Distributionen machen, weiß ich aber nicht.

  • M-Reimer :

    Bei einem Stick mit 1 LED brauchst du die StickLink Firmware, bei einem Stick mit 2 LEDs die RedLink Firmware (siehe auch config.h). Genauso beim Bootloader.


    Bei den Bootloadern hast du „maple-bootloader“ oder „STM32F103-bootloader“ aus meinem github zur Auswahl. Ich bin dabei einen dritten Besseren zu Basteln, aber in letzter Zeit keine Zeit mehr. Ist aber eher Perfektionismus, gut genug sind alle.


    Ich will in Zukunft einen Bausatz des Sticks (so wie er im Verkaufsthread zu haben ist) anbieten zum selber Löten und Schrumpfen mit detaillierten Bildern, aber erst wenn ich mehr Zeit habe.

  • Hi,

    Es hat sich ja in letzter Zeit einiges am Projekt getan und ich habe die Diskussionen einige Zeit lang nicht verfolgt.

    Gibt es irgendwo eine aktuelle Anleitung, bzw. ein paar Empfehlungen wie man einen STM32-Flasher in "Stick-Bauweise" (eloxiertes Alugehäuse) zum IR-Empfänger umbaut? Inklusive Bootloader-Installation. Welche "Variante" der Firmware ist für die Sticks empfohlen? Welcher Bootloader?

    ich habe zwar noch keinen aber ich liebäugle mit der "Stick-Bauweise" wie sie jrie anbietet. Habe ich das richtig verstanden, dass man diese direkt flashen kann? Also ohne USB-Seriell-TTL Adapter oder zweiten ST-Link V2 Emulator wie das in der IRMP auf STM32 Bauanleitung bzw. IRMP auf STM32 - ein USB IR Empfänger/Sender/Einschalter mit Wakeup-Timer beschrieben ist?


    Bin auch noch nicht sicher, ob ich den über jrie beziehe oder selbst flashe. So ein kleines Bastelprojekt hätte ja wieder mal was.


    Danke und Gruß


    Obelix


  • Der Einzige aus China, der schon einen Bootloader drauf hat, ist der Maple Mini Klon. Alle anderen brauchen extra Hardware zum Flashen.

    Der Stick kann beim ersten Mal nur mit einem anderen Stick geflasht werden.

  • Ging wie gewohnt recht einfach und auf Anhieb den unter Linux zu flashen. Erst Bootloader drauf und dann die "Stick"-Firmware für Bootloader. Jeweils mit den Binaries von github.


    Ich habe wie gehabt erst mit openocd entsperrt und dann mit st-flash geflasht. Die entsprechenden Pins habe ich einfach kurz auf den Stick gehalten.


    Mein dfu-util (vermutlich eine etwas ältere Version) hat einen Fehler geworfen:

    dfu-util: unable to read DFU status after completion


    Nach erneutem Anschluss zeigt lsusb ein Device mit der VID/PID

    1209:4444


    Wo finde ich jetzt welchen Anschluss am "Stick mit einer LED"?

  • Gibt es noch eine Möglichkeit eine LED direkt auf einen Pin anzuschließen? Sieht ja so aus als wäre die dem Reset-Feature gewichen.


    Anhand der Kommentare im Code scheint mir die Belegung am Stick mit einer LED:

    RST -> IR senden (in meinem Fall ungenutzt)

    SWDIO -> Wakeup --> Ans Mainboard mit Schutzwiderstand.

    SWIM -> IR-Eingang --> An den TSOP

    SWCLK -> Reset (in meinem Fall ungenutzt)


    Stimmt das so?

  • Mein dfu-util (vermutlich eine etwas ältere Version) hat einen Fehler geworfen:

    dfu-util: unable to read DFU status after completion

    Entscheidend ist die Zeile davor.

    Diese Zeile kommt, weil er zu schnell zur Firmware schaltet.


    Wo finde ich jetzt welchen Anschluss am "Stick mit einer LED"?

    Das steht in der config.h .


    Gibt es noch eine Möglichkeit eine LED direkt auf einen Pin anzuschließen?

    Nicht mehr beim Stick.

    Könnte man aber wieder einbauen.


    Stimmt das so?

    Ja.