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

  • Obwohl er vorher den Flashvorgang mit ok bestätigt hat...

    Zeig bitte mal einen Screenshot davon.

    Zumindest habe ich nach reconnect eine andere Belegung im Stick

    Dann geht was schief.

    Wenn du in die debug messages klickst, alles kopierst und in einen Editor einfügst, kann man sich angucken, was da passiert.

    Bitte poste das.


    Was du nach "get eeprom" siehst, muss auch so in evtest ankommen. Sonst ist in deinem System ein grundsätzlicher Wurm drin ;)

  • In deiner stm32_kbd_yavdr_ansible.map.txt steht:

    Code
    070015001400 ff|ctrl+KEY_T
    070015001500 ff|ctrl+KEY_E
    070015001600 ff|ctrl+KEY_M
    070015001700 ff|ctrl+KEY_I


    In der template.map steht, wie es heissen müsste:

    Code
    ffffffffffff KEY_LEFTCTRL|KEY_T#red
    ffffffffffff KEY_LEFTCTRL|KEY_E#green
    ffffffffffff KEY_LEFTCTRL|KEY_M#yellow
    ffffffffffff KEY_LEFTCTRL|KEY_I#blue


    Meiner Erfahrung nach, ist das Programm etwäs mäkelig - wenn z.B. das Format nicht passt.

    Naja, das Format sollte schon passen ;)

    Halte dich an die template.map, dann klappt es auch.

  • Was vor dem "|" steht, ist der modifier, was danach steht ist der Key, der durch den modifier verändert wird (z.B. bei Großschreibung). # und danach ist Kommentar, kann man weglassen und ist nach auslesen sowieso weg, ist nur für die Erklärung in der template.map gut.


    Sicherer ist es, nicht direkt im eeprom_map Textfeld zu editieren (obwohl das natürlich auch geht), sondern die Eingabefelder "modifier" und "key" zu benutzen und dann die set - key Taste, so wie es in der Anleitung steht.


  • Dann geht was schief.

    Wenn du in die debug messages klickst, alles kopierst und in einen Editor einfügst, kann man sich angucken, was da passiert.

    Bitte poste das.

    Ok, Formatfehler ist angepasst. Hatte da was mit der oben genannten evmap durcheinander bekommen.

    Diese Konfig bekomme ich ebenfalls nicht in den Stick.


    Debog Log Ausgabe im Anhang. Da steht am Ende ein ok...

    Mit get eeprom kommt was ganz anderes raus.

    Files

  • Bin gerade dabei die Konfig nochmal komplett neu mit dem template zu machen...

    Das gewünschte get eeprom File im Anhang.

    Files

  • Da sind viele nutzlose Einträge drin.

    Sauber neu machen ist eine gute Idee.


    Wenn das, was du flasht, und das, was du ausliest nicht übereinstimmt, vergleichst du beide Dateien und guckst dir die Unterschiede an. Dann siehst du, wo der Fehler liegt.


    Wenn du dich an die Anleitung hältst, sollten solche Fehler eigentlich nicht entstehen ;)

  • Irgendwie ist das nicht Idiotensicher genug.


    Selbst wenn ich das Template Textfile (im Editor) mit den Werten fülle und dann eeprom Map, Open File mache.

    Geht das schief, siehe Debug Log im Anhang.

    Files

  • Irgendwie ist das nicht Idiotensicher genug.

    Wo gibt es denn in creating-an-eeprom-map Raum für Missverständnisse?


    Selbst wenn ich das Template Textfile (im Editor) mit den Werten fülle und dann eeprom Map, Open File mache.


    Geht das schief

    Dieses Vorgehen würde ich keinem Empfehlen. Halte dich lieber an die Anleitung.

    Oder war das ein Missverständnis? "Open the template keymap" meint die originale template.map (und nicht etwas von dir bearbeitetes).


    Die zweiter_versuch_nach_template.txt sieht eigentlich gut aus bis auf ein Problem, von Zeile 29 bis 61 ist da alter Müll drin geblieben.

    Zwei Lösungen gibt es dafür: ZEROS flashen oder lieber

    Zeile 29 bis 61 mit reset - key und reset - irdata zurücksetzen und dann flashen.

    Wenn man die eeprom map erst einmal "verpfuscht" hat (ist mir beim Entwickeln oft passiert), gibt es leider keine einfachere Verfahrensweise.

    ZEROS flashen geht zwar schneller, ist aber eventuell nicht "idiotensicher".

  • Ah jetzt ja!

    Verpfuscht passt, siehe auch diesen Beitrag


    Wenn ich meine final.map lade, der Cursor blinkt in Zeile 29, Klick auf reset irdata oder key - schwups stürtzt stm32kbdIRconfig_gui.exe ab.

    Die angehängte Datei flashed er, es wird aber nach wie vor was anderes ausgelesen...


    Ein Button unter reset, clear all (oder so) - wäre gut :)


    ZEROS flashen, stelle ich wie an? Den Inhalt per Zwischenablage in eine Textdatei, diese über open File laden und flash eeprom - funktioniert nicht.

  • Nochmal zum Template.

    D.h. im Umkehrschluss, wenn man da nachträglich Zeilen rausnimmt, landet man ebenfalls in diesem Zustand?

    Edited once, last by vdr_rossi ().

  • Wenn ich meine final.map lade, der Cursor blinkt in Zeile 29, Klick auf reset irdata oder key - schwups stürtzt stm32kbdIRconfig_gui.exe ab.

    Vielleicht wieder ein Missverständnis, lade nicht final.map, sondern anschliessen bzw. get - eeprom, und dann resetten.

    Die angehängte Datei flashed er, es wird aber nach wie vor was anderes ausgelesen..

    Ach ja, ich hatte vergessen, dass das so nicht mehr geht. Deswegen die ZEROS.


    Ein Button unter reset, clear all (oder so) - wäre gut

    Ja, müsste ich mal einbauen.


    ZEROS flashen, stelle ich wie an?

    Mit dfu-util, aber wenn du da Fehler machst, kannst du schlimmstenfalls den Bootloader beschädigen, und dann muss ein Profi ran.


    Nochmal zum Template.


    D.h. im Umkehrschluss, wenn man da nachträglich Zeilen rausnimmt, landet man ebenfalls in diesem Zustand?

    Nein, nur wenn schon Müll drin ist.

  • Ok, danke für die Infos.


    Habe mit einem zweiten Stick nochmal von vorne angefangen. Auf der Rechten Seiten wurden erst alles nur ffffffffffff ff ausgelesen.

    Das original Template in eine Textdatei kopiert, open File und angefangen die ersten Tasten zu belegen (1. Methode laut Anleitung).

    Cursor blinkt vor ffffffffffff, set by remote - irdata, nächste Zeile - schon bei der 3 Taste (Ziffer 2) springt er auf mal eine Zeile höher und setzt den FB Code da ein...


    Ich mache für heute Schluß.

    Edited once, last by vdr_rossi ().

  • Auf der Rechten Seiten wurden erst alles nur ffffffffffff ff ausgelesen.

    Das sollte aber ffffffffffff ff|ff sein.


    Das original Template in eine Textdatei kopiert,

    Warum das? Nimm lieber das Original.


    Cursor blinkt vor ffffffffffff, set by remote - irdata, nächste Zeile - schon bei der 3 Taste (Ziffer 2) springt er auf mal eine Zeile höher und setzt den FB Code da ein...

    Das sollte nicht sein. Hast du irgendwas mit der Maus oder der Tastatur gemacht?

    Das kann aber auch an falschen Umbrüchen liegen, wenn beim Kopieren des template sich Zeilenumbrüche verändert haben.

  • Weiter gehts.


    Ja, es steht rechts komplett ffffffffffff ff|ff drin. Hatte ich nicht richtig per kopieren/einfügen geschrieben.

    Ausserdem habe ich die original template.map direkt, per Raw -> Ziel speichern, verwendet.


    Im neuen stm32kbdIRconfig_gui.exe, erst die eeprom map resettet, dann open file, template.map geladen und Tasten belegt.

    Das passt jetzt :) die ausgelesenen Werte passen zu den geflashten. Ist jetzt Idiotensicherer geworden.
    Diese (selbstgemachte) Hürde ist genommen.


    Auf meinem yavdr ansible Testsystem kommen nach wie vor nur vereinzelt Tasten an.

    Geprüft wie von seahawk1986 geschrieben

    Quote

    Stop mal eventlircd und schau dir mit evtest an, was da für "rohe" Tastendrücke ankommen:

    systemctl mask --runtime --now eventlircd.{socket,service}


    sudo evtest (muss ggf. auf dem gleichnamigen Paket installiert werden, dann den IRMP-Empfänger auswählen).

    Ergebiss:

    Komisch ist ausserdem, auf mal läuft eine Taste amok. Die wird dann ununterbrochen wiederholt ohne das ich was auf der FB drücke.

    Um es zu verifizieren, habe ich den zweiten Stick auch neu geflashed und das gleiche Ergebniss...

    Die selbe FB funktioniert an meinem produktiv System problemlos. Im selben Raum. Das Produktivsystem ist bei den Tests ausgeschaltet.


    Bei jedem FB Tastendruck - leuchtet auf dem Stick die kleine LED.


    Schwere Geburt.

  • Möglicherweise ist auch in die repeat timings Müll rein gekommen.

    Was steht bei dir als repeat delay, repeat period und repeat timeout?

    Amok entsteht z.B., wenn bei repeat timeout eine Null rein gekommen ist, dann bleibt die Taste unten und Taste hoch geht unter.


    Setzte mal die Werte, die unten in Link stehen.

  • Kann sein.

    Was steht bei dir als repeat delay, repeat period und repeat timeout?

    Wie/wo komme ich an diese Werte?

    Get repeat habe ich gefunden, siehe Bild anbei.


    Daraus ergibt sich dann wie ich Werte setze.

    Images

Participate now!

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