Peppy WebRadio

L I V E Stammtisch ab 20:30 Uhr im Chat
  • DISPLAY=:0.0 xinput_calibrator


    eingegeben => unable to connect to x-server

    Frage: läuft bei Dir der Desktop/GUI (=grafische Oberfläche)?

    bei mir sieht es so aus:

    Achtung:

    xinput_calibrator zeigt u.U. einen falschen Pfad an:

    copy the snippet below into '/etc/X11/xorg.conf.d/99-calibration.conf'

    der richtige Pfad für Raspbian Stretch ist /usr/share/X11/xorg.conf.d/99-calibration.conf siehe:

    7.4. Der X-Server

    Unter xorg(1) finden Sie detaillierte Informationen über den X-Server.

    7.4.1. Die (Neu-)Konfiguration des X-Servers

    Folgendes konfiguriert den X-Server (neu):

    Code
    # dpkg-reconfigure --priority=low x11-common
    Anmerkung

    Aktuelle Linux-Kernel enthalten gute Unterstützung für Grafikkarten und Eingabegeräte unter Nutzung von DRM, KMS und udev. Der X-Server wurde angepasst, um diese zu verwenden. Daher ist "/etc/X11/xorg.conf" üblicherweise auf Ihrem System auch nicht mehr vorhanden. Diese Parameter werden durch den Kernel konfiguriert. Lesen Sie dazu "fb/modedb.txt" in der Linux-Kernel-Dokumentation.

    4 Mal editiert, zuletzt von kle (31. Januar 2019 um 15:30) aus folgendem Grund: falscher Pfad, s. Debian Dokumentation

  • Hallo,

    270 ist was anderes als 180.

    ---


    bitte erst alles durchlesen und verstehen.

    ich glaube Dir, dass Du meinst ich hätte mich vertan. Es ist wirklich "270". Bei Wert 270 ist die Anzeige um 180° gedreht.

    Ich hatte das alles schon mal probiert. Ich weiß nicht warum das so ist.

    Auch bei mir ist in Deinem angegebenen Pfad die Datei 99-calibration.conf vorhanden. Das ist vermutlich die richtige, so wie bei Dir.

    Unten ist deren Inhalt jedoch noch ohne die rotate=270.

    Ich hatte erst einmal mein lauffähiges Image zurückgespielt. Deine Vorschläge teste ich gern morgen, hatte einen langen Tag.

    Code
    Section "InputClass"
            Identifier      "calibration"
            MatchProduct    "ADS7846 Touchscreen"
            Option  "Calibration"   "3932 300 294 3801"
            Option  "SwapAxes"      "1"
            Option "EmulateThirdButton" "1"
            Option "EmulateThirdButtonTimeout" "1000"
            Option "EmulateThirdButtonMoveThreshold" "300"
    EndSection

    lcd_rotate=2 hatte ich auch schon probiert, ich weiss nicht mehr was da schief ging, aber es hat nicht funktioniert. Auch 1, 3, 4 geht nicht.


    Dank nochmal für die kurze Einführung in die "Gestaltungsarbeit"!

    Jedenfalls danke und bis später.... :lol:

    Grüße DLs

  • Wenn die Anzeige bei 270° 180° anzeigt war sie vorher wohl bei 90° eingestellt um 0° in Einbaulage anzuzeigen, vermute ich.

    Wie die Touchscreen-Installation funktioniert, welche Werte wo eingestellt werden, kann man sicher nur in den Skripten sehen.

    Beispiel: LCD-show-180331

    Waveshare 3.2 inch - RPi LCD V4

    Info: hier habe ich mich auf Display- und Touch-Orientierung beschränkt

    Info: das Skript kann man mit Parameter aufrufen, Defaultwert ist "0".

    Parameter 0 90 180 270
    config*1 :rotate=270 :rotate=90 :rotate=270 :rotate=90
    Calibration*2 "219 3835 3984 219" "219 3835 219 3984" "3835 219 219 3984" "3835 219 3984 219"
    SwapAxes*2 "1" "0" "1" "0"

    *1 das ist ein Ausschnitt einer Zeile der Datei /boot/config.txt, die für Parameter 0 so lautet dtoverlay=waveshare32b:rotate=270

    *2 das sind Options in Datei 99-calibration.conf

    Parameter 0 bedeutet, daß

    • links die USB-A- und LAN-Buchsen sind und
    • oben 3.5mm-Kilnkenbuchse, mini-HDMI und mikro-USB für Power

    wenn man die grafische Oberfläche "richtig" (nicht verdreht) sieht.

    Achtung: die anderen Werte für Parameter (90, 180, 270) habe ich nicht ausprobiert und kann nicht sagen, wie die Display-Orientierung ist und ob der Touchscreen funktiniert.

  • Hallo,


    ich habe heute Mittag alle Vorschläge durchprobiert. Auch in der "richtigen" Datei /usr/share/X11/xorg.conf.d/99-calibration.conf die x und y - Werte in jeder Richtung vertauscht. Es gibt keinerlei Veränderungen, wie festgenagelt.

    lcd_rotate=2.... wird einfach ignoriert.

    pi@raspberrypi:~ $ DISPLAY=:0.0 xinput_calibrator

    Auf dem Display kann man nach dem Einschalten dem Pi beim booten zuschauen und dann startet die Oberfläche vom Peppy Player.

    Ich habe Deine Zeile DISPLAY=:0.0 xinput_calibrator in der Putty -Konsole gestartet. Das funktioniert wohl so nicht vermute ich und deshalb die Fehlermeldung ?:conf:. Hab aber keine Ahnung wie das anders geht.

    Ich werde das Thema rotate jetzt mal kurzfristig als ungelöst zur Seite stellen und alternativ ein Stromanschlusskabel auf dem Board verlöten. Dann ist das Problem mit dem Anschluss auch irgendwie gelöst. Zwar nicht im Sinne des Erfinders. Aber improvisieren gehört halt dazu.

    Bin ja nicht der Linuxspezi. Ich wollte eigentlich nur ein Radio für die Garage für das Spielen von Musik beim Restaurieren meines Quads.

    Vielen Dank an alle die sich Gedanken gemacht haben. Vielleicht gibt es da irgendwo eine Lösung. Die Displays sind eine attraktive Alternative, hab ich heute für 13 € bei Herrn Bezos (oder war's die Bucht?) gesehen. Und wer noch einen Pi über hat kann für kleines Geld ein preislich konkurrenzlos gutes Webradio bauen.

    Grüsse DLs

  • Hallo DLs,

    Auch in der "richtigen" Datei /usr/share/X11/xorg.conf.d/99-calibration.conf die x und y - Werte in jeder Richtung vertauscht. Es gibt keinerlei Veränderungen, wie festgenagelt.

    das konfiguriert nur den Touch

    lcd_rotate=2

    das war auf Verdacht. Damit habe ich auf dem original 7 inch Touchscreen (mit OSMC) Anzeige und Touch um 180° gedreht.

    Auf dem Display kann man nach dem Einschalten dem Pi beim booten zuschauen und dann startet die Oberfläche vom Peppy Player.

    sorry mein Fehler. Wenn Du peppy.players Image verwendest, dann bootest Du in die Konsole.

    Du hast 3 Möglichkeiten, a, b oder c, ich empfehle Dir (b) und falls erfolglos (c)

    ---
    (a) Konsole muß anders kalibriert werden.

    --- keine Garantie, ob das funktioniert,

    oder den Touchscreen beschädigt,

    es ist nicht beschrieben ---

    (erst muß die Anzeige so orientiert sein, wie Du willst "rotate=270", dann neu booten, dann weiter)

    > hole ts_calibrate

    mit sudo apt-get install libts-bin

    > kalibriere

    mit sudo TSLIB_FBDEVICE=/dev/fb1 TSLIB_TSDEVICE=/dev/input/touchscreen ts_calibrate

    ---

    (b) 1. boote in den Desktop

    mit sudo raspi-config

    menu "Boot Options" -> "Desktop/CLI" -> "Desktop Autologin"

    beenden mit "Button <Finish>"

    neu booten sudo reboot

    2. Autostart ändern

    2.1 aus Datei rc.local die Zeile mit python3 und peppy.py zu Kommentar machen (1. Zeichen der Zeile ist #).

    2.2) <später> Autostart Desptop-Datei

    2.3) <später> Desktop Einstellungen ändern (Taskbar). Peppy Einstellungen ändern (no.frame=True).

    3) kalibrieren mit DISPLAY=:0.0 xinput_calibrator in die "richtigen" Datei /usr/share/X11/xorg.conf.d/99-calibration.conf schreiben.

    neu booten sudo reboot

    Test: folgt der Cursor dem Finger?

    ---

    (c) In der englischen Anleitung gibt es

    Code
    4.4. Touch Screen Issue
    Drivers installed and screen shows system windows but touch screen function is not working, cursor and touch point doesn’t match.
    ...
    (3) Quality issue:
    After installing configured system the touch screen function is still not working. 
    Solution:
    Please send us an email with your order ID and tell us which Amazon marketplace you bought this screen. We will send you a new one for free.

    alles in allem hast Du gelernt, daß es mühsam wird, wenn man "Schnäppchen" aus dem Internet verwenden will.

    Schönen Gruß, kle

  • Du müssen die logging in der datei config.txt aktivieren:

    console.logging = True

    show.mouse.events = True

    Nach dieser Änderung werden in der konsole mausklicks/berührungsereignisse angezeigt.

    Um den mauszeiger auf dem bildschirm anzuzeigen, ändern du die zeile in der datei /home/pi/Peppy/util/config.py:

    von

    pygame.mouse.set_visible (False)

    zu

    pygame.mouse.set_visible (True)

    ----------------------------------------------------------------------

    You need to enable logging in file config.txt:

    console.logging = True

    show.mouse.events = True

    After this change you will to see mouse click/touch events in the console.

    To see the mouse cursor on screen change the line in file /home/pi/Peppy/util/config.py:

    from

    pygame.mouse.set_visible(False)

    to

    pygame.mouse.set_visible(True)

    Peppy Player Entwickler. Ehemaliger DESY (Hamburg) Entwickler :)

  • @peppy.player : I've done the workaround to use the 7" touchscreen. Is there an flag or other information that i can use in the dispatcher.py to detect the use of the webclient? Due to the disabling of the default pygame mouse events i've also disabled the web client input. If i have the context i could let them thru the default mouse event processing.

  • Zur vereinfachung der ereignisbehandlung werden alle webbrowser-ereignisse in die

    mausereignisse in der datei eingebunden

    /home/pi/Peppy/web/server/websockethandler.py in der funktion handle_command.

    https://github.com/project-owner/…ockethandler.py

    Du können versuchen, eine eigenschaft in dem ereignis zu verwenden, die die

    ereignisquelle identifiziert. zum ereignisse, die vom browser kommen:

    event.source = "browser"

    Um nur browser-ereignisse zu aktivieren, können du alle ereignisse deaktivieren

    event.source != "browser"

    -----------------------------------------------------------------------------------------------

    To simplify event handling all Web Browser events are wrapped into the mouse events in the file

    /home/pi/Peppy/web/server/websockethandler.py in function handle_command.

    https://github.com/project-owner/…ockethandler.py

    You can try to use one property in the event which identifies the source of event. For

    events coming from browser:

    event.source = "browser"

    So to enable only browser events you can disable all events where

    event.source != "browser"

    Peppy Player Entwickler. Ehemaliger DESY (Hamburg) Entwickler :)

    Einmal editiert, zuletzt von peppy.player (2. Februar 2019 um 18:08)

  • Hi,

    der neue Touchscreen-Code (for touch in ts.poll()) funktioniert ohne Probleme. Wenn ich aber nun zusätzlich die Events von WebServer mit durchlasse (#1), funktionieren nach dem ersten Touch gar keine Mouse-Events mehr. Ich habe auch schon versucht die Touch Events via extra Thread einzufügen oder diese als "Browser" Events zu kennzeichnen, was aber auch nichts hilft. Irgendeine Idee? Ich denke, dass das ein Threading Problem sein kann.

  • Es ist schwer zu sagen, was falsch ist, muss debuggen. Wenn Du die Web-Benutzeroberfläche nicht verwenden, sind Du fertig!

    Ich habe gerade mit Pygame-Entwicklern gesprochen und es sieht so aus, als würden sie in der neuen Version Unterstützung für Multitouch hinzufügen.

    Hoffentlich wird auch dieses Problem gelöst. Keine Informationen zum Veröffentlichungsdatum.

    Eine weitere option ist, ein 7" Display zu kaufen. Ich habe gerade so viele davon gekauft ... :)

    Freundliche Grüße!

    -------------------------------------------------------------------------------------------------------------------------------

    It's hard to say what's wrong, need to debug. If you are not going to use Web UI you are all set :)

    I've just talked to Pygame developers and it looks like in the new version they will add support for multitouch.

    So hopefully this issue will be solved as well. Though no info about release date.

    Another option is to buy 7" display. I've just bought so many of them... :)

    Best Regards!

    Peppy Player Entwickler. Ehemaliger DESY (Hamburg) Entwickler :)

  • Hi,

    Ich habe den Player auf einer Raspberry Pi 3 B+ mit Waveshare 5" Touchscreen installiert und alles funktioniert soweit sehr gut.

    Nun möchte ich Airplay via Shairport-sync von Mike Brady hinzufügen (https://github.com/mikebrady/shairport-sync). Ich habe Shairport-sync installiert und alles funktioniert. Wenn die Airplay-Wiedergabe jedoch gestoppt wird, stürzt der Peppy Player ab. Meine Vermutung ist, dass es mit der Änderung der Lautstärke während der Airplay-Wiedergabe zu tun hat.

    Im Shairport-sync kann man festlegen, ob zu Beginn oder am Ende der Airplay-Wiedergabe etwas ausgeführt werden soll. Meine Idee ist es, den Peppy Player beim Start von Airplay zu beenden und ihn nach Beendigung der Airplay-Wiedergabe neu zu starten.

    Hat jemand Erfahrung mit Peppy in Kombination mit Shairport-sync oder kann mir sagen, wie ich den Player am besten stoppe und wieder starte? Gibt es dafür einen Befehl?

    Vielen Dank im Voraus und viele Grüße

    MechanicalOlli

    Ergänzung: Ich habe es gerade noch einmal getestet. Peppy crasht nur, wenn ich während der Airplay Wiedergabe am iPhone die Lautstärke verändere.

    Einmal editiert, zuletzt von MechanicalOlli (3. Februar 2019 um 22:18) aus folgendem Grund: Ergänzung

  • Hallo,

    Ich habe Shairport-Sync noch nie mit Peppy verwendet. Also kann ich hier nicht hilfreich sein. Ich frage mich nur, wie es dir geht benutze es? Ich meine, was spielst du damit und warum kann Peppy nicht verwendet werden, um das gleiche zu spielen? Ist es so etwas wie Dateien / Streams von iTunes?

    Es ist schwer zu sagen, warum Peppy abstürzt. Was sind die Symptome? UI friert ein, Ton ist nicht hörbar oder noch etwas? Sie können versuchen, die Protokollierung zu aktivieren. Danach protokolliert der Player die Meldungen entweder in der Konsole oder in der Datei. So protokollieren Sie Nachrichten in der Dateigruppeneigenschaft in der Datei /home/pi/Peppy/config.txt:

    file.logging = Richtig

    Starten Sie den Player neu und überprüfen Sie das Protokoll nach dem Absturz (Datei /home/pi/Peppy/peppy.log). Hoffentlich ein bisschen loggen Mitteilungen können Hinweise auf mögliche Gründe geben.

    Die einzige übliche Funktion, die von Player und Shairport-Sync verwendet wird, ist das ALSA-Soundsystem. Wahrscheinlich Shairport gibt die Soundkarte nicht richtig frei und der Player kann sie nicht verwenden. Oder wegen einiger Spieler Grund kann es nicht mehr verwenden.

    Leider gibt es keine separaten Befehle zum Starten / Stoppen des Players. Im Moment startet der Spieler immer während System booten und das System wird heruntergefahren, wenn Sie auf die Schaltfläche Herunterfahren doppelklicken.

    Freundliche Grüße!

    ----------------------------------------------------------------------------------------------------------------------------------

    Hi,

    I have never used Shairport-sync with Peppy. So I cannot be helpful here. I'm just wondering how do you use it? I mean what are you playing with it and why Peppy cannot be used to play the same? Is it something like files/streams from iTunes?

    It's hard to say why Peppy crashes. What are the symptoms? UI freezes, sound is not audible or anything else? You can try to enable logging. After that player will log messages either to console or file. To log messages to the file set property in file /home/pi/Peppy/config.txt:

    file.logging = True

    restart the player and check the log after crashing (file /home/pi/Peppy/peppy.log). Hopefully some log messages could give the hint about possible reason.

    The only common functionality used by player and Shairport-sync is ALSA sound system. Probably Shairport doesn't release sound card properly and player cannot use it. Or player because of some reason cannot use it again.

    Unfortunately there are no separate commands to start/stop player. Right now player always starts during system boot and it will shutdown the system when you double click shutdown button.

    Best Regards!

    Peppy Player Entwickler. Ehemaliger DESY (Hamburg) Entwickler :)

  • Hi,

    mein Einsatzzweck für den PeppyPlayer ist ihn als Internetradio in der Küche zu nutzen. Zusätzlich möchte ich das Gerät aber auch für Podcast / Apple Music nutzen, da ich keine umfangreiche digitale Musikbibliothek habe. Daher der Wunsch nach Airplay.

    Das Logging ist eine gute Idee. Ich werde heute Abend mal einen Test mit Logs machen und das File hier posten. Meine Idee ist es, sobald die Airplay Wiedergabe beginnt eine leere Datei als Lock-Datei anzulegen und sie nach Ende des Abspielens wieder zu löschen. Dann könnte man in der peppy.py eine Abfrage machen und wenn die Datei existiert den PeppyPlayer beenden ohne das System herunterzufahren und danach Peppy wieder starten.

    Update: Die Log-Datei zeigt soweit ich das sehe keine Auffälligkeiten, obwohl der Player während des Logs abgestürzt ist (siehe Anhang). Der Crash äußert sich durch eine eingefrorene GUI und der Ton setzt aus.

    peppy.log.txt

    Viele Grüße

    MechanicalOlli

    3 Mal editiert, zuletzt von MechanicalOlli (4. Februar 2019 um 21:28) aus folgendem Grund: Tippfehler beseitigt

  • Hallo,

    Nun will ich mich auch mal wieder melden, das letzte mal im Februar 2018.

    RPi 3B, 16GB Class U1 SD Karte, 3,5inch Touchdisplay von Elecrow, 2x Rotory Encoder. Als Audioausgang habe ich ersteinmal den 'normalen' Klinkenstecker genommen, JBL BT Box.

    Als Image habe ich das aktuelle 'El Greco Edition Disk Images (latest release 2019.01.01)' für Waveshare 3,5 LCD (B) verwendet.

    Durch die Verwendung eines 'Defaultimages' umgeht man die vielen installations Orgien.


    Beim ersten Start war der Screen um 180° verdreht und die Darstellung war negiert (Falschfarben).

    Habe das Display Skript des Display Herstellers ausgeführt, Option 270°, die overlay Datei (elecrow35a.bto) in boot/overlays kopiert und neu gestartet.

    Persönliche Änderungen habe in der /home/pi/Peppy/config.txt vorgenommen und fertig.

    Der wichtigste Punkt war 'flip.touch.xy = True', damit der Touch des Displays auch gedreht wird.


    Werde noch einen Nano USB Stick mit Musik einbinden, die Verbindung zum Netz geht z.Z. über LAN, werde ich auch noch ändern. Eine IR kommt auch noch und werde auch noch einen DAC (PCM5102) einbinden, dieser wird dann über I2S angesteuert.

    Danke an peppy.player


  • Hallo ich schon wieder,

    mit dem aktuellen Image (Stretch 9.4) gibt es Probleme beim installieren.

    Ein 'sudo apt-get install usbmount' verweigert das OS beharrlich.

    Antwort:

    E: Der Wert »jessie« ist für APT::Default-Release ungültig, da solch eine Veröffentlichung in den Paketquellen nicht ver-

    fügbar ist.

    Noch zu neu?

    Auch mit apt (was neu ist) geht es nicht.

    Hat jemand eine Idee, außer warten oder ein älteres Image nehmen?

    Danke paulaner

Jetzt mitmachen!

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