{"id":2156,"date":"2020-06-25T17:12:57","date_gmt":"2020-06-25T15:12:57","guid":{"rendered":"https:\/\/funrecycler.com\/?p=11082"},"modified":"2020-06-25T17:12:57","modified_gmt":"2020-06-25T15:12:57","slug":"raspi-wird-zum-internetradio-moodeaudio","status":"publish","type":"post","link":"https:\/\/funrecycler.com\/index.php\/2020\/06\/25\/raspi-wird-zum-internetradio-moodeaudio\/","title":{"rendered":"Raspi wird zum Internetradio &#8211; moodeaudio"},"content":{"rendered":"<p style=\"overflow-wrap:anywhere\">Vor ein paar Jahren (2009) hab ich ja dar\u00fcber berichtet, wie man auf ein <a href=\"https:\/\/funrecycler.com\/index.php\/2009\/08\/11\/noxon-90elf-bereinigen-der-firmware\/\" style=\"overflow-wrap:anywhere\">Noxon eine werbefreie <\/a>Firmware bekommt. Und ja, das Radio lief damit wirklich lange und macht es in Teilen immer noch. Leider verliert es seit einiger Zeit gerne mal die Verbindung. Dabei spielt es keine Rolle, ob man \u00fcber WLAN oder LAN am Netz h\u00e4ngt. Es wird also mal Zeit, \u00fcber eine Alternative nachzudenken. <br \/>Alte Raspis liegen durch die ganzen Konsolidierungen als Docker Container ungenutzt im Regal. Aktuell ist man ja schon bei Version 4 und man will dadurch auch kaum noch V1 der kleinen Minicomputer einsetzen. Alles dauer so f\u00fcrchterlich lange. <br \/>Getestet habe ich aber auf einem V3 und alles damit durchgespielt. Volumio sollte es als erstes sein, hat aber dann recht schnell gegen Moode Audio verloren. Die Funktionen der beiden Platzhirsche im Audio Bereich sind sehr \u00e4hnlich. Sogar ein winziges OLED habe ich hinbekommen. <\/p>\n<p>Ich gehe in dieser Anleitung von einer frischen Installation aus: https:\/\/moodeaudio.org\/ <\/p>\n<p style=\"overflow-wrap:anywhere\">Angeschlossen wird ein OLED . 0.96\u2033 OLED Display I2C IIC TWI 128\u00d764 Punkte Displaytyp: OLED GM009605 <a href=\"https:\/\/www.upgradeindustries.com\/media\/ebay\/Photos\/OLED\/datasheet.pdf\" style=\"overflow-wrap:anywhere\">Datenblatt<\/a> .Verwendet wird ein SSD1306 Treiber. Dieses geht nur \u00fcber ein paar Hacks im System. <\/p>\n<pre><code>ssh pi@moode.local\nPassort: moodeaudio<\/code><\/pre>\n<p style=\"overflow-wrap:anywhere\"> Um den spectrum audio visualizer zu nutzen, brauchen wir <a href=\"https:\/\/github.com\/karlstav\/cava\" style=\"overflow-wrap:anywhere\">cava<\/a>. <\/p>\n<pre><code>sudo apt-get update\nsudo apt-get install libfftw3-dev libasound2-dev\ngit clone https:\/\/github.com\/karlstav\/cava\ncd cava\n.\/autogen.sh\n.\/configure\nmake\nsudo make install<\/code><\/pre>\n<p style=\"overflow-wrap:anywhere\">Nun muss in der <strong>\u00a0\/boot\/config.txt <\/strong>noch ein Zeile eingetragen werden. <\/p>\n<pre><code>sudo nano \/boot\/config.txt\n....\ndtparam=i2c_arm=on\n<\/code><\/pre>\n<p style=\"overflow-wrap:anywhere\">In \/etc\/modules auch noch das Modul hinzuf\u00fcgen. <\/p>\n<pre><code>sudo nano \/etc\/modules\n....\ni2c-dev<\/code><\/pre>\n<p style=\"overflow-wrap:anywhere\">Nun wird mpd_oled gebaut. <\/p>\n<pre><code>sudo apt install libi2c-dev i2c-tools lm-sensors\ngit clone https:\/\/github.com\/antiprism\/mpd_oled\ncd mpd_oled\nsqlite3 \/var\/local\/www\/db\/moode-sqlite3.db &quot;DROP TRIGGER ro_columns&quot;\nsqlite3 \/var\/local\/www\/db\/moode-sqlite3.db &quot;UPDATE cfg_hash SET ACTION = &#x27;warning&#x27; WHERE PARAM = &#x27;\/var\/www\/command\/worker.php&#x27;&quot;\nsqlite3 \/var\/local\/www\/db\/moode-sqlite3.db &quot;UPDATE cfg_hash SET ACTION = &#x27;warning&#x27; WHERE PARAM = &#x27;\/var\/www\/inc\/playerlib.php&#x27;&quot;\nsudo cp mpd_oled_fifo.conf \/usr\/local\/etc\/\nsudo patch -d\/ -p0 -N &lt; moode_mpd_fifo.patch\nsqlite3 \/var\/local\/www\/db\/moode-sqlite3.db &quot;update cfg_system set value=1 where param=&#x27;extmeta&#x27;&quot; &amp;&amp; mpc add &quot;&quot;\n<\/code><\/pre>\n<p style=\"overflow-wrap:anywhere\">In der Weboberfl\u00e4che die Zeitzone anpassen timezone at &quot;Moode&quot; \/ &quot;Configure&quot; \/ &quot;System&quot; und den Raspi rebooten!<\/p>\n<pre><code>cd mpd_oled\nPLAYER=MOODE make<\/code><\/pre>\n<p style=\"overflow-wrap:anywhere\">OLED-Display anschlie\u00dfen<\/p>\n<figure style=\"max-width:100%\">\n<div style=\"max-width:100%;overflow-x:auto\">\n<table>\n<tbody>\n<tr>\n<th>\n<p style=\"overflow-wrap:anywhere\">OLED Pin<\/p>\n<\/th>\n<th>\n<p style=\"overflow-wrap:anywhere\">Pin raspi<\/p>\n<\/th>\n<th>\n<p style=\"overflow-wrap:anywhere\">Notes<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p style=\"overflow-wrap:anywhere\">Vcc<\/p>\n<\/td>\n<td>\n<p style=\"overflow-wrap:anywhere\">1 <\/p>\n<\/td>\n<td>\n<p style=\"overflow-wrap:anywhere\">3.3V<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p style=\"overflow-wrap:anywhere\">Gnd<\/p>\n<\/td>\n<td>\n<p style=\"overflow-wrap:anywhere\">6<\/p>\n<\/td>\n<td>\n<p style=\"overflow-wrap:anywhere\">Ground<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p style=\"overflow-wrap:anywhere\">SCL<\/p>\n<\/td>\n<td>\n<p style=\"overflow-wrap:anywhere\">5<\/p>\n<\/td>\n<td>\n<p style=\"overflow-wrap:anywhere\">I2C SCL<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p style=\"overflow-wrap:anywhere\">SDA<\/p>\n<\/td>\n<td>\n<p style=\"overflow-wrap:anywhere\">3<\/p>\n<\/td>\n<td>\n<p style=\"overflow-wrap:anywhere\">I2C SCA<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/figure>\n<p style=\"overflow-wrap:anywhere\">Pr\u00fcfen ob es erkannt wird.<\/p>\n<p style=\"overflow-wrap:anywhere\">i2cdetect -y 1<\/p>\n<p style=\"overflow-wrap:anywhere\">00: &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212;<br \/>10: &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212;<br \/>20: &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212;<br \/>30: &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; 3c &#8212; &#8212; &#8212;<br \/>40: &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212;<br \/>50: &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212;<br \/>60: &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212;<br \/>70: &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212;<\/p>\n<p style=\"overflow-wrap:anywhere\">Auf Adresse 3c meldet sich das Display. <\/p>\n<p style=\"overflow-wrap:anywhere\">sudo .\/mpd_oled -o 3 -b 10 -g 1 -f 20<\/p>\n<p style=\"overflow-wrap:anywhere\">Nun sollte was zu sehen sein. <br \/>Nun muss man nur noch die Werte in die Config eintragen. <\/p>\n<pre><code>nano mpd_oled.service\nsudo bash install.sh\nsudo systemctl start mpd_oled\n<\/code><\/pre>\n<p style=\"overflow-wrap:anywhere\">Was die einzelnen Parameter bedeuten, sieht man mit dem folgenden Befehl.<\/p>\n<pre><code>sudo .\/mpd_oled --help <\/code><\/pre>\n<p style=\"overflow-wrap:anywhere\">Sollen die Werte angepasst werden, muss man mit<br \/>install.sh die config neu einlesen.<\/p>\n<p style=\"overflow-wrap:anywhere\">Link zum <a href=\"https:\/\/github.com\/antiprism\/mpd_oled\" style=\"overflow-wrap:anywhere\">Github<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Vor ein paar Jahren (2009) hab ich ja dar\u00fcber berichtet, wie man auf ein Noxon eine werbefreie Firmware<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,6,9,4],"tags":[754,3123,577,3124,3125,3126,3073,2966,2967,3127,3128],"class_list":["post-2156","post","type-post","status-publish","format-standard","hentry","category-computer-und-technik","category-hardware-computer-und-technik","category-kniffe-und-tricks","category-linux-computer-und-technik","tag-display","tag-internetradio","tag-konfigurieren","tag-moode","tag-moodeaudio","tag-mpd-oled","tag-oled","tag-pi","tag-raspberry","tag-volumio","tag-zero"],"_links":{"self":[{"href":"https:\/\/funrecycler.com\/index.php\/wp-json\/wp\/v2\/posts\/2156","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/funrecycler.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/funrecycler.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/funrecycler.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/funrecycler.com\/index.php\/wp-json\/wp\/v2\/comments?post=2156"}],"version-history":[{"count":1,"href":"https:\/\/funrecycler.com\/index.php\/wp-json\/wp\/v2\/posts\/2156\/revisions"}],"predecessor-version":[{"id":3167,"href":"https:\/\/funrecycler.com\/index.php\/wp-json\/wp\/v2\/posts\/2156\/revisions\/3167"}],"wp:attachment":[{"href":"https:\/\/funrecycler.com\/index.php\/wp-json\/wp\/v2\/media?parent=2156"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/funrecycler.com\/index.php\/wp-json\/wp\/v2\/categories?post=2156"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/funrecycler.com\/index.php\/wp-json\/wp\/v2\/tags?post=2156"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}