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

  • Da kommt F3 und 22 ms später der Release, und 300 ms später dasselbe nochmal. Das ist natürlich nicht so schnell.

    Liegt vermutlich daran, dass du die Farbtaste Gelb genommen hast. Die Farbtasten sind bei der URC1635 laut Handbuch für Makros vorgesehen und verhalten sich anders. Bei meinem Exemplar kommen da nur einzelne Tastendrücke, auch wenn ich den Finger drauf lasse, und auch erst wenn ich loslasse. Wenn ich Stakato morse, schaffe ich selten mal 150 ms.

    Was steht bei deiner URC1635 im Batteriefach? Auch URC11-1635 R00, Y210701?


    Setze mal repeat_timeout auf 200 setzen, dann greift die Wiederholrate vom Kernel und das ist meist superschnell. Aber nicht bei den Farbtasten.

    Anpassen kann man das mit ir-keytable -D 250 -P 100 -d /dev/input/event12, falls es event12 ist.

    Poste die Ausgabe von evtest mit Taste 1, wenn du etwas länger drückst.

    Was sagt evtest beim Flirc bei derselben Taste?

    Hast du den neueren Flirc mit der schwarzen Kappe (statt durchsichtigem Gehäuse)?

    Damit der Keyboard-Empfänger sich so wie der neue Flirc verhält, muss repeat_timeout etwas grösser als die Wiederholfrequenz der Fernbedienung sein.

  • Was steht bei deiner URC1635 im Batteriefach? Auch URC11-1635 R00, Y210701?

    Bei mir steht URC11-1635 R00, Y191701


    Vermutlich ist Y... die Seriennummer.


    Quote from jrie

    Setze mal repeat_timeout auf 200 setzen, dann greift die Wiederholrate vom Kernel und das ist meist superschnell. Aber nicht bei den Farbtasten.

    Anpassen kann man das mit ir-keytable -D 250 -P 100 -d /dev/input/event12, falls es event12 ist.

    Poste die Ausgabe von evtest mit Taste 1, wenn du etwas länger drückst.


    Hey, guter Tipp. Mit repeat_timeout = 200 funktioniert Taste gelb !


    Quote from jrie

    Was sagt evtest beim Flirc bei derselben Taste?

    Hast du den neueren Flirc mit der schwarzen Kappe (statt durchsichtigem Gehäuse)?

    Damit der Keyboard-Empfänger sich so wie der neue Flirc verhält, muss repeat_timeout etwas grösser als die Wiederholfrequenz der Fernbedienung sein.


    Es handelt sich um Flirc2 USB mit schwarzen Kappe.


    evtest Flirc mit Taste gelb (=F3)

  • Beim event vom Flirc ist Delay 270 und Period 40 - 44 ms.

    Wenn du das event vom Keyboard-Empfänger auch so einstellst bzw. es per default genauso eingestellt ist, verhalten sich beide gleich.

    Du kannst noch versuchen, den repeat_timeout etwas kleiner zu machen, z.B. mal 170 testen. Je näher an 150 desto besser, aber gross genug, dass es noch funktioniert. Das optimiert den Nachlauf.

  • Habe nun repeat_timeout = 170 gesetzt. Taste mich aber noch weiter ran bzw. probiere auch mit den anderen timings weiter.


    Jetzt soll der Stick erstmal ins Gehäuse eingebaut werden. Meine USB Ports (intern/extern) liefern aber keine 5v im Standby.


    Kann ich die lila Strippe (+5VSB) vom Netzteil irgendwie alternativ verwenden?


    Das Gehäuse soll im Schrank verschwinden, d.h. TSOP Kabel ist ca. 1m lang. Habe es mit einem vorhandenem Technotrend IR Kabel auf 2,5mm Klinke probiert.

    Also in Slotblech Loch eine 2,5mm Stereo Klinken Buchse und etwas Kabel zum Verbinder Stick intern... in die Klinkenbuchse dann das IR Kabel gesteckt.

    IR funktioniert damit nur hakelig.


    IR-Kabel links im Bild:

    [Blocked Image: http://www.vdr-wiki.de/wiki/images/8/86/TT_C1500_FB.jpg]


    Verbinder Kontakte unten rechts:


    [Blocked Image: https://github.com/j1rie/IRMP_STM32/blob/master/hardware/Stick1_jr1_top.png?raw=true]


    Und dazwischen eine 2,5mm Stereo Klinkenbuchse.


    Wahrscheinlich Kabel zu lang? Am besten die Platine mit Widerstand und Kondensator dichter an IR Diode setzen?

  • Hi Rossi

    Die 5 Volt vom Netzteil zu nehmen das geht

    Die 5 Volt kommen aber nur an der USB Stick

    Und auf keinen Fall

    An den internen oder Externen USB Port.

    Siehe auch in meinen Verkaufstread

    Gruß 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.5 m. Confluence Skin
    Clients:Div. Raspberry PI

    Fernbedienungsempfänger: Siehe hier:RP 2040 Zero I.R. Empfänger kompl.

  • Siehe hier und da.


    Wir wissen ja nicht, wie das TT-Kabel innen aufgebaut ist, ob da nur ein TSOP ist oder noch anderes.

    Einen Versuch wäre es wert, mal an die 5V vom Stick zu gehen, statt an die 3V3.

  • Ok, danke für die Links.


    Habe den Stick intern per InLine 33440B USB Kabel angeschlossen. Pfostenstecker auf Mainboard werden einzeln gesteckt.

    Ziehe den 5v Pin hier ab und verbinde ihn direkt mit der lila Strippe vom Netzteil Stecker?


    Tsop gefiel mir per Klinkenbuchse. Von den TT-Kabeln habe ich mehrere da, eins funktioniert nach gleichem Prinzip an einem Raspberry per GPO.

    Naja, probiere alternativ ein selbst gelötetes tsop Kabel.

  • Ziehe den 5v Pin hier ab und verbinde ihn direkt mit der lila Strippe vom Netzteil Stecker?

    Genau.



    Von den TT-Kabeln habe ich mehrere da, eins funktioniert nach gleichem Prinzip an einem Raspberry per GPO.

    Mit wieviel Volt versorgt?

    Ältere TSOPs brauchen 5V und Neuere, die 3,3V brauchen verkraften auch 5V.

  • Gut, Stromversorgung ist jetzt gelegt.


    In welche Leitung vom Power Switch schleife ich ein? Oder anders, wie finde ich heraus welche von den beiden + ist?

    Dokumentation über Pinbelegung (HP Kabel 810638-001) konnte ich keine finden.

    Gemessen sind es zwei weiße Kabel vom Schalter. Keine der beiden Mainboardpins darunter hat Masse.


    Reicht es nur die + Leitung vom Verbinder Kontakt unten links zu nehmen?


    [Blocked Image: https://github.com/j1rie/IRMP_STM32/blob/master/hardware/Stick1_jr1_bot.png?raw=true]


    Mit wieviel Volt versorgt?

    Ältere TSOPs brauchen 5V und Neuere, die 3,3V brauchen verkraften auch 5V.

    Über die Raspberry GPIO Pins mit 3,3v

  • Oder anders, wie finde ich heraus welche von den beiden + ist?

    Dokumentation über Pinbelegung (HP Kabel 810638-001) konnte ich keine finden.

    Gemessen sind es zwei weiße Kabel vom Schalter. Keine der beiden Mainboardpins darunter hat Masse.

    Wenn du Pech hast, könnte das bedeuten, dass du einen Optokoppler brauchst.


    Reicht es nur die + Leitung vom Verbinder Kontakt unten links zu nehmen?

    Wenn du Glück hast, ja.


    Mehr dazu hier.

  • Zum Überprüfen, ob man den Optokoppler weglassen kann, macht man folgenden Test an den Einschaltpins des Mainboards.

    Man misst, ob der eine Pin an Masse liegt und ob der andere ca. +3,3V oder +5V führt. Dann schließt man beide über ein Multimeter kurz, und misst den Strom. Der beträgt üblicherweise nur wenige mA, und solange es unter 25mA sind, ist der Test bestanden.

    Perfektionisten können ein hoch gedrehtes Poti an beide Pins klemmen, es langsam herunter drehen und messen, ab welchem Widerstand das Board einschaltet. Dann kann man einen entsprechenden Schutzwiderstand nehmen. Sonst nimmt man 220 Ohm, nachdem man geprüft hat, dass das Board an geht, wenn man beide Pins damit überbrückt. Wer sich sicher ist, dass er sich beim Zusammenstecken nie vertut, kann den Widerstand auch weglassen.

    An der Stelle komme ich nicht weiter: Beide weißen Kabel vom Schalter (abgehend) münden auf den Einschaltpins des Mainboards. Keiner der beiden Pins hat Kontakt mit Masse!?

    Probiere sonst einfach beide Kabel abwechselnd anzuritzen und mit + der Verbinderplatine zu verlöten.

    Edited once, last by vdr_rossi ().

  • Hatte Glück und habe im ersten Anlauf das richtige Power Switch Kabel angeritzt. Eine Litze zur + Leitung vom Verbinder (SW+ Kontakt unten links) genügte.

    5v am USB kommen vom Netzteil Standby (lila Kabel). Optimierung ist noch TSOP über Klinke aus dem Gehäuse zu führen. Betrieb aktuell ohne Gehäusedeckel.


    Bedeutet mein stm32 Stick (KBD Firmware) läuft jetzt im Produktivsystem.


    Danke für den Support und die Geduld mir mir!


    Zum Winter bekommen alle meine Sticks dieser Firmware geflasht...

  • Was Optokoppler betrifft, stehen Infos hier und danach, sowie dort.


    @M-Reimer's Idee des SimpleCircuit funktioniert meistens, aber nicht immer. Ich bin deswegen schließlich beim Verkauf auf Optokoppler umgestiegen, um jeglichem Stress aus dem Weg zu gehen. Kostet auch nur ein paar Cent mehr.

    Gibt es aber leider nicht mehr fertig zu kaufen. Zuletzt habe ich die Platinen bei OSH-Park bestellt, das war auch in kleinen Mengen preiswert und die Optokoppler kamen aus China.


    An die vorhandene Platine anlöten geht so:


    Das geht mit der SC Firmware. Die Polung muss beachtet werden (PC+, PC-).

  • Mein HID KBD Device wird dauerhaft vom Netzteil mit 5v versorgt.


    Computer ist aus. Wenn ich nun andere Tasten, als die Wakeup Taste, drücke blinkt die LED. Danach geht einschalten mit der eigentlichen Wakeup Taste nicht mehr.

    Nun muss ich den Stick einmal abziehen. Dann funktioniert Wakeup wieder, aber es darf nur die eigentliche Wakeup Taste gedrückt/benutzt werden.


    Gruß

  • Danke für den Fehlerbericht.

    Mir war auch schon aufgefallen, dass nach Basteln an Firmware und Konfig-Programm (mit vielem IR senden) mein VDR nicht mehr an geht, hatte mir nur noch nicht die Zeit genommen, dem nachzugehen.

    Es ist tatsächlich so, dass wenn vorher was empfangen wurde, er sich nicht mehr einschalten lässt. Das gilt auch für die irmplircd-Version.


    Ich habe den Fehler gefunden, es gibt neue Firmware (allerdings noch keine Zeit zum Testen gehabt).

  • Firmware ist drin. Testen übernehme ich ;)

  • Ich habe die ganze Software stark überarbeitet und verbessert und auch viel getestet.

    Deswegen erhöhe ich den Status von Beta auf Produktiv :)

    Trotzdem kann gerade bei allem Neuem noch ein Fehler drin sein.


    Highlight:

    Es gibt jetzt den "keyboard + irdata"-Modus. Damit kann man durch Tastendruck auf der Tastatur und Tastendruck auf der Fernbedienung die Zuordnungen konfigurieren. Das finde ich noch besser als beim Flirc und einfacher geht's wohl nicht mehr.

    Die rote Schrift ist die Benutzerführung.


    Wenn man den Knopf zweimal drückt, werden Tastaturtastendrücke angezeigt (zum Ausprobieren welche gehen) sowie unter Windows bereits konfigurierte Knöpfe der Fernbedienung, wenn man sie drückt (unter Linux braucht man dazu evtest).





    Das Timeout für die Fernbedienung bei "set by remote" habe ich auf 15 Sekunden erhöht, damit man das in aller Ruhe machen kann.

    Falls das aber zu viel ist, würde ich das wieder absenken. Da bräuchte ich mal Feedback.


    Wie immer sind Feedback, weitere Wünsche und Ideen für Verbesserungen willkommen.

  • Moin, planst Du die Keyboard Firmware auch für den Raspberry Pi Pico umzusetzen?

Participate now!

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