T.I.N.Y.Radio - InternetRadio mit WT32-SC01-PLUS

  • So,

    wie schon (lange) angekündigt, hier mein erster Schuss für ein einfaches (aber, ich denke, schönes) InternetRadio. Idee bzw. Auslöser war Jupp, der sich eine Skalensimulation wünschte (oder zumindest die Idee formulierte).

    Ein paar Anmerkungen:

    1. T.I.N.Y.Radio steht für This Is Not YoRadio - ok ? Was nicht heissen soll, dass YoRadio schlecht ist - keinesfalls !
    2. Ich wollte nicht noch eine EierLegendeWollMilchSau bauen. Wozu auch ? Nur dass dieses Modul auch unterstützt wird ?
    3. Ich habe - gelinde gesagt - die Nase voll, von langweiligen 7-Segment-Simulationen, überfrachteten Displays ("MäuseKino"). Die gibts zur Genüge, und wer es mag...
    4. Also: was macht das Ding ? InternetRadio ohne viel Schnickschnack mit dem Anspruch des Designs (dazu später mehr).
    5. Alle Quellen liegen in meinem Repository- zusätzlich habe ich auch die aktuellen Binaries der Firmware ("release") und im ReadMe die notwendigen Daten für das Flashen.

    Der Screen erklärt sich fast von selbst :

    • oben links eine EM11-Simulation als VU-Meter
    • Oben rechts der Name der Station und darunter der aktuelle Titel
    • In der Mitte die Skalensimulation mit Zeiger. Es können nur die Stationen "angefahren" werden, die in der Konfiguration gespeichert sind (hier im Bild mit Unterstrich und hellblauem Marker)
    • Darunter die Lautstärke-Anzeige
    • Ganz unten Touch für "Leiser", "Station zurück", "Station vor" und "Lauter").
    • Das wars schon.
    • Fast.

    SSDI und Passwort werden über ein Captive-Portal abgefragt und zwar: wenn kein bekanntes WLAN erreichbar ist oder nach einem DoubleReset innerhalb (hier jetzt:) 30 Sekunden (konfigurierter).
    Die Anzeige, ob ein erneutes Reset zum Captive-Portal führt, erfolgt mit einem dezenten Rahmen um die EM11 - ist der weg, löst ein erneutes Reset "nur" einen Neustart aus.

    Die Stationen und Farben können über ein Web-Portal eingestellt werde. maximal sind hier jetzt 19 Stationen möglich, die gleichmässig über die Skale verteilt werden.
    Farben können eingestellt werden für:

    • Hintergrund
    • StationsNamen und Rahmen
    • Marker (die rechteckigen "Dinger" vor dem Stationsnamen)
    • Zeiger der Haupt-Skale
    • Zeiger der Lautstärke

    Was kommt als nächstes?

    • Encoder-Steuerung für Station und Lautstärke
    • Alternatives Design im "Dieter Rams"- Stil (Firma Braun und so)

    Ach so:
    das captive Portal hat die SSID "TinyRadio" und das Passwort "12345678"
    die Einstellungen (Farben / Sender ) erreicht man über Browser tinyradio.local

    Think different !

    Viele Grüße aus Berlin
    Frank 

    Edited once, last by DrNeurosurg (May 21, 2024 at 3:49 PM).

  • Hallo Frank,

    mein Kompliment! Die Simulation ist richtig gut gelungen!

    Auch das "captive Portal" funktioniert prima.

    Bei mir ist das touchpad ohne Funktion. Mangels Alternativen kann ich das Radio leider nicht bedienen. Da bin ich noch am suchen woran es hapert. Zum Aufspielen hab ich platformio benutzt. Das Webinterface dürfte gerne noch Funktionen für eine rudimentäre Bedienung haben.

    Gruß,
    Jupp
    -----------------------------

    Wenn man ein Orakel nur über Tautologien würfeln lässt, hat es immer recht.
    (MAKE)

  • ich habe den Touchtreiber ausgetauscht, damit klappt die Touch-Bedienung.

    Code
    //lgfx::Touch_FT5x06 _touch_instance;
      lgfx::Touch_CST816S _touch_instance;

    eigentlich ist im WT32-SC01-PLUS ein FT6336U verbaut. Der FT5x06-Treiber hat bei den anderen Sketchen immer funktioniert. Beim TinyRadio aber nicht. Dafür funktioniert jetzt der CST816S. Erklären kann ich es mir nicht.

    PS: Vergiss was ich oben geschrieben habe. Ich habe den Treiber testweise wieder auf FT5x06 zurückgestellt und der Touch läuft.

    Es fällt auf dass der Zeiger sprungartig auf den nächsten Sender wechselt, und nicht in einer flüssigen Bewegung. Das reduziert die Anforderungen an die Hardware. Das starke Board mit dem Parallel-Display hätte genug Ressourcen für einen sanften Zeigerlauf.

    Gruß,
    Jupp
    -----------------------------

    Wenn man ein Orakel nur über Tautologien würfeln lässt, hat es immer recht.
    (MAKE)

    Edited once, last by saarfranzose (May 21, 2024 at 7:32 PM).

  • zum Display ist zu sagen, es wirkt nicht wie das Abbild einer Skala, sondern wie eine echte Glasskala mit durchscheinender Beleuchtung! Das ist einzigartig und das habe ich so noch nicht erlebt. Auch die Aufteilung der Stationen auf der Skala mit der Namensgenerierung und den Senderinformationen ist sehr aufgeräumt und übersichtlich. Und das MA setzt dem ganzen noch eine Krone auf!

    Gruß,
    Jupp
    -----------------------------

    Wenn man ein Orakel nur über Tautologien würfeln lässt, hat es immer recht.
    (MAKE)

  • Hallo Jupp,

    zuerst vielen Dank, dass du

    1. so schnell die "Sache" einem Test unterzogen hast und
    2. für das viele Lob (ich hoffe, es steigt mir nicht zu Kopfe ..)

    Aber nun zu den Problemen / Änderungen.

    Das mit dem Touch ist bei mir auch ein (kleines) Problem: richtig gut reagieren die Buttons erst, wenn man sie oberhalb des eigentlichen Buttons drückt. Ich werde das in den nächsten Stunden / Tagen mal einer Analyse unterziehen - vielleicht (aber nur: vielleicht) hat LVGL da einen Bug mit der Button-Matrix.

    Dabei gleich die zweite Anmerkung:
    Ich habe ganz bewusst auf "gerenderte" Buttons usw. verzichtet, weil ich u.a. die Möglichkeiten von LVGL ausloten wollte (siehe Zeiger)
    Doch bis jetzt gefallen mir die Buttons noch nicht so recht -"neue" sind schon in Arbeit (da geht aber noch mehr):

    Genauso gefällt mir noch nicht das "flache" Aussehen der EM11 ... da gucke ich mal, was da geht (demnächst probiere ich mal ein Zeiger-VU-Meter aus...)

    Und - ganz wichtig - ich habe eine Animation zum Skalenzeiger hinzugefügt. Hoffe, es gefällt.

    Think different !

    Viele Grüße aus Berlin
    Frank 

  • Quote from "DrNeurosurg" pid="276416" dateline="1716366750"

    Das mit dem Touch ist bei mir auch ein (kleines) Problem: richtig gut reagieren die Buttons erst, wenn man sie oberhalb des eigentlichen Buttons drückt. Ich werde das in den nächsten Stunden / Tagen mal einer Analyse unterziehen - vielleicht (aber nur: vielleicht) hat LVGL da einen Bug mit der Button-Matrix.

    Ich habe deinen Code noch nicht durchgeschaut, aber machst du eine Calibrierung des Touch-Feldes mit dem Screen? Die Daten dann am Besten speichern um beim nächsten Start gleich wieder zu haben.

    Ungefähr so https://github.com/jakpaul/lvgl_touch_calibration

    Mehrfach Antrag auf Löschung des Nutzerkontos gestellt!

  • Quote from "OttoBerger" pid="276421" dateline="1716370973"

    Ich habe deinen Code noch nicht durchgeschaut, aber machst du eine Calibrierung des Touch-Feldes mit dem Screen? Die Daten dann am Besten speichern um beim nächsten Start gleich wieder zu haben.

    Ungefähr so https://github.com/jakpaul/lvgl_touch_calibration

    Hi,

    da hatte ich auch zuerst dran gedacht, aber: in einer anderen Anordnung (selber code, selbes styling) funktioniert es ...
    Der einzige Unterschied ist, dass ich im funktionierenden Fall die Matrix "einfach so" im MainScreen anordne und im nicht funktionierenden in einem Container ..

    Think different !

    Viele Grüße aus Berlin
    Frank 

  • Hallo, Frank,
    definitiv was neues und erfrischend die Skallensimulation. Und wenn der Weg die SSDI zu wechseln so easy wie du schreibst, Chapeau für das Projekt! :thumbs_up:

    Gruß,
    Ivan

    Edited once, last by navi (May 22, 2024 at 12:15 PM).

  • Quote from "DrNeurosurg" pid="276423" dateline="1716371190"

    Hi,

    da hatte ich auch zuerst dran gedacht, aber: in einer anderen Anordnung (selber code, selbes styling) funktioniert es ...
    Der einzige Unterschied ist, dass ich im funktionierenden Fall die Matrix "einfach so" im MainScreen anordne und im nicht funktionierenden in einem Container ..

    Die gute Nachricht: an meinem Code liegt es nicht.
    Die schlechte Nachricht: Da es sich bei der ButtonMatrix um ein "Grid" handelt und um meinen Container auch usw. "möchte" das LVGL nicht (steht so in den Docs).

    Na gut: Dann eben doch einzelne (Image-) Buttons... war sowieso geplant.

    Habe aber den Fehler erstmal korrigiert :smiley32:

    Think different !

    Viele Grüße aus Berlin
    Frank 

    Edited once, last by DrNeurosurg (May 22, 2024 at 4:03 PM).

  • es wird immer perfekter. Die neue Zeigeranimation zeige ich in einem Kurzvideo:

    External Content youtu.be
    Content embedded from external sources will not be displayed without your consent.
    Through the activation of external content, you agree that personal data may be transferred to third party platforms. We have provided more information on this in our privacy policy.

    Gruß,
    Jupp
    -----------------------------

    Wenn man ein Orakel nur über Tautologien würfeln lässt, hat es immer recht.
    (MAKE)

  • Das ist mal ein wirklich sehr schönes Konzept. Flüssige Simulation, aufgeräumte sparsame Optik, ganz mein Geschmack, werde ich mal nachbauen.
    Wo bezieht man das Board am besten, direkt von Ali?

    Gruß Frank

    sicheres Auftreten bei völliger Ahnungslosigkeit

  • Frank, bestelle dir auch gleich das Debugging Tool mit. Sonst kann das Beschreiben des WT32 zur Tortur werden. Und achte auf das "plus" in der Bezeichnung.
    Der Unterschied zwischen Ali und Antratek beträgt wirklich nur ca. 5€.

    Gruß,
    Jupp
    -----------------------------

    Wenn man ein Orakel nur über Tautologien würfeln lässt, hat es immer recht.
    (MAKE)

  • Da mir aktuell sowieso die Zeit knapp ist habe ich das Board mit Debuggingtool bei Ali bestellt, bin gespannt.

    Gruß Frank

    sicheres Auftreten bei völliger Ahnungslosigkeit

  • Sieht klasse aus. PlatformIO ist mir total suspect. Irgendwie hat's dann geklappt.
    Der Ton fehlt noch mangels Stecker, ist unterwegs.
    Gruß Frank

    sicheres Auftreten bei völliger Ahnungslosigkeit

  • Glückwunsch, Frank! Zu PlatformIO hatte ich mir damals ein Tutorial angeschaut und dann hat es auch funktioniert. Es hat ein ziemliches Eigenleben. Richtet sich die Umgebung automatisch ein, zieht sich im Hintergrund updates. Man muss manchmal einfach warten bis es seine Aktivitäten erledigt hat. Sieht man ja rechts unten.
    Ich bin mal gespannt wo du das Modul einbauen wirst :)

    Gruß,
    Jupp
    -----------------------------

    Wenn man ein Orakel nur über Tautologien würfeln lässt, hat es immer recht.
    (MAKE)

  • So, ich habe dann auf Stereo umgebaut.

    In der WT32_SC01_PLUS.h sind die I2S Pins definiert auf die GPIO 10,11,12 gelegt. Falls man den Encoder verwendet muss man andere verwenden.

    wt32.JPG

    In der audiotask.cpp sind die I2S Pins nochmal definiert. Reicht nicht einmal?

    audio.JPG

    Bei dem Audiomodul muss noch ein Filter über Lötbrücke definiert werden. Man kann zwischen N normal und L lowdelay wählen. Keine Ahnung was der Unterschied ist. Zuerst funktioniert es immer noch noch nicht bis ich gemerkt habe das die Pinleiste nur an einer Stelle verlötet war.

    Muss man wissen...

    Die 5V Betriebsspannung habe ich von dem WT32 genommen.


    Gruß Frank

    sicheres Auftreten bei völliger Ahnungslosigkeit

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!