GPIO-Buttons Dienst startet nicht

    • Offizieller Beitrag

    Hifiberry Miniamp wird auch richtig erkannt, aber weder über die Web-App noch über Testsound gibts irgendwas aus den Boxen.

    Liegt vielleicht hieran:

    # This script will block any I2S DAC e.g. from Hifiberry, Justboom, ES9023, PCM5102A
    # due to the assignment of GPIO 19 and 21 to a buttons

    :conf: Aber ich verwende keine Miniamp um das testen zu können.

  • Hm, ich habe aber extra auch keine GPIOs 19-21 belegt.

    Fakt is also gerade: Wenn Skript geht, geht Hifiberry nicht, wenn Hifiberry geht, geht Skript nicht.

    Hm. Ich finde nur leider den Fehler im Skript nicht. Ich acker mich gerade schon wieder Zeile für Zeile durch, was den Hifiberry blockiert, aber ich seh es nicht ;(:wallbash:

  • Also, auf der Hifiberry-Seite steht:

    Zitat

    GPIOs 18-21 (pins 12, 35, 38 and 40) are used for the sound interface. GPIO16 can be used to mute the power stage. GPIO26 shuts down the power stage. You can’t use these GPIOs for any other purpose.

    Habe jedoch keinen dieser Pins und auch keinen der GPIOs in Verwendung. Auch der On/Off-Shim belegt keinen der von mir im Skript angegebenen.

  • Hi,

    das Script sieht eigentlich aus wie eh und je, ok, es gibt Anpassungen die mir wieder neu sind, aber woran das nicht liegen sollte. Ich weiß, dass irgendwie das Rotary-Thema mal was zerschossen hatte. Da mussten auch sämtliche GPIOs deaktiviert werden.

    Generell bin ich ein großer Fan von dem Projekt, man gibt sich im Rahmen der Fähigkeiten Mühe, aber es sind wie hyle schon sagt keine oder wenige Fachmänner. Meine Vorschläge haben nicht wirklich Anklang gefunden und ich lass die da jetzt auch schön machen...

    Thema Fachmänner: Dazu zähle ich mich auch nicht, hyle würde mir mein Displayscript links und rechts um die Ohren ballern ;)

    Zum Bugfixing würde ich vorschlagen Button für Buttons alle auzukommentieren und nach und nach den Fehler einzugrenzen.

    Sorry, kann aktuell nicht viel beitragen!

  • Folgende Buttons musst du alle in /home/pi/RPi-Jukebox-RFID/scripts/gpio-buttons.py vergeben.

    Code
    # Define the used pins of the raspberry board
    btn_shut = 3
    btn_vol0 = 13
    btn_volU = 16
    btn_volD = 19
    btn_next = 26
    btn_prev = 20
    btn_halt = 21
    led_power = 12

    Du darfst hier keine Zeile auskommentieren oder GPIOs welche anderweitig belegt sind ansteuern. Buttons die du nicht brauchst/hast musst du trotzdem einem freien GPIO deiner Wahl zuordnen. Ansonsten startet der Dienst nicht, oder du hast keinen Sound.

    Ausser der Zahl für deine GPIOs darfst du auch nichts am Syntax verändern. (Und nicht vergessen, GPIOs, nicht Pins!)

    Zur Visualisierung kannst du dir auch von deinem Raspberry Modell den Pinout ausdrucken und dir die bereits durch MiniAMP,OnOffShim etc. belgten GPIOs markieren. Dann fällt die Wahl leichter :)

    Code
    # btn_rfidoff =
    # reco =
    # play =

    Lediglich diese 3 Einträge können so auskommentiert bleiben. Viel Erfolg.

    • Offizieller Beitrag

    kasi622 Nein, man muss nicht alle GPIO verwenden. Man muss nur alles, was zu dem Pin (am besten auch den Rattenschwanz an Funktionen) im Skript ist auskommentieren. Hier RE: Phoniebox mit WM8960 Hi-Fi HAT, OnOff SHIM, RC522, Rotary und Buttons hatte ich mal etwas dazu geschrieben.

    splitti79 Ich bin auch kein Fachmann, aber gewisse Standards einer Sprache die man verwendet, sollte man schon kennen. ;)

    //Nachtrag: Ich habe übrigens auch den RotaryEncoder in Vertdacht.

  • kasi622 Nein, man muss nicht alle GPIO verwenden. Man muss nur alles, was zu dem Pin (am besten auch den Rattenschwanz an Funktionen) im Skript ist auskommentieren. Hier RE: Phoniebox mit WM8960 Hi-Fi HAT, OnOff SHIM, RC522, Rotary und Buttons hatte ich mal etwas dazu geschrieben.

    Ja ist richtig. Aber hatte vor kurzem das selbe Problem und am einfachsten ist es, einfach die GPIOs zu definieren und alles andere unberührt zu lassen. Es muss auch nichts an der RotaryEncode geändert werden und der Boxbauer hat erstmal Spaß.

    Hinterher kann man ja immer noch weitere Änderungen vornehmen. Hauptsache die Kiste läuft erstmal, ist meine Intention.

    Aber klar, ist nicht die saubere Lösung, dafür schnell und kaum fehleranfällig :)

  • kasi622 Das Problem hier ist meiner Meinung nach eine schlechte Umsetzung. Eine if-Abfrage, ob ein GPIO nun eingetragen ist oder nicht und gut ist. Hier hat man mit guter Absicht Sachen verbessert, aber nicht an allen Stellen über den Tellerrand geschaut. Ich hab leider kaum die Zeit zu unterstützen, dabei hätte ich richtig Bock dazu!

    Ich persönlich würde lieber die überflüssigen Sachen auskommentieren, weniger Abfragen, die man ja nicht benötigt. Ich hätte z.B. nicht mal mehr nen GPIO frei dafür und Deine Lösung wäre hier hinfällig!

    hyle

    Leider findet man gerade bei python eher zu viel, zu viel und dann noch zu viel altes... Das hat mir auch schon das "Genick" gebrochen. Ich war stets bemüht mit meinem Scriptwissen ordentlich zu arbeiten, aber nennen wir es mal akzeptabel ;)

  • Guten Abend zusammen,

    Ich habe mir die neue Software der Phoniebox auf eine sd Karte mit dem aktuellen Buster installiert und den onoff shim montiert (habe die Box vorher schon mit der älteren Version in Betrieb gehabt.).

    Mein Problem ist, ich kann den gpio Dienst in den Einstellungen nicht aktivieren. Habe bei der Software Installation die gpios aktiviert und wenn ich in der webgui in den Einstellungen die gpio aktiviere und aktualisiere, sind sie erneut deaktiviert.

    Gibt es mittlerweile dazu schon etwas neues wie ich die Buttons zum laufen bekomme?

    Liebe Grüße

    Dodo

  • Hi,

    ich hänge mich jetzt mal an das Thema an, da ich schon seit Tagen mit dem Thema kämpfe.

    Ich habe das neuste Phonieboxsystem aufgesetzt.

    Beginne ich mit dem in diesem Threat empfohlenen

    Code
    sudo systemctl status phoniebox-gpio-buttons

    Bekomme ich folgende Meldung:

    Unit phoniebox-gpio-buttons.service could not be found.

    Weiterhin kann ich meine Box mit dem OnOff Shim nicht runterfahren - ich bin aktuell der Meinung dass die beiden Fehler zusammen gehören ?!

    Ich habe die Autostartoperationen von

    https://github.com/MiczFlor/RPi-J…NFIGURE-stretch

    durchgeführt, aber wie gesagt scheinbar läuft der GPIO dienst gar nicht.

    Irgendwie verstehe ich allerdings nicht dass mir

    Code
    systemctl list-units --type=service

    widerum folgendes ausgibt:

    Code
    phoniebox-gpio-control.service                            loaded active running Phoniebox GPIO Control Se
      phoniebox-rfid-reader.service                             loaded active running Phoniebox RFID-Reader Ser
      phoniebox-startup-scripts.service                         loaded active exited  Phoniebox Startup        
    ● phoniebox-startup-sound.service                           loaded failed failed  Phoniebox Startup Sound  

    Was mich noch stutziger macht, ich habe die GPIOs in der gpio_settings.ini

    Wie folgt belegt:

    Spoiler anzeigen

    #[DEFAULT]

    #enabled: True

    #[VolumeControl]

    #enabled: False

    #Type: TwoButtonControl ;or RotaryEncoder

    #PinUp: 5

    #PinDown: 6

    #pull_up: True

    #hold_time: 0.3

    #hold_repeat: True

    #timeBase: 0.1 ;only for RotaryEncoder

    #functionCallDown: functionCallVolD

    #functionCallUp: functionCallVolU

    #functionCallTwoButtons: functionCallVol0 ;only for TwoButtonControl

    #[PrevNextControl]

    #enabled: False

    #Type: TwoButtonControl

    #Pin1: 22

    #Pin2: 23

    #functionCall1: functionCallPlayerPrev

    #functionCall2: functionCallPlayerNext

    #functionCallTwoButtons: None

    #pull_up: True

    #hold_time: 0.3

    #hold_repeat: False

    [PlayPause]

    enabled: true

    Type: Button

    Pin: 12

    pull_up: True

    hold_time: 0.3

    functionCall: functionCallPlayerPause

    [Shutdown]

    enabled: true

    Type: Button

    Pin: 3

    pull_up: True

    hold_time: 2

    functionCall: functionCallShutdown

    #[Volume0]

    #enabled: False

    #Type: Button

    #Pin: 17

    #pull_up: True

    #hold_time: 0.3

    #functionCall: functionCallVol0

    [VolumeUp]

    enabled: true

    Type: Button

    Pin: 16

    pull_up: True

    hold_time: 0.3

    hold_repeat: True

    functionCall: functionCallVolU

    [VolumeDown]

    enabled: true

    Type: Button

    Pin: 13

    pull_up: True

    hold_time: 0.3

    hold_repeat: True

    functionCall: functionCallVolD

    [NextSong]

    enabled: true

    Type: Button

    Pin: 26

    pull_up: True

    hold_time: 0.3

    functionCall: functionCallPlayerNext

    [PrevSong]

    enabled: true

    Type: Button

    Pin: 27

    pull_up: True

    hold_time: 0.3

    functionCall: functionCallPlayerPrev

    #[Halt]

    #enabled: False

    #Type: Button

    #Pin: 21

    #pull_up: True

    #hold_time: 0.3

    ##functionCall: functionCallPlayerPauseForce

    Einer meiner Buttons tut etwas, aber nichts was er soll. DEr PIN27 der eigentlich zurückspulen sollte schaltet PAUSE.

    2 Mal editiert, zuletzt von moerbischlumpf (14. November 2020 um 12:07)

  • Hallo moerbischlumpf,

    ich verstehe deine Verwirrung, bei der neueste Version von Jukebox4Kids wurde der Service umbenannt. Daher findest du auch phoniebox-gpio-buttons nicht mehr.

    Der Service heißt jetzt phoniebox-gpio-control und läuft bei dir ja bereits.

    Was deine Buttons angeht tippe ich mal darauf, das du die Datei gpio_settings.ini in dem Verzeichnis /home/pi/RPi-Jukebox-RFID/settings nutzt. Diese wird aufgrund eines Bugs in der neuesten Version nicht genutzt.

    Entweder du passt eine Datei der Jukebox4Kids an (Link) oder du nutzt die Datei gpio_settings.ini im Pfad /home/pi/.config/phoniebox
    Dann sollten die Buttons einwandfrei funktionieren.

    In der Standardeinstellung der Datei /home/pi/.config/phoniebox/gpio_settings.ini ist Play/Pause auf GPIO27 gelegt, daher reagiert dein Button jetzt so merkwürdig.

    Was den OnOffShim angeht, den hast du nach Anleitung installiert?
    Hast du die Datei sudo nano /etc/cleanshutd.conf angepasst und den Button entsprechend angeschlossen?

    Gruß
    Sascha

  • Hi Sascha,

    danke für die Erklärung.

    Den OnOff Shim habe ich wie beschrieben installiert unf auch die Datei angepasst - ich sliefer das ggf die Tage mal nach. Ich habe heute mit einer zweiten SD Karte das System ohne Phoniebox aufgesetzt - der ONOffShim funktioniert auch da nciht wie er soll - ich habe einen neuen bestellt, vielleicht habe ich ihn doch etwas zu sehr gegrillt beim Löten.

    Bzgl der GPIOs, habe die Thematik verstanden.

    Beide Varianten probiert. Scheinbar habe ich noch ein Problem mit der gpio_settings.ini

    So schaut die Datei jetzt aus:

    Spoiler anzeigen

    [DEFAULT]

    enabled: True

    [VolumeControl]

    #enabled: True

    #Type: TwoButtonControl ;or RotaryEncoder

    #PinUp: 5

    #PinDown: 6

    #pull_up: True

    #hold_time: 0.3

    #hold_repeat: True

    #timeBase: 0.1 ;only for RotaryEncoder

    #functionCallDown: functionCallVolD

    #functionCallUp: functionCallVolU

    #functionCallTwoButtons: functionCallVol0 ;only for TwoButtonControl

    [PrevNextControl]

    #enabled: True

    #Type: TwoButtonControl

    #Pin1: 22

    #Pin2: 23

    #functionCall1: functionCallPlayerPrev

    #functionCall2: functionCallPlayerNext

    #functionCallTwoButtons: None

    #pull_up: True

    #hold_time: 0.3

    #hold_repeat: False

    [PlayPause]

    enabled: True

    Type: Button

    Pin: 12

    pull_up: True

    hold_time: 0.3

    functionCall: functionCallPlayerPause

    [Shutdown]

    #enabled: False

    #Type: Button

    #Pin: 3

    #pull_up: True

    #hold_time: 2

    f#unctionCall: functionCallShutdown

    [Volume0]

    #enabled: False

    #Type: Button

    #Pin: 17

    #pull_up: True

    #hold_time: 0.3

    #functionCall: functionCallVol0

    [VolumeUp]

    enabled: True

    Type: Button

    Pin: 16

    pull_up: True

    hold_time: 0.3

    hold_repeat: True

    functionCall: functionCallVolU

    [VolumeDown]

    enabled: True

    Type: Button

    Pin: 13

    pull_up: True

    hold_time: 0.3

    hold_repeat: True

    functionCall: functionCallVolD

    [NextSong]

    enabled: True

    Type: Button

    Pin: 26

    pull_up: True

    hold_time: 0.3

    functionCall: functionCallPlayerNext

    [PrevSong]

    enabled: True

    Type: Button

    Pin: 27

    pull_up: True

    hold_time: 0.3

    functionCall: functionCallPlayerPrev

    [Halt]

    #enabled: False

    #Type: Button

    #Pin: 21

    #pull_up: True

    #hold_time: 0.3

    #functionCall: functionCallPlayerPauseForce


    Das gibt mir der Test aus

    Spoiler anzeigen

    phoniebox-gpio-control.service - Phoniebox GPIO Control Service

    Loaded: loaded (/etc/systemd/system/phoniebox-gpio-control.service; enabled;

    Active: active (running) since Sat 2020-11-14 22:56:29 CET; 2s ago

    Main PID: 17659 (python3)

    Tasks: 2 (limit: 2063)

    CGroup: /system.slice/phoniebox-gpio-control.service

    └─17659 python3 /home/pi/RPi-Jukebox-RFID/components/gpio_control/gpi

    Nov 14 22:56:29 raspberrypi PhonieboxGPIOControl[17659]: WARNING:root:cannot fin

    Nov 14 22:56:29 raspberrypi PhonieboxGPIOControl[17659]: WARNING:root:Could not

    Nov 14 22:56:29 raspberrypi PhonieboxGPIOControl[17659]: INFO:root:adding GPIO-D

    Nov 14 22:56:29 raspberrypi PhonieboxGPIOControl[17659]: INFO:root:adding GPIO-D

    Nov 14 22:56:29 raspberrypi PhonieboxGPIOControl[17659]: INFO:root:adding GPIO-D

    Nov 14 22:56:29 raspberrypi PhonieboxGPIOControl[17659]: INFO:root:adding GPIO-D

    Nov 14 22:56:29 raspberrypi PhonieboxGPIOControl[17659]: INFO:root:adding GPIO-D

    Nov 14 22:56:29 raspberrypi PhonieboxGPIOControl[17659]: WARNING:root:cannot fin

    Nov 14 22:56:29 raspberrypi PhonieboxGPIOControl[17659]: WARNING:root:Could not

    Nov 14 22:56:29 raspberrypi PhonieboxGPIOControl[17659]: INFO:root:Ready for tak

    lines 1-18/18 (END)


    Wenn ich die Datei so nutze ist der Ton vom Hifiberry weg - das riecht ja nach einem Konfklikt, ich sehe ihn aber nicht.

    Vor und zurück, Pause, VolDown funktioniert mit diesem Setup, VolumeUP nicht. Hatte schon getippt dass 16 die Probleme macht, aber auskommentieren führt nicht dazu dass der Ton wieder da ist.

    Einmal editiert, zuletzt von moerbischlumpf (14. November 2020 um 22:57)

  • Hi,

    bitte stelle mal in seiner gpio_settings.ini bei VolumeControl und PrevNextControl enabled: false ein.

    Ansonsten hast du die Volume Buttons und die Prev/Next Buttons mehrfach drin.

    Hier mal meine funktionierende gpio_settings.ini


    Nach der Änderung der Datei einfach
    sudo systemctl restart phoniebox-gpio-control eingeben oder alternativ die Phoniebox neustarten.

    Die Statusmeldung spuckt ja auch Fehlermeldungen aus, leider hast du die abgeschnitten. Mach dazu einfach das Terminalfenster größer, dann zeigt es die komplette meldung.

    Gruß
    Sascha

  • Ups, überlesen.

    Allerdings ist enable:false der bessere Weg.

    Ich gehe davon aus, dass # nicht funktioniert, da das Script diese Ini Datei durchschaut.

    Für die jeweiligen Abschnitte fehlen ihm beim Auskommentieren jetzt die Werte, das wird auch sicherlich in einer Fehlermeldung zu sehen sein.

    Teste doch einfach mal wie beschrieben aus.

    Gruß

    Sascha

  • Ich habe den Code von dem Programm nicht gelesen, aber wenn man einfach irgendwas auskommentiert, gibt es zwei Möglichkeiten:

    • Ein Standardwert aus einer anderen Config oder dem Quellcode wird verwendet. Meist das Gegenteil von dem, was man will.
    • Programm bricht ab, da der Entwickler dafür keine Fehlerbehandlung hat und diesen Wert aber erwartet.

    Ich tippe auf Standardwert.

  • Hi,

    also Auskommentieren in der ini war wohl das Hauptroblem. Der Ton ist jetzt wieder da.

    VolUP funktioniert noch nicht, ich vermute hier aber eher ein Problem in meiner Platine oder im Kabel, hatte mal mit VolDown gewecheselt da geht das dann nicht mehr.

    Habe bei den Volums jetzt aber noch ein Problem entdeckt. In der Weboberfläche habe ich Change 5% eingestellt, mit meinen für Volume programierten RFIDs passiert genau das. Bei den Buttons geht es immer bei Down auf 1% oder bei UP auf das eingestellte Maximum. Hat dafür noch jemand eine Idee? Ich kann notfalls allerdings auch damit leben diese Buttons wegzulassen, ich glaube mein Kind wird so schnell die Lautstärke nicht oft ändern müssen und wenn wir als Eltern dann die "Mastercard" haben ist das durchaus auch eine Option.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!