warum eine weitere software für Internetradios? Wir haben doch schon iRadio und Edzelf und viele andere.
Herausragende Vorteile von Karadio sind:
- sehr einfach aufzuspielen ohne compiler oder Entwicklungsumgebung.
- vielseitig in der Auswahl der Prozessorboards (alle Typen des ESP8266 oder ESP32, WROOM oder WROVER)
- Unterstützung sehr vieler Displaytypen (34 in der Grundausstattung, weitere per addon)
- vielseitige Möglichkeiten der Audioausgabe (VS1053, interner DAC, I2S, I2SMERUS, PWM)
- vielseitge Steuerungsmöglichkeiten (1 oder 2 Encoder, Tasten, touch, Infrarot, web, android-app, seriell)
- playlisten mit bis zu 255 Radiostationen können im webinterface inkl. Anzeigenamen exortiert / importiert werden
- sehr gesprächige serielle Monitorausgabe mit vielen Details zum laufenden Programm
negativ ist mir bis jetzt aufgefallen:
- die templates der Displayausgabe sind vorgefertigt und ohne Programmierkenntnisse nicht zu ändern
- keine grundsätzliche Unterstützung von Nextion-Displays. Es gibt lediglich ein addon für ein 7" Enhanced Nextion.
- Änderung der GPIO-Belegung: von der Auswahl vorgefertigter
hardware-Konfigurationen abweichende Belegungen müssen etwas aufwändig
gebaut werden per espressif framework (IDF/ADF) und toolchain.
Ergänzung 21.11.2022: gpio-Änderungen sind auch mit einem Hex-Editor direkt im binary möglich. Siehe: Das einfachste Internetradio mit dem neuen ESP32 Audio
Ergänzung 17.3.2023: Auf einem Linux-PC kann ich mittlerweile mit der toolchain/esp-idf selbst Hardware-binaries erzeugen
- je nach Audiokonfiguration können AAC und WMV-Formate nicht abgespielt werden.
In meinem Bericht werde ich mit einfachen Projekten beginnen und wir werden sehen wie tief ich mich einarbeiten kann.
Downloadquellen
Karadio ESP32
Karadio ESP8266
Ergänzung 21.11.2022:
KaRadio32_4
Einspielen der Software
Hierzu brauche ich nicht viel zu sagen. Es gibt ein deutsches Video in
dem der Vorgang besser gezeigt ist als ich das jemals erklären könnte.
Es werden einfach nur mit einem kleinen tool die binaries an die
entsprechenden Speicheradressen geladen. Dann wird per handy WLAN
verbunden (wie man es auch von Edzelf her kennt) und per webinterface
Tonausgabe und Radiostationen eingestellt.
Erster Versuchsaufbau
noch Freiluft ...
die Android-App:
Dann nahm ich einen Lochraster-Aufbau, der mal als
Edzelf-Experimentierplatine diente und den ich auf die
Standard-Belegungen von Karadio entsprechend der standard_adb.csv
umverdrahtet habe.
Ich benutzte einen wroom32-Baustein, der noch für Edzelf hier lag. Die
Tonausgabe erledigt ein VS1053, Anzeigeeinheit ist ein 2,8" SPI Display
mit ILI9341, in Karadio definiert als Typ 194.
Tonausgabe per I2S
der I2S-Baustein (Adafruit I2S 3W Class D Amplifier Breakout)
wird mit 3 Datenleitungen, 3,3 oder 5V und GND mit dem ESP32 Baustein verbunden.
Aktiviert wird I2S dann per webinterface. Fertig ist das Minimalradio!
von der Arduino-IDE wird nur der serielle Monitor benötigt für Statusausgaben und um den Code für das passende Display abzusenden. Das geht auch mit Telnet oder einem beliebigen anderen Terminal.
Lolin32
in der Hardwareauswahl gibt es auch diverse WeMos LOLIN - Boards. Hier
ein Testaufbau mit dem Adafruit DAC. Mit nur wenigen Verbindungen hat
man schon ein funktionierndes Internet-Radio.
ein 0,42" IC2 Display ist zum Ablesen eher ungeeignet. War ja auch nur ein Test:
viel brauchbarer ist da schon die 1,3" Version:
ich knüpfe mal hier an, nachdem ich der Dokumentation eines Komplettgerätes mit ESPlay Micro V2 einen eigenen thread gewidmet habe.
Nächster Versuch ist ein Aufbau mit einem WEMOS LOLIN32 Lite V1.0.0.
Kostet kaum mehr als 5 Euro, besitzt wie das Lolin32 Board aber keinen
PSRAM. Überhaupt sind die technischen Daten der beiden Boards zu 99%
identisch. Ein funktionierendes einfaches Internetradio läßt sich mit
beiden Modulen bauen. Mit der Einschränkung daß nur mp3/m3u Sender
abgespielt werden können (ist mir bei dem ersten Versuch in #post1 noch
nicht aufgefallen).
Die flash-Einstellungen:
Betrieb zunächst ohne Peripherie:
dann habe ich noch den encoder und ein 0,96" OLED dazu gesetzt.
Schaut man sich im Karadio-Paket die Datei Interface.md an stellt man
noch was interessantes fest. Man kann im seriellen Monitor die WiFi
Verbindung händeln und erspart sich damit die AP-Mode Prozedur:
Zitat:wifi.con("ssid","password") : Record the given AP ssid with password in AP1 for next reboot
um KaRadio32_4
mit meiner Platine betreiben zu können habe ich eine Binär-Datei
kompiliert. Es ging allerdings nicht ganz ohne eine Layout-Änderung.
Hier die Eckpunkte:
- es ist ein 2-Encoder-Betrieb möglich. Der zweite Encoder (für
Senderwechsel) wird an die Reservepin angeklemmt (GPIO 13,14, 33) .
Wobei 33 für den switch vorgesehen ist, der aber nicht unbedingt
benötigt wird.
- SPI, I2C und der erste Encoder sind 1:1 auf die Platine angepasst.
- Deaktiviert sind alle I2S-Verbindungen (werden ja auf der Platine
nicht benötigt, das sie für den VS1053 vorgesehen ist), IR_SIGNAL und
GPIO_LED.
- Eine Layoutänderung ist für die Reset-Leitungen notwendig. Diese sind
auf EN verdrahtet, sollen aber jetzt auf gpio16. EN unterbricht man am
besten in der Fassung des ESP32. Wenn die Fassung noch nicht eingelötet
ist drückt man den Kontaktpin aus der Fassung. Andernfalls knipst man
den Kontaktpin mit dem Seitenschneider heraus. Es wird dann eine Brücke
gelötet zwischen der Reset-Leiterbahn und gpio16:
Die zip enthält die Binärdatei für das Board und die Quelldatei
(CSV-Format) in der die Belegungen ebenfalls nachgesehen werden können:
jupp_4c.zip (Größe: 1,65 KB / Downloads: 1)
Hier die Verdrahtung der Platine:
und die Einstellungen des Download-Tools:
Keine Kommentare:
Kommentar veröffentlichen