RuneAudio & WaveShare 4"

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Guten Abend Raspberry-Forum,

    ich habe heute meinen TouchScreen für mein neues Projekt bekommen und versuche den nun auf meinem Raspberry zum laufen bekomme. Genauer gesagt hab ich nen RasPi B+ und nen WaveShare SpotPear 4" Touchscreen (http://www.waveshare.com/product/module…h-rpi-lcd-a.htm). Auf meiner 32GB SD ist ein RuneAudio img drauf, das auf Arch Linux basiert. Die auf der mitgelieferten CD vorhandenen Dateien sind alle für Raspbian und ich weiß nicht was ich auf Arch Linux anders machen muss. Wenn ich alles normal mache bootet mein Raspberry dann nicht mehr und der Bildschirm ist und bleibt weiß. Kann mir hier jemand helfen?

    Mit freundlichen Grüßen
    Stefan Müller

    Einmal editiert, zuletzt von Das_Pflanze (19. Mai 2015 um 22:49)

  • Nimm besser Volumio, dieses ArchLinux ist für mich ein wirkliches Übel. Komme
    damit überhaupt nicht klar. Man gewöhnt sich als jahrelanger Win-User endlich
    an die Linux Umgebung und hat Befehle wie apt-get im Kopf, und dann kommt
    einer mit pacman daher. Für mich eine klare Verschlimm-Verbesserung :)

    Habe nun auf meinem Raspi 2 Volumio 1.55 (inkl Raspian) am laufen, sowie
    das 3,5" Touch von Waveshare.

    Bedienung ist aber alles andere als spassig, die WebGUIs von Volumio und auch
    RuneAudio lassen sich auf den kleinen Dingern schlecht bedienen.

    Entweder passe ich mal die WebGUI an, oder ein grösserer Touchscreen muss her.

  • Ja das hatte ich mir auch schon gedacht...mit pacman komm ich noch nicht so gut klar...aber eigentlich finde ich RuneAudio besser als Volumio. Aber letztlich hab ich es dann doch versucht; auch unter Volumio hab ich das ganze nicht zum laufen bekommen. Und wegen der Größe...eigentlich wollte ichs auch größer, aber die Front des Verstärkers in den das ganze soll lässt nicht mehr zu. Wie hasst du es unter Volumio hinbekommen? Gibt es etwas auf das ich achten muss?

  • Habs wie folgt gemacht.... Ist jetzt aus dem Kopf, hoffe ich vergesse nichts. Bin gerade+
    nicht zuhause.

    - Raspbian per Win32Diskimager installieren
    - Raspbian starten

    Code
    - SSH: #raspi-config und Speicherkarte erweitern
    - SSH: #raspi-config / Advanced Options / SPI aktivieren
    - SSH: #sudo reboot

    Volumio installieren:

    Display einrichten:

    Touchscreen einrichten:

    Code
    - SSH: #sudo apt-get -y install xinput evtest libts-bin
    - SSH: #- SSH: #sudo nano /etc/modules
    Folgende Zeile einfügen:
    ads7846_device model=7846 cs=1 gpio_pendown=17  keep_vref_on=1 swap_xy=0 pressure_max=255 x_plate_ohms=60 x_min=200  x_max=3900 y_min=200 y_max=3900
    - SSH: #wget http://adafruit-download.s3.amazonaws.com/xinput-calibrator_0.7.5-1_armhf.deb
    - SSH: #sudo dpkg -i -B xinput-calibrator_0.7.5-1_armhf.deb
    - SSH: #sudo rm /usr/share/X11/xorg.conf.d/99-calibration.conf
    - SSH: #sudo reboot

    Touchscreen kalibieren:

    Code
    - SSH: #startx


    Auf dem TFT sollte nun der Desktop erscheinen. Terminal aufrufen und folgende Zeile eingeben: DISPLAY=:0.0 xinput_calibrator
    Nun auf dem Display die 4 Punkte anwählen, anschliessend kommt eine Ausgabe mit den Kalibrierungsdaten, die 4 Zahlen notieren (Option "Calibration" "3850 270 230 3800").

    Code
    - SSH: #sudo nano /usr/share/X11/xorg.conf.d/99-calibration.conf


    Folgendes einfügen, die 4 Zahlenblöcke gegen die aus der Kalibrierung austauschen:

    Code
    Section "InputClass"
        Identifier "calibration"
        MatchProduct "ADS7846 Touchscreen"
        Option "Calibration" "3850 270 230 3800"
        Option  "SwapAxes"      "1"
    EndSection

    So habe ich es bisher am laufen, WEBRADIO will aber nocht nicht richtig.
    Weiterhin müssen für USB und WEBRADIO noch 2 Ordner erstellt werden,
    die Pfade habe ich im Moment nicht griffbereit. Die stehen aber in den mpd.conf.

    Gruß

    Einmal editiert, zuletzt von noxx (20. Mai 2015 um 15:28)

  • @ noxx : Danke für die doch ziemlich genaue Anleitung! Ich werde es so mal versuchen. Bisher war aber eigentlich mein Plan ein fertiges Volumio oder RuneAudio Image zu verwenden und da dann das Display einzurichten. Reicht es da dann einfach nur die Bereiche "Display einrichten, Touchscreen einrichten, Touchscreen kalibrieren" durchzuführen?

    @ JumpY : Ja aber wirklich :D hätte ich nicht damit gerechnet. Danke :) Habe ihn schon an nem 2A dran ;) Ich hoffe aber, dass ich das bis Dienstag geschafft habe. Danke trotzdem!

  • So alles gemacht wie du es gestagt hast noxx...aber:

    wo liegt mein Fehler?
    gebe ich dann diesen Befehl von diesem Blog ein:

    Code
    sudo modprobe flexfb nobacklight regwidth=16 init=-1,0xb0,0x0,-1,0x11,-2,250,-1,0x3A,0x55,-1,0xC2,0x44,-1,0xC5,0x00,0x00,0x00,0x00,-1,0xE0,0x0F,0x1F,0x1C,0x0C,0x0F,0x08,0x48,0x98,0x37,0x0A,0x13,0x04,0x11,0x0D,0x00,-1,0xE1,0x0F,0x32,0x2E,0x0B,0x0D,0x05,0x47,0x75,0x37,0x06,0x10,0x03,0x24,0x20,0x00,-1,0xE2,0x0F,0x32,0x2E,0x0B,0x0D,0x05,0x47,0x75,0x37,0x06,0x10,0x03,0x24,0x20,0x00,-1,0x36,0x28,-1,0x11,-1,0x29,-3 width=480 height=320


    sehe ich das:
    otl2ldh2.jpg
    Was zur hölle ist hier los? :D

    EDIT: width und height waren verdreht...

    Code
    sudo modprobe flexfb nobacklight regwidth=16 init=-1,0xb0,0x0,-1,0x11,-2,250,-1,0x3A,0x55,-1,0xC2,0x44,-1,0xC5,0x00,0x00,0x00,0x00,-1,0xE0,0x0F,0x1F,0x1C,0x0C,0x0F,0x08,0x48,0x98,0x37,0x0A,0x13,0x04,0x11,0x0D,0x00,-1,0xE1,0x0F,0x32,0x2E,0x0B,0x0D,0x05,0x47,0x75,0x37,0x06,0x10,0x03,0x24,0x20,0x00,-1,0xE2,0x0F,0x32,0x2E,0x0B,0x0D,0x05,0x47,0x75,0x37,0x06,0x10,0x03,0x24,0x20,0x00,-1,0x36,0x28,-1,0x11,-1,0x29,-3 width=320 height=480

    Also rein damit in /etc/modules und Bild kommt! Jetzt noch touchscreen kalibrieren und fertig :) Ich halte euch aufm laufenden.

    Einmal editiert, zuletzt von Das_Pflanze (21. Mai 2015 um 14:27)

  • ich bekomme es nicht zum laufen.

    dmesg sagt folgendes:

    Code
    [    4.747385] bcm2708_spi bcm2708_spi.0: master is unqueued, this is deprecated
    [    4.748138] bcm2708_spi bcm2708_spi.0: SPI Controller at 0x20204000 (irq 80)
    [    4.748415] systemd-modules-load[64]: Inserted module 'spi_bcm2708'
    [    4.748720] systemd-modules-load[64]: Failed to find module 'flexfb'
    [    4.748908] systemd-modules-load[64]: Failed to find module 'fbtft_device'
    [    4.749114] systemd-modules-load[64]: Failed to find module 'ads7846_device'
    [    4.768523] systemd[1]: systemd-modules-load.service: main process exited, code=exited, status=1/FAILURE
    [    4.773363] systemd[1]: Failed to start Load Kernel Modules.

    was mach ich falsch?

    ok, problem gelöst, war falscher Kernel. rpi-update hatte einen neuen mit fbtft geladen aber den hatte ich nicht genutzt :wallbash:

    Und das nächste Problem :helpnew:

    [ 4.723024] systemd-modules-load[58]: Inserted module 'bcm2708_rng'
    [ 4.797882] systemd-modules-load[58]: Inserted module 'snd_bcm2835'
    [ 4.805730] bcm2708_spi 20204000.spi: DMA channel 2 at address 0xf2007200 wit h irq 77
    [ 4.805828] bcm2708_spi 20204000.spi: DMA channel 4 at address 0xf2007400 wit h irq 20
    [ 4.857744] ads7846 spi0.1: touchscreen, irq 411
    [ 4.858691] input: ADS7846 Touchscreen as /devices/soc/http://20204000.spi/spi_maste r/spi0/spi0.1/input/input3
    [ 4.859214] bcm2708_spi 20204000.spi: SPI Controller at 0x20204000 (irq 80)
    [ 4.859282] bcm2708_spi 20204000.spi: SPI Controller running in dma mode
    [ 4.859652] systemd-modules-load[58]: Inserted module 'spi_bcm2708'
    [ 4.888427] fbtft: module is from the staging directory, the quality is unkno wn, you have been warned.
    [ 4.894886] flexfb: module is from the staging directory, the quality is unkn own, you have been warned.
    [ 4.895816] flexfb: `-1' invalid for parameter `init'
    [ 4.896063] systemd-modules-load[58]: Failed to insert 'flexfb': Invalid argu ment
    [ 4.905514] fbtft_device: module is from the staging directory, the quality i s unknown, you have been warned.
    [ 4.907427] fbtft_device: SPI devices registered:
    [ 4.907507] fbtft_device: ads7846 spi0.1 1000kHz 8 bits mode=0x00
    [ 4.907549] fbtft_device: 'fb' Platform devices registered:
    [ 4.907619] fbtft_device: bcm2708_fb id=-1 pdata? no
    [ 4.907876] fbtft_device: GPIOS used by 'flexfb':
    [ 4.907927] fbtft_device: 'reset' = GPIO25
    [ 4.907958] fbtft_device: 'dc' = GPIO24
    [ 4.907985] fbtft_device: SPI devices registered:
    [ 4.908020] fbtft_device: ads7846 spi0.1 1000kHz 8 bits mode=0x00
    [ 4.908059] fbtft_device: flexfb spi0.0 16000kHz 8 bits mode=0x00
    [ 4.908305] systemd-modules-load[58]: Inserted module 'fbtft_device'
    [ 4.908730] systemd-modules-load[58]: Failed to find module 'ads7846_device'
    [ 4.930030] systemd[1]: systemd-modules-load.service: main process exited, co de=exited, status=1/FAILURE
    [ 4.934776] systemd[1]: Failed to start Load Kernel Modules.

    Ok...ich rede einfach weiter mit mir selbst :lol:
    [ 4.908730] systemd-modules-load[58]: Failed to find module 'ads7846_device'
    ist behoben, _device gibts nicht mehr, kann man weglassen

    Ok Display tut, jetzt fehlt noch die Kalibrierung des Touchscreens

    Einmal editiert, zuletzt von Das_Pflanze (21. Mai 2015 um 18:01)

  • @ noxx : ich werds versuchen :D
    kennt jemand einen leichten Browser der für Touchscreens optimiert ist?

    Also, ich hab versucht mir Chromium zu installieren und dabei offensichtlich alles zerschossen -> RPi startet nicht mehr. Das heißt ich mach alles nochmal und schreibe nebenher eine Anleitung :X

    Einmal editiert, zuletzt von Das_Pflanze (21. Mai 2015 um 19:55)

  • Also hier die Anleitung:

    Sinn meiner Aktion war es einen Raspberry in einen alten Verstärker zu bauen und an dessen Front einen WaverShare SpotPear 4" Touchscreen anzubringen, mit dem man dann über das RuneAudioGUI RuneAudio steuern kann.
    In meinem Fall wurde verwendet:

    Raspberry Pi B+
    WaveShare SpotPear 4" Touchscreen Klick!
    RuneAudio v3.0-beta Klick!

    Im Moment suche ich noch nach einem besseren Browser, der mit Touch besser umgehen kann.

    1. Am Ende von /boot/config.txt einfügen

    Code
    $ nano /boot/config.txt
    Code
    device_tree_param=spi=on

    2. Die SD Karte voll ausnutzen.


    dann rebooten

    Code
    $ reboot

    3. Nach Boot Filesystem anpassen

    Code
    $ resize2fs /dev/mmcblk0p5

    4. rpi-update einrichten und durchführen

    Code
    $ pacman –Sy
    $ pacman –S git sudo
    $ sudo wget https://raw.github.com/Hexxeh/rpi-update/master/rpi-update -O /usr/bin/rpi-update && sudo chmod +x /usr/bin/rpi-update
    $ sudo pacman -S ca-certificates
    $ sudo pacman -S binutils
    $ sudo rpi-update
    $ reboot

    4. In /etc/mdules-load.d/raspberrypi.conf am Ende einfügen

    Code
    $ nano /etc/mdules-load.d/raspberrypi.conf
    Code
    spi_bcm2708
    fbtft_device
    flexfb
    ads7846

    5./boot/config.txt bearbeiten und genannte cmdline="xxx" merken

    Code
    $ nano /boot/config.txt
    Code
    kernel=kernel.img


    danach reboot

    Code
    $ reboot

    6. In /etc/modprobe.d/ zwei neue Dateien anlegen
    1.

    Code
    $ nano /etc/modprobe.d/flexfb.conf


    mit folgendem Inhalt

    Code
    options flexfb width=320
    options flexfb height=480
    options flexfb regwidth=16
    options flexfb init=-1,0xb0,0x0,-1,0x11,-2,250,-1,0x3A,0x55,-1,0xC2,0x44,-1,0xC5,0x00,0x00,0x00,0x00,-1,0xE0,0x0F,0x1F,0x1C,0x0C,0x0F,0x08,0x48,0x98,0x37,0x0A,0x13,0x04,0x11,0x0D,0x00,-1,0xE1,0x0F,0x32,0x2E,0x0B,0x0D,0x05,0x47,0x75,0x37,0x06,0x10,0x03,0x24,0x20,0x00,-1,0xE2,0x0F,0x32,0x2E,0x0B,0x0D,0x05,0x47,0x75,0x37,0x06,0x10,0x03,0x24,0x20,0x00,-1,0x36,0x28,-1,0x11,-1,0x29,-3

    2.

    Code
    $ nano /etc/modprobe.d/fbtft_device.conf


    mit folgendem Inhalt

    Code
    options fbtft_device rotate=0 
    options fbtft_device name=flexfb 
    options fbtft_device speed=16000000 
    options fbtft_device gpios=reset:25,dc:24

    7. in /boot/config.txt am Ende einfügen

    Code
    $ nano /boot/config.txt
    Code
    gpu_mem=128
    dtoverlay=ads7846,speed=1000000,penirq=17

    8. In die in der config.txt genannte cmd-line Datei an die unkommentierte Zeile anhängen
    (es muss alles in einer Zeile stehen!)
    In meinem Fall also:

    Code
    $ nanp /boot/cmdline_linux-arch-rpi_3.12.26-1-ARCH.txt
    Code
    fbcon=map:1 fbcon=font:ProFont6x11

    9. Neustart

    Code
    $ reboot

    10. Touchscreen Kalibrierungssoftware installieren

    Code
    $ pacman –S xinput_calibrator

    11. x-Server installieren. Da ich keine richtige Desktopumgebung brauche nutze ich matchbox, xfce4 oder ähnliches würde hier auch funktionieren, da werde ich aber nicht weiter drauf eingehen.

    Code
    $ pacman –S matchbox-window-manager xorg-xinit xorg-server xorg-server-utils xorg-twm xterm

    12. /usr/share/X11/xorg.conf.d/99-calibration.conf erstellen

    Code
    $ nano /usr/share/X11/xorg.conf.d/99-calibration.conf


    mit folgendem Inhalt

    Code
    Section "InputClass"
        Identifier "calibration"
        MatchProduct "ADS7846 Touchscreen"
        Option "Calibration" "3850 270 230 3800"
        Option  "SwapAxes"      "1"
    EndSection

    13. /root/xinput_calibrator.sh erstellen

    Code
    $ nano /root/xinput_calibrator.sh


    mit folgendem Inhalt

    Bash
    #!/bin/sh
    matchbox-window-manager &
    xinput_calibrator

    14. Neustart

    Code
    $ reboot

    15. Touchscreen kalibrieren mit

    Code
    $ xinit /root/xinput_calibrator.sh


    und Anweisungen auf Display befolgen. Nach Durchführung die ausgegebenen Informationen nach Folgendem durchsuchen:

    Code
    Doing dynamic recalibration:
            Setting calibration data: 1394, 1379, 2993, 2970
            --> Making the calibration permanent <--
      copy the snippet below into '/etc/X11/xorg.conf.d/99-calibration.conf' (/usr/share/X11/xorg.conf.d/ in some distro's)
    Section "InputClass"
            Identifier      "calibration"
            MatchProduct    "ADS7846 Touchscreen"
            Option  "Calibration"   "1394 1379 2993 2970"
            Option  "SwapAxes"      "1"
    EndSection


    Danach den Inhalt der /usr/share/X11/xorg.conf.d/99-calibration.conf mit dem Teil von "Section "InputClass" bis "EndSection" ersetzen.

    Code
    $ nano /usr/share/X11/xorg.conf.d/99-calibration.conf

    16. Browser installieren

    Code
    $ pacman -S midori gcc-libs glib2

    17. /root/startmidori.sh erstllen

    Code
    $ nano /root/startmidori.sh


    mit folgendem Inhalt

    Bash
    #!/bin/sh
    xset -dpms     # disable DPMS (Energy Star) features.
    xset s off       # disable screen saver
    xset s noblank # don't blank the video device
    matchbox-window-manager &
    midori -e Fullscreen -a http://127.0.0.1


    (Hier kann man je nach Displaygröße noch durch hinzufügen von "-e ZoomIn" oder "-e ZoomOut" nach "-e Fullscreen" den Zoom verändern. Mehrfaches nutzen dieser Optionen Verstärkt den Zoom. Das ganze ist also vergleichbar mit STRG++ und STRG+-)

    18. Möchte man zusätzlich den Mauszeiger verschwinden lassen, wenn keine Eingabe geschieht wird unclutter benötigt:

    Code
    $ pacman -S unclutter


    Und die in Punkt 17 angelegte Datei muss angepasst werden.

    Code
    $ nano /root/startmidori.sh
    Bash
    #!/bin/sh
    xset -dpms     # disable DPMS (Energy Star) features.
    xset s off       # disable screen saver
    xset s noblank # don't blank the video device
    unclutter &
    matchbox-window-manager &
    midori -e Fullscreen -a http://127.0.0.1

    19. Für direktes öffnen der RuneAudioGUI muss "xinit startmidori.sh" beim booten ausgeführt werden. Ich habe das mit einer rc.local Datei gelöst.
    /etc/rc.local erstellen

    Code
    $ nano /etc/rc.local


    mit folgendem Inhalt

    Bash
    #!/bin/sh
    
    
    xinit ./root/startmidori.sh &

    20. ausführbar machen

    Code
    $ chmod a+x /etc/rc.local

    21. Service erstellen

    Code
    $ nano /lib/systemd/system/midori.service


    mit folgendem Inhalt

    22. Service aktivieren

    Code
    $ systemctl enable rc-local.service

    23. System neustarten und RuneAudio steuern.

    Code
    $ reboot

    So sollte es dann aussehen:
    j7hhma4u.jpg

    Bei Fragen könnt ihr euch gerne an mich wenden. Bin aber leider auch "nur" ein 18 jähriger Abiturient, der von seiner restlichen Schulzeit nach den Prüfungen so unausgelastet war, dass er unbedingt das Leben seines Verstärkers und durch rumlöten an der Stromzufuhr vermutlich auch sein eigenes aufs Spiel setzen wollte. Also erwartet bitte nicht zu viel ;)

  • Klasse :)

    Evtl probiere ich mal Touch+Rune aus. Aber Spaß macht das Display
    leider nicht, die WebGUI ist alles andere als gut geeignet um Volumio
    oder RuneAudio (sind ja im Grunde gleich, da selbe Wurzel) zu
    bedienen. Ohne Stift kommt man da kaum weiter. Was bei mir aber
    leider nicht geklappt hat, ist das scrollen nach oben/unten. Bekomme
    ich nur über den Schieber an der Seite hin.

    Die GUI müsste mal angepasst werden. Wenn ich mal Zeit und Lust finde, gehe
    ich das mal ran. Idee wie es aussehen könnte, im Anhang.

  • Ja genau, der Touch ist echt bescheiden. Deshalb suche ich auch noch nach einem Browser mit Touchsupport...
    Chromium soll ja gut sein, aber ich bekomm es nicht unter Arch Linux zum laufen.

    Das mit der GUI ist auch mein nächster Plan...evtl über eine zweite HTTP Oberfläche. Wie würdest du es machen?

  • Klingt gut, vlt setze ich mich damit in den nächsten zwei Wochen (FERIEN :bravo2: ) auseinander.

    Installiere mir gerade Firefox mit nem Touch AddOn, vlt läuft es damit besser...
    habe leider im Moment aber noch ein anderes Problem. Midori braucht ca, 50% von der CPU und damit knackt der Sound manchmal und es skipped...

    Und wenn ich dann nicht sofort aufhöre die CPU auszulasten, scheint es so als würden die USB Ports und der LAN Port abgeschaltet werden. Display und Touch tun weiterhin. Bedienen geht auch noch, aber habe halt kein Internet mehr...

    Einmal editiert, zuletzt von Das_Pflanze (23. Mai 2015 um 11:44)

  • Hallo Das Pflanze,

    bin auch grad verzweifelt daran zu versuchen meinen 3.5 waveshare mit runeaudio auf dem neuen RPi 2 zum laufen zu bekommen... Runeaudio funktioniert soweit ganz hervorragen zusammen mit dem Hifiberry DAC. Bildschirm funktioniert an sich auch (getestet mit Raspbian). Nur wenn ich reboote (Schritt 9) bei deiner super Anleitung, solte ich dann nicht schon einen Teil des Bootvorganges auf dem Bildschirm sehen? Bleibt einfach schwarz (bzw. weiss). Hast du zufaellig ne backup image die dur mir mal zum testen schicken koenntest?

    Dein neuer Verstaerker sieht super aus!

  • Hallo nanoqui,

    wie du ja oben siehst habe ich mit dem RPi 1 gearbeitet und weiß nicht ob das so auch auf dem RPi 2 laufen kann. Ab wann hast du denn Bild? Bei mir war auch Anfangs der Bildschirm komplett weiß und dann hat er irgendwann den Boot-Text gezeigt, das ist normal so. Es könnte durchaus sein, dass ich da noch ein Abbild habe. Müsste schauen, bin aber im Moment nicht zu Hause.

    Ja fand ich auch...nur er selbst war wohl nicht so begeistert davon und hat Selbstmord begangen. Irgendwann hat der Ton einfach total falsch geklungen und plötzlich war dann der linke Lautsprecher weg...naja...habe jetzt ne Marantz MCR 501 für wirklich günstige 275 bei Saturn bekommen und bin rundum zufrieden :)

Jetzt mitmachen!

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