Raspbian Tron-Radio - lema67 Mod

  • Hier gehts jetzt weiter mit meinem Mod des RPI-Tron-Radio.

    Mittlerweile bin ich bei Version 6 angelangt, in dieser Version läßt sich nun auch das Wlan konfigurieren. Allerdings erstmal nur als DHCP. Die Konfiguration mit fester IP dauert noch.

    Ein paar Infos zum Image. Ich benutze das aktuelle Raspian von hier.Packetmäßig muss python, pygame und der Player mpd und mpc dabei sein. Die Playliste im Anhang dient als Demo damit ihr seht wie der Aufbau ist.
    Damit Tron-Radio läuft muss natürlich euer Display samt Touchscreen funktionieren. Wenn ihr Probleme damit habt macht bitte im Display Thread dafür ein Thema auf.
    MPD kann natürlich mehr wie nur Internetstation abspielen. Das gehört hier aber auch nicht hin da Tron-Radio nur ein Webradio ist.

    Installationsanleitung:
    Diese Anleitung gilt für den Raspberry Pi B+ mit Raspbian wheezy vom 05.05.2015 mit EDIMAX EW-7811UN Wlanstick und das WaveShare 3,2" TFT LCD Display

    Raspbian wheezy auf eine mindestens 4GB microSd Karte aufspielen und Netzwerk einrichten

    System updaten und software installieren

    Code
    apt-get update
    apt-get upgrade
    apt-get install -y python-dev mpd mpc

    gpio installieren

    Code
    cd /usr/src
    wget https://pypi.python.org/packages/source/R/RPi.GPIO/RPi.GPIO-0.5.11.tar.gz
    tar zxf RPi.GPIO-0.5.11.tar.gz
    cd RPi.GPIO-0.5.11
    python setup.py install

    /boot/config.txt anpassen

    Code
    dtoverlay=ads7846,cs=1,penirq=17,speed=1000000,swapy=0,pmax=255,xohms=60,xmin=200,xmax=3900,ymin=200,ymax=3900

    /boot/cmdline.txt anpassen

    Code
    dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait fbcon=map:10 fbcon=font:VGA8x8

    /etc/modules anpassen

    Code
    snd-bcm2835
    i2c-bcm2708
    i2c-dev
    fbtft_device name=flexfb gpios=dc:22,reset:27 speed=48000000
    flexfb width=320 height=240 buswidth=8 init=-1,0xCB,0x39,0x2C,0x00,0x34,0x02,-1,0xCF,0x00,0XC1,0X30,-1,0xE8,0x85,0x00,0x78,-1,0xEA,0x00,0x00,-1,0xED,0x64,0x03,0X12,0X81,-1,0xF7,0x20,-1,0xC0,0x23,-1,0xC1,0x10,-1,0xC5,0x3e,0x28,-1,0xC7,0x86,-1,0x36,0x28,-1,0x3A,0x55,-1,0xB1,0x00,0x18,-1,0xB6,0x08,0x82,0x27,-1,0xF2,0x00,-1,0x26,0x01,-1,0xE0,0x0F,0x31,0x2B,0x0C,0x0E,0x08,0x4E,0xF1,0x37,0x07,0x10,0x03,0x0E,0x09,0x00,-1,0XE1,0x00,0x0E,0x14,0x03,0x11,0x07,0x31,0xC1,0x48,0x08,0x0F,0x0C,0x31,0x36,0x0F,-1,0x11,-2,120,-1,0x29,-1,0x2c,-3

    Energieverwaltung für edimax wlanstick abschalten (alles markieren und als root in eine Konsole kopieren, danach enter drücken)

    Code
    sh -c 'cat > /etc/modprobe.d/8192cu.conf << EOF
    options 8192cu rtw_power_mgnt=0 rtw_enusbss=0
    EOF
    '

    udev regeln anlegen

    Code
    sh -c 'cat >> /etc/udev/rules.d/95-ads7846.rules << EOF
    SUBSYSTEM=="input", KERNEL=="event[0-9]*", ATTRS{name}=="ADS7846*", SYMLINK+="input/touchscreen"
    EOF
    '
    Code
    sh -c 'cat >> /etc/udev/rules.d/95-stmpe.rules << EOF
    SUBSYSTEM=="input", ATTRS{name}=="stmpe-ts", ENV{DEVNAME}=="*event*", SYMLINK+="input/touchscreen"
    EOF
    '
    Code
    sh -c 'cat >> /etc/udev/rules.d/99-input.rules << EOF
    SUBSYSTEM=="input", GROUP="input", MODE="0660"
    EOF
    '

    #pointercal erzeugen

    Code
    sh -c 'cat > /etc/pointercal << EOF
    100 5840 -1141240 -4201 112 16048222 65536 
    EOF
    '

    tron-radio nach /usr/src kopieren

    playlist.m3u nach /var/lib/mpd/playlists kopieren

    tron-radio autostart in /etc/rc.local eintragen

    Code
    /usr/src/tron-radio/start_tron-radio.sh


    Download: tron-radio_v6.1.zip

    Download playlist: playlist.zip

    Update v6.1: Kleinen Bug behoben.-> Automatischer Rücksprung aus Stationlist nach 30 sek. war fehlerhaft



    Update: 05.02.2016
    Mittlerweile mochte ich das tron-radio Design nicht mehr leiden und habe es daher ein weniger Schlichter designt.
    Neu hinzugekommen ist nun auch noch eine Wetterstation als Screensaver.
    Die Wetterdaten kommen von worldweatheronline.com . Um den Service nutzen zu können muss man sich registrieren und eine Apikey erzeugen klick
    Weiterhin benötigt ihr dann noch euren Standort (Location). Dazu geht ihr auf die Weathermap klick und notiert euch die Koordinaten Lon & Lat die in dem Fenster angezeigt werden.
    Der generierte Apikey und euere Location muss dann in die config.txt datei eingetragen werden.

    Damit das Radio läuft muss nun nocht python-dateutil nachinstalliert werden (apt-get install python-dateutil).
    Damit die Wochentage in der Wetterstaion in Deutsch angezeigt werden und auch die Umlaute im Radio korrekt angezeigt werden, bitte die Locale auf de_DE.utf8 setzen und de_DE.utf8 auswählen.

     


    Download:
    Update 07.02.2016: Wetterlayout angepasst
    Update 11.02.2016: Kleinen Fehler im Radio screen behoben, Wetterlayout optimiert
    Update 13.02.2016: Damit mit man nicht mehr in der inet-radio.py rumschreiben muss gibt es nun eine config.txt. Bitte hier den apikey und die location eintragen.
    Config screen hinzugefüg. Hier lassen sich nun die Lautstärke sowie der Screensaver Ein- und Ausschalten und die Zeit in Sekunden einstellen.
    Achtung! Die Einstellungen werden erst in der config.txt gespeichert wenn unten 'zurück' angeklickt wird.

    Update 25.02.2016: Absturz behoben beim Wetterscreensaver wenn kein gültiger Apikey eingetragen ist.
    Update 07.03.2016: Wlan level und ip anzeige überarbeitet. Sollte jetzt mit Edimax EW-7811UN und RPI3 internes Wlan funktionieren.
    Update 16.05.2016: Wetteranbieter gewechselt da worldweatheronline seinen kostenlosen Dienst eingestellt hat. Die Wetterdaten kommen nun von openweathermap.org
    Update 18.05.2016: Bug behoben

    inet-radio_07.03.2016_2050.zip

    inet-radio mit wetterscreensaver, wetterdaten von openweathermap.org
    inet-radio_owm_V1.1_18052016.zip


    Edit 06.03.2016: Installationsanleitung Raspbian Jessie & Waveshare 3.2" (LCD B)

    1. Image '2016-02-26-raspbian-jessie-lite.img' auf microSD karte aufspielen
    Monitor und Tastatur an Raspberry anstöpseln und booten

    2. Maximalen Speicherplatz auf der micrSD Karte verfügbar machen und locale anpassen
    raspi-config
    -> Expand filesystem
    -> Set locale (de.utf8) und Timezone einstellen

    3. Netzwerk einrichten ( Ich mache es per Wlan, hat der RPI3 ja an Board )

    Code
    sudo nano /etc/wpa_supplicant/wpa_supplicant.conf


    folgendes zufügen:
      
    network={
    ssid="eure SSID"
    psk="euer WlanKey"
    key_mgmt=WPA-PSK
    }


    4. Wlan neu starten

    Code
    sudo ifdown wlan0
    sudo ifup wlan0

    5. root login erlauben:

    Code
    sudo nano /etc/ssh/sshd_config


    ändere PermitRootLogin without-password -> PermitRootLogin yes

    6. restart ssh

    Code
    sudo /etc/init.d/ssh restart

    7. root passwort festlegen
    sudo su
    passwd (dann passwort eingeben)

    danach mache ich am PC mit Putty weiter. Einloggen als root

    Edit 14.03.2016:
    Am ende dieses Post (Anhang 2) befindet sich ein Script das die kommenden Schritte 8 - 11 automatisch abarbeitet.

    8. system updaten

    Code
    apt-get update
    apt-get upgrade


    9. Packete installieren

    Code
    apt-get install -y python2.7-dev python-pygame python-dateutil python-pip mpd mpc xinput evtest tslib libts-bin

    10. Alte libsdl installieren sonst geht der Touch nicht richtig

    Code
    wget http://archive.raspbian.org/raspbian/pool/main/libs/libsdl1.2/libsdl1.2debian_1.2.15-5_armhf.deb
    dpkg -i ./libsdl1.2debian_1.2.15-5_armhf.deb
    apt-mark hold libsdl1.2debian


    11. Display einrichten
      waveshare32b-overlay.dtb (klick) nach /boot/overlays kopieren geht auch ohne waveshare32.b-overlay

    /boot/cmdline.txt anpassen:

    Code
    sh -c 'cat > /boot/cmdline.txt << EOF
    dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait fbcon=map:10 fbcon=font:VGA8x8
    EOF
    '

    /boot/config.txt anpassen:

    Code
    sh -c 'cat > /boot/config.txt << EOF
    #dtoverlay=waveshare32b:rotate=270
    dtoverlay=ads7846,cs=1,penirq=17,speed=1000000,swapxy=0,pmax=255,xohms=60,xmin=200,xmax=3900,ymin=200,ymax=3900
    dtparam=audio=on
    dtparam=spi=on
    dtparam=i2c_arm=on
    EOF
    '


    flexfb.conf in /etc/modprobe.d anlegen

    Code
    sh -c 'cat >> /etc/modprobe.d/flexfb.conf << EOF
    options fbtft_device name=flexfb gpios=dc:22,reset:27 speed=48000000
    options flexfb width=320 height=240 buswidth=8 init=-1,0xCB,0x39,0x2C,0x00,0x34,0x02,-1,0xCF,0x00,0XC1,0X30,-1,0xE8,0x85,0x00,0x78,-1,0xEA,0x00,0x00,-1,0xED,0x64,0x03,0X12,0X81,-1,0xF7,0x20,-1,0xC0,0x23,-1,0xC1,0x10,-1,0xC5,0x3e,0x28,-1,0xC7,0x86,-1,0x36,0x28,-1,0x3A,0x55,-1,0xB1,0x00,0x18,-1,0xB6,0x08,0x82,0x27,-1,0xF2,0x00,-1,0x26,0x01,-1,0xE0,0x0F,0x31,0x2B,0x0C,0x0E,0x08,0x4E,0xF1,0x37,0x07,0x10,0x03,0x0E,0x09,0x00,-1,0XE1,0x00,0x0E,0x14,0x03,0x11,0x07,0x31,0xC1,0x48,0x08,0x0F,0x0C,0x31,0x36,0x0F,-1,0x11,-2,120,-1,0x29,-1,0x2c,-3
    
    
    EOF
    '

    etc/modules anpassen

    Code
    sh -c 'cat > /etc/modules << EOF
    snd-bcm2835
    i2c-bcm2708
    i2c-dev
    spi_bcm2835
    flexfb
    fbtft_device
    EOF
    '


    udev regeln für Touch anlegen

    Code
    sh -c 'cat >> /etc/udev/rules.d/95-ads7846.rules << EOF
    SUBSYSTEM=="input", KERNEL=="event[0-9]*", ATTRS{name}=="ADS7846*", SYMLINK+="input/touchscreen"
    EOF
    '
    Code
    sh -c 'cat >> /etc/udev/rules.d/95-stmpe.rules << EOF
    SUBSYSTEM=="input", ATTRS{name}=="stmpe-ts", ENV{DEVNAME}=="*event*", SYMLINK+="input/touchscreen"
    EOF
    '
    Code
    sh -c 'cat >> /etc/udev/rules.d/99-input.rules << EOF
    SUBSYSTEM=="input", GROUP="input", MODE="0660"
    EOF
    '

    11. rebooten

    Code
    reboot


    12. Touchscreen Kalibrieren

    Code
    TSLIB_FBDEVICE=/dev/fb1 TSLIB_TSDEVICE=/dev/input/touchscreen ts_calibrate

    13. inet-radio installieren
    ordner inet-radio nach /usr/src kopieren

    start.sh und inet-radio.py ausführbar machen

    Code
    chmod 755 /usr/src/inet-radio/start.sh
    chmod 755 /usr/src/inet-radio/inet-radio.py

    14. Playliste erzeugen

    15. Radio starten

    Code
    /usr/src/inet-radio/start.sh


    Anhang 1:
    waveshare32b-overlay.zip

    Anhang 2:
    1. Script jessie-setup.sh nach /usr/src kopieren
    2. Script ausführbar machen: chmod 755 /usr/src/jessie-setup.sh
    3. Script starten: /usr/src/jessie-setup.sh
    jessie-setup.sh

    Einmal editiert, zuletzt von lema67 (18. Mai 2016 um 17:20)

  • Hi.

    Ich setzte gerade einen Raspi neu auf und möchte deinen Radio benutzen.

    Gibt es ein Verzeichnis, wo der Tron-Radio Ordner hin kopiert werden muss, oder kann dieser irgendwo liegen?

    Danke

    Edit: Frage habe ich mir nun selber beantwortet.... /usr/src
    Hier sollte der Order liegen.

  • Hi lema67,

    ich habe seit gestern den Radio "fast" am laufen.

    Mir sind 2 Dinge aufgefallen. Vielleicht kannst du mir oder jemand der den Radio auch am laufen hat, helfen.

    Ich starte bisher den Radio immer über sudo python /usr/src/tron-radio/tron-radio.py
    Hier habe ich beim ersten Start immer das Problem, dass die resourcemap.png fehlerhaft ist.
    Ich helfe mir dabei immer, indem ich in den Skin Ordner wechsle und die Datei einmal umbenenne und dann wieder zurück in den richtigen Namen.
    Dann starte auch der Radio.

    Des weiteren habe ich ein Problem mit WLAN. Da ich gerne mit festen IP´s arbeite, habe ich auch eine feste IP vergeben.
    Das ganze über /etc/networking/interfaces eingerichtet.

    Jetzt wird aber beim starten immer angezeigt ich habe 2 IP´s. Vermutlich, durch meine feste IP dich ich vergebe, und dann mit deiner Konfiguration für DHCP.
    Wie kann ich denn dein DHCP Script raus nehmen, ohne dass es Einfluss auch das Python Script hat?
    Kann ich folgendes einfach auskommentieren, ohne dass es andere Teile vom Code beeinflusst?

    Danke

  • Hey starte mal das tron-radio mit

    Code
    cd /usr/src/tron-radio
    sudo python tron-radio.py

    Wenn du dein Netzwerk selber eingerichtet hast darfst du natürlich nicht wlan config über tron-radio ausführen. Erst wenn das das setup über tron-radio beendet wurde verändert tron-radio deine interfaces. Wo dann deine 2te IP herkommt ist mir schleierhaft.

    Kannst ja mal deine interfaces hier posten

    gruß lema67

  • Klar mach ich doch gerne:

    Ich weiß leider nicht in welcher Log Datei die Meldungen von dem Start stehen.
    Aber es werden mir 2 IP Adressen angezeigt.
    192.168.7.54 und 192.168.7.109
    die .109 liegt genau in meinem DHCP Bereich. Lt. Interfaces ist diese aber auf Static eingestellt.

    Wenn ich direkt in das Verzeichnis wechsle, hat es jetzt beim ersten mal geklappt. Ich werde aber weiter testen und ggf. zu dem Problem mich nochmal melden.

    Hoffe mir kann jemand zu dem WLAN etwas genaueres sagen.

    Danke

  • Hallo lema67,

    dein Radio funktiert super danke. Hab jetzt mal aber eine Logilink USB Soundkarte angehängt damit ich einen besseren Sound bekomme. Nun hab ich aber ein seltsames Phänomen die Tonausgabe hat nun richtige "hänger, lags" im Hauptscreen und im Settingsmenü und wenn ich in die Senderliste wechsle ist der Ton wieder normal. Hast du eine Idee woran das liegen könnte.

    mfg
    Martin

    Einmal editiert, zuletzt von FireFox002 (5. Juni 2015 um 09:27)

  • Hallo Lema67

    Klasse Projekt welches du da "gebastelt" hast.
    Läuft bei mir alles supi, auch mit einem anderen Display.

    Eine Frage hätte ich aber:
    Der Screensaver funktioniert nicht bzw. wird gar nicht aktiviert.
    Ist der in der py irgendwo auskommentiert ?

    Mfg


  • Hallo lema67,

    dein Radio funktiert super danke. Hab jetzt mal aber eine Logilink USB Soundkarte angehängt damit ich einen besseren Sound bekomme. Nun hab ich aber ein seltsames Phänomen die Tonausgabe hat nun richtige "hänger, lags" im Hauptscreen und im Settingsmenü und wenn ich in die Senderliste wechsle ist der Ton wieder normal. Hast du eine Idee woran das liegen könnte.

    mfg
    Martin

    Konnte ich bei anderen Web-Radios über WLan auch feststellen, liegt aber eindeutig an der WLan Verbindung. Nach öfteren Neustart ist das Problem mit den Lages und dem Knacken im Ton verschwunden. Oder man muss öffters die Einstellung zwischen USB und 3,5mm Klinke wechseln. Danach geht es.

    paulaner

  • Hallo
    Ich habe ein Problem . Ich habe das Tron Radio nun schon einige mal installiert. Läuft auch immer gut. Nun das Problem . Sobald ich in der Playliste z.b. einen neuen Sender einfügen will und ich dann das Radio neu starte, dann spielt er immer nur noch einen Sender ab und das ist "Angels Fox" aus der beigefügten Playlist. Ich kann dann machen was ich will es geht nicht anderes mehr. Na gut denk ich dann nimmst ich eben den neuen Eintrag wieder raus und dann sollte es wieder gehen. Dem ist aber nicht so es läuft nur noch der eine Sender und am Radio kann man drücken was man will es tut sich nichts. Auch nach einen Neustart ist es genau so . Sofort nach dem Start läuft dieser eine Sender auch wenn Tron Radio noch nicht gestartet ist. Na ok dann habe ich mal die den MPD restarten lassen und den MPC Updaten lassen alles bringt nichts. Ich weiss nun nicht mehr weiter.
    Rasperry Pi2+ , Wave Share 3.2 LCD (V3)
    Im voraus herzlichen dank für die Hilfe

    Einmal editiert, zuletzt von hm_krause (31. Juli 2015 um 19:43)

  • Hallo,

    ich hatte ein ähnliches Problem. Bei mir lag es daran das der Editor (Notepad++) unsichtbare nicht druckbare Zeichen hinzugefügt hat. Nachdem ich diese sichtbar gemacht und entfernt habe ging alles wieder fehlerfrei. Stelle deine Playlist doch mal zur Verfügung. Ich schaue sie mir dann mal an ...

  • Danke lemar67 für deine Arbeit,
    ca. 2 Stunden habe ich für den Nachbau benötigt, da möchte ich nicht wissen wieviel Stunden du an den Code gesessen hast.
    Aber das Alles funktionierte auf Anhieb und ohne Nachfragen und lästige Fehler.

    WLAN einrichten hat auch super geklappt, sofort erkannt und ich konnte meinen Key eingeben dann ging es schon über WLAN.
    Gib doch noch den Hinweis des Kabels solange WLAN nicht läuft.

    Ok habe etliche Versionen ausgelassen mit tron-radio_v6.1.zip und deiner playlist mein RPi B+ mit Wave Touchdisplay ausgestattet, ich weiß zwar nicht was die udev und deren Befehle bedeuten aber vieleicht kann ich meine Unwissenheit anderweitig wettmachen.

    In deiner Anleitung ist dir leider ein Pfadfehler unterlaufen.

    'tron-radio autostart in nano /etc/rc.local eintragen
    /usr/src/tron-radio/start_tron-radio.sh'

    Entweder nur die start.sh oder was anderes mit der tron-radio.py

    paulaner

    Einmal editiert, zuletzt von paulaner (3. August 2015 um 22:51)


  • Hallo,

    ich hatte ein ähnliches Problem. Bei mir lag es daran das der Editor (Notepad++) unsichtbare nicht druckbare Zeichen hinzugefügt hat. Nachdem ich diese sichtbar gemacht und entfernt habe ging alles wieder fehlerfrei. Stelle deine Playlist doch mal zur Verfügung. Ich schaue sie mir dann mal an ...

    Hallo,
    Danke für den Tip. Das war das Problem. Der Editor der machte unsichbare Zeichen und dann konnte die Playliste nicht richtig ausgelesen werden.

  • Hallo Lema76,
    dein Tron-Radio hat mir sofort gefallen und nachdem ich eh einen Raspi herumliegen hatte hab ich das von dir angegebene Touchdisplay gekauft. Heute ist das Teil nach nur 10 Tagen Lieferzeit angekommen, hab mich wie ein kleines Kind gefreut. ;)
    Also hab ich am Abend die Anleitung von dir durchgeackert und hänge leider beim Starten vom Radio bei einer Fehlermeldung in Bezug auf die WLAN Verbindung (vermute ich mal):

    WLAN funktioniert über wlan0, bin mit putty auf der Console, zusätzlich habe ich auch noch eth0 verbunden.
    /etc/network/interfaces

    ifconfig

    Kannst du mir bitte schreiben wo der Hund begraben liegt bzw. was ich falsch gemacht haben könnte? :s
    Danke und Gruß,
    wolfo

  • Hallo Lema,
    hab nun seit ca. einem halben Jahr dei Radio laufen. Bin bei der Version 5.3 geblieben.
    Diese Version erfüllt eigentlich alles was man von einem Webradio erwartet.
    ( Wenn ich wieder etwas Zeit habe , dann werden ich deine nachfolgenden Versionen mal testen)
    Also alles bestens.

    Ein kleines Problem hätte ich da noch.
    Wollte heute die playlist bearbeiten und einen onlinstream einfügen.
    Konkret folgendes

    Code
    http://onlinestream.de:6592

    Funktioniert nicht.
    Das Radio bleibt bei deinem Eröffnungsbidschirm stehen und das wars.
    DIe Karte muss danach neu beschrieben werden.
    Gibt es da eine Lösung oder versuche ich hier etwas zu realisieren was garnicht geht.

    Einmal editiert, zuletzt von tino11 (21. August 2015 um 21:04)

Jetzt mitmachen!

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