Radio-Bastler-Forum (RBF)

Normale Version: ESP32-Internetradio yoRadio
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4 5
Siegfried machte mich auf diese Software aufmerksam. Am gleichen Abend hatte ich eine Hardware zusammengesteckt und das Radio in Betrieb genommen. Hier meine Eindrücke.

Es ist ein recht großes Paket, vergleichbar mit Edzelf oder KaRadio. Nach meiner Einschätzung aber noch umfangreicher und flexibler.

[attachment=120469]

In der Einleitung des Quellcode sind alle notwendigen links hinterlegt und man sieht dass es auf den Libraries von Schreibfaul1 aufgebaut ist:

Zitat:/* ============================================================================================================
*    ёRadio
* ============================================================================================================
*    Web-radio based on
*    ESP32-audioI2S    https://github.com/schreibfaul1/ESP32-audioI2S 
*    or/and
*    ESP32-vs1053_ext  https://github.com/schreibfaul1/ESP32-vs1053_ext
*    libraries
* ============================================================================================================
*    Project home      https://github.com/e2002/yoradio
*    Wiki              https://github.com/e2002/yoradio/wiki
*    Описание на 4PDA  https://4pda.to/forum/index.php?s=&showt...=112992611
*    Как это прошить?  https://4pda.to/forum/index.php?act=find...12992611-2
* ============================================================================================================
*    Here goes!
* ============================================================================================================

Das bedeutet Unterstützung für interne und externe DAC, aber auch ein VS1053 kann eingebunden werden. Eine große Anzahl Displaytypen kann ausgewählt werden, sowie die Art der Bedienung. Ein oder zwei Encoder, Taster oder Touchfeld. Zum Einbinden ins eigene Netz kann ein AP-Modus genutzt werden:

[attachment=120474]

Oder man hinterlegt seine Zugangsdaten vor dem Kompilieren in der Datei yoRadio/data/data/wifi.csv. Es wird ein Huge App Partitionsschema ausgewählt und mit der IDE in der Version 1.8.x der data-Ordner ins Spiff übertragen. Das Plugin ESP32 Sketch Data Upload muss also installiert sein. Zusätzliche Bibliotheken sind im README angegeben, einige sind bereits in dem Unterordner yoRadio/src bereitgestellt und damit automatisch verfügbar.
Die Hardwarekonfiguration klickt man sich in einem webtool zusammen. Dabei hat man auch Einfluß auf die benutzten gpio. Das tool erzeugt eine Datei mit dem Namen myoptions.h, die man im Sketch-Ordner ablegt.

Damit sind die Vorbereitungen auch schon erledigt. Der data-Ordner wird als erstes hochgeladen, danach der kompilierte Sketch. Hat man den Weg zum eigenen WLAN gefunden geht es weiter im webinterface:

Die Playlist ist erst mal noch leer. Man erreicht sie über das kleine Notensymbol links oben. Es kann auch eine exportierte Playlist von KaRadio importiert werden.

[attachment=120471]

im Bereich Settings kann ein VU-Meter eingeblendet werden sowie der Bildschirm gedreht oder invertiert werden:

[attachment=120472]

das Verhalten der Encoder kann eingestellt werden, ebenso die Zeitzone und weitere WLAN-Netze:

[attachment=120473]

Ein besonderes Highlight ist die Anzeige von Wetterdaten. Dazu wird die Wetter-Option eingeschaltet und ein API-Key von OpenWeather eingetragen:

[attachment=120475]

und so sieht das ganze dann aus:



YoRadio bietet auch das Abspielen von mp3-Dateien von einer SD-Karte. Unterordner auf der SD können frei angelegt werden. YoRadio indiziert die komplette SD-Karte. Mit einer etwas versteckten Funktion kann eine endlose Wiedergabe gewählt werden:

[attachment=126114]
Hallo, Jupp,
Wieder ein interessantes Projekt! Danke!
Jupp,

vielen Dank für Deine Nachtschicht. Mit Deiner Hilfe konnte ich es mit dem ESP32 Audio, auch ohne Encoder, zum Laufen bringen.

Mit dem Wetter sieht es richtig gut aus und bei 3,2“ sieht man auch was


Siegfried
da man die volle Kontrolle über die Hardware und die gpio-Belegung hat gibt es auch mit dem Pintel-Audio Board keine Probleme.
Display GC9A01A

ein besonderes Display ist das GC9A01A. Ich hatte mal eins zum Basteln bestellt und gesehen dass es von yoRadio unterstützt wird:

[attachment=120520]

[attachment=120521]



da VU-Meter wird fast ganz überschrieben, deshalb schaltet man es besser ab. Die Wetterinformation schaltet man auch besser ab, sie ist bei der Größe kaum zu lesen.


Audiobaustein CS4344

der Audiobaustein CS4344 wird nicht direkt in der Konfiguration angeboten, aber von der Schreibfaul-Library unterstützt. Um ihn zu konfigurieren müssen wir in die Datei: yoradio-main\yoradio-main\yoRadio\src\core\player.cpp.

Dort ist die Zeile:

setPinout(I2S_BCLK, I2S_LRC, I2S_DOUT);

zu erweitern auf:

setPinout(I2S_BCLK, I2S_LRC, I2S_DOUT, -1, I2S_MCLK);

die Deklaration von I2S_MCLK wird in der myoptions.h ergänzt (obwohl man dort eigentlich nicht manuell schreiben sollte):

#define I2S_MCLK 3

das Verdrahtungsschema hatte ich beim MAKE Radio bereits gezeigt:

[attachment=120522]
yoRadio mit Nokia 5110 Display

auch dieser alte Schinken wird unterstützt und gibt dem Radio ein spezielles Ambiente.

[attachment=120564]



Die Anschlussbezeichnungen sind etwas verwirrend, deshalb diese Tabelle:

1 RST = Reset
2 CE = CS
3 DO = A0/DC
4 DIN = SDA/MOSI
5 CLK = SCK
6 VCC = 3,3V
7 DL = 3,3V (Backlight)
8 GND



PCM5102

eine Lieferung von 3 Stück PCM5102 gab keinen Ton von sich. Die Ursache: es fehlten Lötbrücken:

[attachment=120565]

[attachment=120566]



VS1053

auch die VS1053 blieben stumm. Nach einiger Suche stand fest dass der Patch in der Software nicht aktiv war welcher vom Midi-Modus in den MP3-Modus schaltet. Die Aktivierung steht nicht in der Dokumentation. Siegfried fand die Lösung in einem ausländischen Forum.

die myoptions.h ist zu ergänzen um die Zeile:

#define VS_PATCH_ENABLE false
(23.04.2023, 22:10)saarfranzose schrieb: [ -> ]VS1053

auch die VS1053 blieben stumm. Nach einiger Suche stand fest dass der Patch in der Software nicht aktiv war welcher vom Midi-Modus in den MP3-Modus schaltet. Die Aktivierung steht nicht in der Dokumentation. Siegfried fand die Lösung in einem ausländischen Forum.

die myoptions.h ist zu ergänzen um die Zeile:

#define VS_PATCH_ENABLE        false

Danke, jetzt kann ich auch etwas hören Wink 

-Joe
schön dass du mitbastelst, Joe! Und auch dass meine gesammelten Erfahrungen zu etwas gut sind :-)
(20.04.2023, 13:57)saarfranzose schrieb: [ -> ]...
Es muss zwingend die IDE in der Version 1.x (aktuell 1.8.19) verwendet werden. Das erleichtert auch die Übertragung des data-Ordners ins Spiff.
...

Zur Info, die Version 2.1 funktioniert auch. yoRadio meldet sich nach dem ersten Start mit einer Konfigurationsseite. Von dort kann man dann die Daten ins Spiff laden.

-Joe
danke für den Hinweis, Joe! Ich bezog mich auf diesen Satz in der README.md:

Zitat:Arduino IDE version 2.x.x is not supported. Use Arduino IDE 1.8.19

die Dokumentation ist wohl noch nicht ganz nachgeführt.
Erweitern von YoRadio mit einer RTC

Auf meiner letzten Ausstellung hat sich gezeigt dass YoRadio keinen offline-Betrieb zuließ. Anstatt also Titel von der SD-Karte abzuspielen suchte es erst per AP-Mode nach einem WLAN. Der Schritt ließ sich nicht überspringen und das Radio hing an der Stelle fest. Als ich später mit Siegfried darüber sprach machte er mich darauf aufmerksam dass erst die aktuelle Version 9.300 eine offline-Betriebsart beherrscht. Im Radio-Mode springt es wie gewohnt in den AP-Mode, im Player-Mode hingegen startet es die mp3-Dateien auf der SD und kümmert sich im Hintergrund um eine WLAN-Verbindung. In dieser Situation wird zwar die Uhrzeit getaktet, zählt aber mangels Zeitinformation von 00:00 an aufwärts.

Damit auch im offline-Betrieb eine korrekte Uhrzeit angezeigt wird kann man eine RTC nachrüsten. Hier zeige ich die Erweiterung um eine RTC vom Typ DS3231.

[attachment=127029]

[attachment=127030]

Die Uhr wird einfach nur mit 3,3V versorgt und per I2C an den Prozessor angekoppelt. Üblicherweise nutzt der ESP32 für SDA GPIO21 und für SCL GPIO22. Nun braucht man theoretisch nur die Maske entsprechend auszufüllen und eine neue myoptions.h zu erzeugen:

[attachment=127031]

Schaut man in den Monitor, findet sich aber keine RTC Initialisierung:

[attachment=127033]

der Grund: die web-Konfiguration vergisst den Eintrag des Modul-Typ. Das ist dann schon der zweite bug des Formulars. Der erste bug betrifft das Vergessen des Display-Typ beim Aktivieren der SD-Karte. Es muss also wieder händisch in der myoption.h nachgebessert werden:

Code:
#define RTC_MODULE  DS3231
#define RTC_SDA 21
#define RTC_SCL 22

jetzt sieht man die Initialisierung im Monitor und im offline-Betrieb wird die korrekte Uhrzeit angezeigt:

[attachment=127034]

Die Möglichkeiten der myoptions.h lassen sich übrigens in diesem Beispielformular nachlesen.
Hallo fleißige Bastler,

ist es möglich yoRadio für das ESP32 Audio Kit mit  ES8388 zu benutzen?
Wenn ja wie muß ich vorgehen?
Hallo brezel,

natürlich kann man die gpio des Audio-Kit in der Konfigurationsmaske eintragen, das ist nicht das Problem.

zu beachten ist:

- das Audio-Kit hat nur wenige PIN rausgeführt. Je nach Ausführung reicht es nicht ohne Umwege für ein SPI-Display, für I2C stehen die Chancen evtl. besser
- die Endstufe muss über den PA_EN Pin aktiviert werden, sonst bleibt sie stumm

die Vielfalt der Variationen haben wir hier versucht aufzudröseln (hast du bestimmt schon gesehen):

ESP32 Audio Kit Grundlagen
Hallo Jupp,

danke fürs Antworten, mittlerweile bin ich schon etwas weiter.
habe einmal testweise yoRadio auf einen ESP32 mit MAX98537 und einem 1,8 Zoll SPI TFT Display geflasht.
Was soll ich sagen, ich bin begeistert selbst der Klang lässt sich einstellen und noch viel mehr Möglichkeiten sind gegeben.
Auf meinem Audioboard läuft noch mein Sketch der auch auf der schreibfaul libary basiert dort mit SSD 1306 Oled Display.
Alles aber ohne Webinterface, da reichen meine Kenntnisse noch nicht aus.
Gefunden habe ich hier: https://github.com/e2002/yoradio/issues/43 eine schon angepasste ino.

Gruß Udo
Hallo Udo,

klasse Hinweis! Das Layout des Audio Kit 2.2 / A247 ist identisch mit meiner Version 2.2 / 3378. In der angepassten myoptions.h ist leider kein SD-Reader berücksichtigt. Die Taster oder ein Encoder scheinen auch nicht aktiviert zu sein. Bleibt noch IR und Web zur Bedienung. Ich denke das ist es wert mal in Angriff genommen zu werden.
Hallo Jupp und alle anderen Bastler,

hab mal einen versuch gestartet, geflasht wie nach Anleitung und meine schon funktionierende Konfiguration mit Oled Display und Tastern so belassen.
Habe den Data Ordner mit meiner wifi und playlist. csv  gefüttert und übertragen, anschl. Sketch geflasht und ok.
Webserver ist erreichbar aber ohne Playlist und es lassen sich auch manuell keine Sender speichern.
Verwende Arduino 1.8.19 Boardversion 2.014 esp32 und bin jetzt bissel ratlos.
Habe das Audioboard V2.2 A210 mit I2C GPIOs for ES8388
ES_IIC_CLK      32
ES_IIC_DATA    33

Gruß Udo
Hallo Udo,

wenn die Senderliste leer ist kann es sein dass die Initialisierung des sketches nicht abgeschlossen ist weil er über eine Hardwarekomponente stolpert. Den Effekt hatte ich vor kurzem erst. Schau mal was der serielle Monitor meint.

I2C auf 32 und 33 bedeutet du hast die andere Version des Audio-Kit als die meinigen.
Hallo Jupp,

danke fürs Antworten, also der serielle Monitor hilft mir leider nicht weiter denn : Connect to ES8388 codec... Failed!
In meinem funktionierenden Sketch habe ich noch Amplifier enable #define GPIO_PA_EN 21 als output definiert, der wird im setup auf high gesetzt.
Hab da auch andere GPIOs für SPI ES8388 definiert, aber weder mit meiner Konfiguration noch mit dem Beispiel von : https://github.com/e2002/yoradio/issues/43
funktioniert die Verbindung zum ES8388 codec.

Ausgabe serieller Monitor:
18:11:02.872 -> ets Jul 29 2019 12:21:46
18:11:02.872 ->
18:11:02.872 -> rst:0x1 (POWERON_RESET),boot:0x1f (SPI_FAST_FLASH_BOOT)
18:11:02.872 -> configsip: 0, SPIWP:0xee
18:11:02.872 -> clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
18:11:02.872 -> modeBig GrinIO, clock div:1
18:11:02.872 -> load:0x3fff0030,len:1344
18:11:02.920 -> load:0x40078000,len:13964
18:11:02.920 -> load:0x40080400,len:3600
18:11:02.920 -> entry 0x400805f0
18:11:03.781 -> ##[BOOT]# ************************************************
18:11:03.829 -> ##[BOOT]# * ёPadio v0.9.300 *
18:11:03.829 -> ##[BOOT]# ************************************************
18:11:03.829 -> ##[BOOT]# ------------------------------------------------
18:11:03.829 -> ##[BOOT]# arduino: 10819
18:11:03.829 -> ##[BOOT]# compiler: 8.4.0
18:11:03.829 -> ##[BOOT]# esp32core: 2.0.14
18:11:03.829 -> ##[BOOT]# chip: model: ESP32-D0WD-V3 | rev: 3 | id: 1854132 | cores: 2 | psram: 4192123
18:11:03.829 -> ##[BOOT]# display: 2
18:11:03.829 -> ##[BOOT]# audio: I2S (26, 27, 25)
18:11:03.829 -> ##[BOOT]# audioinfo: false
18:11:03.829 -> ##[BOOT]# smartstart: 0
18:11:03.829 -> ##[BOOT]# vumeter: false
18:11:03.829 -> ##[BOOT]# softapdelay: 0
18:11:03.829 -> ##[BOOT]# flipscreen: false
18:11:03.876 -> ##[BOOT]# invertdisplay: false
18:11:03.876 -> ##[BOOT]# showweather: false
18:11:03.876 -> ##[BOOT]# buttons: left=5, center=23, right=18, up=255, down=255, mode=19, pullup=true
18:11:03.876 -> ##[BOOT]# encoders: l1=255, b1=255, r1=255, pullup=true, l2=255, b2=255, r2=255, pullup=true
18:11:03.876 -> ##[BOOT]# ir: 255
18:11:03.876 -> ##[BOOT]# ------------------------------------------------
18:11:03.876 -> ##[BOOT]# SPIFFS mounted
18:11:03.876 -> ##[BOOT]# display.init done
18:11:03.924 -> ##[BOOT]# player.init done
18:11:03.972 -> ##[BOOT]# network.begin
18:11:04.009 -> ##[BOOT]# Attempt to connect to Mein_Router
18:11:04.057 -> ##[BOOT]# ..
18:11:04.525 -> ##[BOOT]# done
18:11:04.572 -> ##[BOOT]# netserver.begin done
18:11:04.572 -> ##[BOOT]# telnet.begin done
18:11:04.572 -> ##[BOOT]#
18:11:04.572 -> ##[BOOT]# Ready! Go to http:/192.168.178.45/ to configure
18:11:04.572 -> ##[BOOT]# ------------------------------------------------
18:11:04.572 -> ##[BOOT]#
18:11:04.572 -> ##CLI.META#: [ready]
18:11:04.619 -> Connect to ES8388 codec... Failed!


Gruß Udo
Es gibt im Russ Forum am 21.08.23 folgenden Beitrag :

Ich habe yoRadio auf das AI ESP32 Audio Kit 2.2 A247 Board mit dem ES8388 Codec gesetzt.
Geänderte Dateien im Archiv.
yoRadio.zip ( 2.01 KB )

Leider kann ich( oder man) diese ZIP nicht öffnen, weil ich nicht angemeldet bin.
Aber vielleicht sind noch mehr Leser hier und jemand hat auch einen Anmeldung

Grüße
Siegfried
Hallo Udo,

das sind die Belegungen der beiden bekannten Varianten. Für dich müsste die rechte Spalte die passende sein. Die gehört zu der Variante die auch I2C auf 32 und 33 hat:

[attachment=128293]

GPIO_PA_EN hat mit der Initialisierung nichts zu tun. Der schaltet lediglich die Endstufen stumm, wobei earphones trotzdem funktioniert. Also für die ersten Versuche gehst du besser nicht über die Lautsprecher sondern über earphones.

Vielleicht gibt es auch library-Probleme mit dem ES8388. Das kann ich nicht testen weil meine Audio-Kit alle den AC101 beinhalten.
Seiten: 1 2 3 4 5