
YoRadio GC9B72 2,1”
YoRadio GC9B72 2,1” – radio internetowe na ESP32-S3 z okrągłym ekranem i Spectrum
👁 171
❤️ 0
💬 1
⬇ 17
Projekt yoRadio GC9B72 2,1” powstał jako moja własna modyfikacja znanego projektu yoRadio. Celem było zachowanie sprawdzonego silnika radia internetowego, ale jednocześnie przygotowanie zupełnie nowego interfejsu dopasowanego do okrągłego wyświetlacza GC9B72 o rozdzielczości 360×360 px.
Całość pracuje na ESP32-S3, za dźwięk odpowiada zewnętrzny przetwornik PCM5102A, a okrągły ekran pełni rolę głównego interfejsu użytkownika.
To nie jest osobny odtwarzacz napisany od zera. Podstawą pozostaje yoRadio, natomiast obsługa GC9B72, rozmieszczenie elementów, dodatkowe wskaźniki, Spectrum oraz szereg zmian wizualnych zostały przygotowane specjalnie dla tej wersji.
Okrągły GC9B72 360×360
Jednym z głównych założeń było stworzenie interfejsu, który rzeczywiście wygląda dobrze na okrągłym ekranie.
Nie chciałem po prostu zmniejszyć prostokątnego interfejsu i pozwolić, żeby jego narożniki zostały ucięte przez obudowę wyświetlacza.
Poszczególne informacje zostały więc rozmieszczone z uwzględnieniem dostępnej powierzchni koła. Najważniejsze dane znajdują się w centralnej części, natomiast głośność i informacje o połączeniu wykorzystują górną część ekranu.
Informacje o aktualnie odtwarzanej stacji
Na ekranie wyświetlane są najważniejsze informacje otrzymywane przez yoRadio:
nazwa stacji, wykonawca, tytuł utworu oraz bitrate aktualnego strumienia.
Dłuższe nazwy stacji i utworów mogą być automatycznie przewijane, dzięki czemu niewielka średnica ekranu nie ogranicza ilości prezentowanych informacji.
Układ został celowo uproszczony – podczas normalnego słuchania jednym spojrzeniem można sprawdzić, czego aktualnie słuchamy.
Spectrum – analizator widma audio
Jedną z największych zmian jest dodanie Spectrum Analyzer.
Nie jest to animacja generująca losowe słupki. Analizator został połączony z rzeczywistym torem audio i wykorzystuje dane pochodzące z dekodowanego sygnału.
Dzięki temu poszczególne pasma reagują na faktyczną zawartość odtwarzanej muzyki.
Spectrum zostało również wyposażone w wygładzanie animacji. Słupki nie powinny nerwowo przeskakiwać pomiędzy wartościami, lecz płynnie podążać za sygnałem.
Po zatrzymaniu odtwarzania za pomocą STOP analizator nie pozostaje zamrożony na ostatniej wartości. Słupki są wygaszane i płynnie opadają do zera.
Głośność 0–100%
Standardową prezentację głośności zastąpiłem bardziej naturalnym dla użytkownika zakresem procentowym.
Na górze ekranu znajduje się ikona głośnika oraz wartość 0–100%.
Dzięki temu zamiast zastanawiać się, co oznacza wewnętrzna skala biblioteki audio, od razu otrzymujemy czytelną informację:
🔊 25%, 🔊 50%, 🔊 100%.
Dolny pasek głośności został usunięty, ponieważ na małym okrągłym ekranie niepotrzebnie zabierał miejsce.
Graficzny wskaźnik RSSI Wi-Fi
Po przeciwnej stronie górnej części ekranu znajduje się wskaźnik jakości połączenia Wi-Fi.
Siła sygnału jest przeliczana na kilka poziomów i przedstawiana w postaci graficznych słupków RSSI.
Nie jest to więc statyczna ikona – jej wygląd zmienia się zależnie od rzeczywistej jakości połączenia ESP32-S3 z siecią.
Przy radiu internetowym jest to szczególnie przydatne, ponieważ pozwala szybko sprawdzić, czy ewentualne problemy ze strumieniem mogą wynikać ze słabego Wi-Fi.
Zegar, sekundy, dzień tygodnia i data
Centralną część dolnej połowy ekranu wykorzystuje zegar.
Wyświetlany jest aktualny czas wraz z sekundami, a dodatkowo prezentowany jest dzień tygodnia i data.
Całość została rozmieszczona tak, aby zegar był dobrze widoczny, ale jednocześnie nie zabierał przestrzeni przeznaczonej dla informacji o muzyce oraz analizatora Spectrum.
Bitrate strumienia
Obok daty znajduje się aktualna informacja o jakości odbieranego strumienia, np.:
128 KBS
Pozwala to od razu sprawdzić bitrate aktualnie słuchanej stacji bez wchodzenia do panelu WWW.
Adres IP
Na dole interfejsu wyświetlany jest aktualny adres IP radia.
To niewielki dodatek, który w praktyce okazuje się bardzo wygodny. Nie trzeba szukać adresu urządzenia w routerze – wystarczy spojrzeć na ekran i wpisać pokazany adres w przeglądarce.
Panel WWW yoRadio
Ponieważ podstawą projektu pozostaje yoRadio, zachowujemy również jego rozbudowaną obsługę przez przeglądarkę.
Radio może być więc obsługiwane zarówno lokalnie za pomocą elementów sterujących urządzenia, jak i z telefonu, tabletu czy komputera poprzez sieć Wi-Fi.
Okrągły LCD jest głównym interfejsem podczas słuchania muzyki, natomiast panel WWW świetnie sprawdza się przy bardziej rozbudowanej konfiguracji.
Konfigurowalny layout – ustaw ekran po swojemu
Jedną z ważniejszych rzeczy, które dodałem podczas tworzenia tej wersji, jest możliwość łatwego dostosowania rozmieszczenia interfejsu przed kompilacją projektu.
Nie trzeba korzystać dokładnie z układu widocznego na moich zdjęciach.
Najważniejsze parametry zostały zebrane w jednym miejscu konfiguracji.
Można zmieniać między innymi:
pozycję X/Y głośnika,
pozycję i wielkość głośności,
pozycję RSSI,
położenie i szerokość nazwy stacji,
pozycję i rozmiar tytułu utworu,
położenie zegara,
pozycję bitrate,
pozycję daty,
położenie Spectrum,
wysokość i szerokość słupków analizatora,
pozycję adresu IP,
wybrane fonty i rozmiary tekstu.
Dzięki temu każdy może przygotować własną wersję ekranu – bardziej minimalistyczną, z większym zegarem, większym Spectrum albo inaczej rozmieszczonymi informacjami.
Wygaszacz dostosowany do okrągłego ekranu
Zmodyfikowany został również wygaszacz ekranu.
W pierwotnym mechanizmie pozycja zegara mogła zmieniać się dość mocno. Na niewielkim ekranie 360×360 powodowało to wrażenie, że zegar skacze po wyświetlaczu.
W tej wersji zakres ruchu został ograniczony.
Zegar zmienia swoją pozycję tylko nieznacznie i w większych odstępach czasu. Pozwala to zachować funkcję ochronną wygaszacza bez irytującego przemieszczania obrazu góra–dół.
Zakres przesunięcia również można zmienić w konfiguracji.
Polskie znaki i nazwy utworów
Podczas testów okazało się, że połączenie różnych fontów, przewijanego tekstu i sposobu kodowania znaków przez stacje radiowe powoduje problemy z częścią polskich liter.
Zamiast pozostawiać losowe symbole i „krzaki”, zastosowałem prostą i stabilną transliterację polskich znaków do ASCII.
Przykładowo:
Łódź → Lodz
Głośniki → Glosniki
Zażółć → Zazolc
Nie jest to pełne Unicode, ale zapewnia poprawną i przewidywalną prezentację nazw niezależnie od używanego fontu.
Hardware
Aktualna wersja została przygotowana dla:
ESP32-S3 – główny mikrokontroler i Wi-Fi
GC9B72 2,1" 360×360 – okrągły wyświetlacz TFT
PCM5102A – zewnętrzny DAC I2S
ESP32-S3 odpowiada jednocześnie za połączenie z Internetem, obsługę strumienia, dekodowanie audio, sterowanie ekranem, interfejs WWW oraz obliczenia potrzebne do działania Spectrum.
Projekt bazujący na yoRadio
Warto podkreślić, że projekt nie powstał od zera.
Bazą jest świetny projekt yoRadio, którego sprawdzony silnik radia internetowego został zachowany.
Moja wersja jest nakładką i rozbudowaną modyfikacją yoRadio, skupioną przede wszystkim na dodaniu obsługi GC9B72, przebudowie interfejsu okrągłego LCD oraz dodaniu nowych funkcji wizualnych.
Dzięki temu nie trzeba było tworzyć kolejnego silnika radia internetowego od początku – można było wykorzystać działającą bazę i skoncentrować się na funkcjach, których potrzebowałem w swoim urządzeniu.
Status projektu
Projekt jest obecnie w fazie dalszych testów.
Większość podstawowych funkcji działa już poprawnie, natomiast nadal sprawdzam stabilność długotrwałego odtwarzania oraz zachowanie Spectrum podczas uruchamiania, zatrzymywania i zmiany strumieni.
Dopiero po przejściu tych testów wersja zostanie oznaczona jako gotowa do szerszego udostępnienia.
Wkrótce do pobrania dla wspierających
📦 Po zakończeniu testów projekt zostanie udostępniony do pobrania dla osób wspierających STODOŁA made by P.C.
Planuję przygotować kompletną paczkę umożliwiającą samodzielne uruchomienie projektu oraz dostosowanie wyglądu interfejsu do własnych potrzeb.
STODOŁA made by P.C 🔧⚡
ESP32 • Elektronika • DIY • Druk 3D • Własne projekty
www.stodolapc.pl
BETA v1.0.0
Całość pracuje na ESP32-S3, za dźwięk odpowiada zewnętrzny przetwornik PCM5102A, a okrągły ekran pełni rolę głównego interfejsu użytkownika.
To nie jest osobny odtwarzacz napisany od zera. Podstawą pozostaje yoRadio, natomiast obsługa GC9B72, rozmieszczenie elementów, dodatkowe wskaźniki, Spectrum oraz szereg zmian wizualnych zostały przygotowane specjalnie dla tej wersji.
Okrągły GC9B72 360×360
Jednym z głównych założeń było stworzenie interfejsu, który rzeczywiście wygląda dobrze na okrągłym ekranie.
Nie chciałem po prostu zmniejszyć prostokątnego interfejsu i pozwolić, żeby jego narożniki zostały ucięte przez obudowę wyświetlacza.
Poszczególne informacje zostały więc rozmieszczone z uwzględnieniem dostępnej powierzchni koła. Najważniejsze dane znajdują się w centralnej części, natomiast głośność i informacje o połączeniu wykorzystują górną część ekranu.
Informacje o aktualnie odtwarzanej stacji
Na ekranie wyświetlane są najważniejsze informacje otrzymywane przez yoRadio:
nazwa stacji, wykonawca, tytuł utworu oraz bitrate aktualnego strumienia.
Dłuższe nazwy stacji i utworów mogą być automatycznie przewijane, dzięki czemu niewielka średnica ekranu nie ogranicza ilości prezentowanych informacji.
Układ został celowo uproszczony – podczas normalnego słuchania jednym spojrzeniem można sprawdzić, czego aktualnie słuchamy.
Spectrum – analizator widma audio
Jedną z największych zmian jest dodanie Spectrum Analyzer.
Nie jest to animacja generująca losowe słupki. Analizator został połączony z rzeczywistym torem audio i wykorzystuje dane pochodzące z dekodowanego sygnału.
Dzięki temu poszczególne pasma reagują na faktyczną zawartość odtwarzanej muzyki.
Spectrum zostało również wyposażone w wygładzanie animacji. Słupki nie powinny nerwowo przeskakiwać pomiędzy wartościami, lecz płynnie podążać za sygnałem.
Po zatrzymaniu odtwarzania za pomocą STOP analizator nie pozostaje zamrożony na ostatniej wartości. Słupki są wygaszane i płynnie opadają do zera.
Głośność 0–100%
Standardową prezentację głośności zastąpiłem bardziej naturalnym dla użytkownika zakresem procentowym.
Na górze ekranu znajduje się ikona głośnika oraz wartość 0–100%.
Dzięki temu zamiast zastanawiać się, co oznacza wewnętrzna skala biblioteki audio, od razu otrzymujemy czytelną informację:
🔊 25%, 🔊 50%, 🔊 100%.
Dolny pasek głośności został usunięty, ponieważ na małym okrągłym ekranie niepotrzebnie zabierał miejsce.
Graficzny wskaźnik RSSI Wi-Fi
Po przeciwnej stronie górnej części ekranu znajduje się wskaźnik jakości połączenia Wi-Fi.
Siła sygnału jest przeliczana na kilka poziomów i przedstawiana w postaci graficznych słupków RSSI.
Nie jest to więc statyczna ikona – jej wygląd zmienia się zależnie od rzeczywistej jakości połączenia ESP32-S3 z siecią.
Przy radiu internetowym jest to szczególnie przydatne, ponieważ pozwala szybko sprawdzić, czy ewentualne problemy ze strumieniem mogą wynikać ze słabego Wi-Fi.
Zegar, sekundy, dzień tygodnia i data
Centralną część dolnej połowy ekranu wykorzystuje zegar.
Wyświetlany jest aktualny czas wraz z sekundami, a dodatkowo prezentowany jest dzień tygodnia i data.
Całość została rozmieszczona tak, aby zegar był dobrze widoczny, ale jednocześnie nie zabierał przestrzeni przeznaczonej dla informacji o muzyce oraz analizatora Spectrum.
Bitrate strumienia
Obok daty znajduje się aktualna informacja o jakości odbieranego strumienia, np.:
128 KBS
Pozwala to od razu sprawdzić bitrate aktualnie słuchanej stacji bez wchodzenia do panelu WWW.
Adres IP
Na dole interfejsu wyświetlany jest aktualny adres IP radia.
To niewielki dodatek, który w praktyce okazuje się bardzo wygodny. Nie trzeba szukać adresu urządzenia w routerze – wystarczy spojrzeć na ekran i wpisać pokazany adres w przeglądarce.
Panel WWW yoRadio
Ponieważ podstawą projektu pozostaje yoRadio, zachowujemy również jego rozbudowaną obsługę przez przeglądarkę.
Radio może być więc obsługiwane zarówno lokalnie za pomocą elementów sterujących urządzenia, jak i z telefonu, tabletu czy komputera poprzez sieć Wi-Fi.
Okrągły LCD jest głównym interfejsem podczas słuchania muzyki, natomiast panel WWW świetnie sprawdza się przy bardziej rozbudowanej konfiguracji.
Konfigurowalny layout – ustaw ekran po swojemu
Jedną z ważniejszych rzeczy, które dodałem podczas tworzenia tej wersji, jest możliwość łatwego dostosowania rozmieszczenia interfejsu przed kompilacją projektu.
Nie trzeba korzystać dokładnie z układu widocznego na moich zdjęciach.
Najważniejsze parametry zostały zebrane w jednym miejscu konfiguracji.
Można zmieniać między innymi:
pozycję X/Y głośnika,
pozycję i wielkość głośności,
pozycję RSSI,
położenie i szerokość nazwy stacji,
pozycję i rozmiar tytułu utworu,
położenie zegara,
pozycję bitrate,
pozycję daty,
położenie Spectrum,
wysokość i szerokość słupków analizatora,
pozycję adresu IP,
wybrane fonty i rozmiary tekstu.
Dzięki temu każdy może przygotować własną wersję ekranu – bardziej minimalistyczną, z większym zegarem, większym Spectrum albo inaczej rozmieszczonymi informacjami.
Wygaszacz dostosowany do okrągłego ekranu
Zmodyfikowany został również wygaszacz ekranu.
W pierwotnym mechanizmie pozycja zegara mogła zmieniać się dość mocno. Na niewielkim ekranie 360×360 powodowało to wrażenie, że zegar skacze po wyświetlaczu.
W tej wersji zakres ruchu został ograniczony.
Zegar zmienia swoją pozycję tylko nieznacznie i w większych odstępach czasu. Pozwala to zachować funkcję ochronną wygaszacza bez irytującego przemieszczania obrazu góra–dół.
Zakres przesunięcia również można zmienić w konfiguracji.
Polskie znaki i nazwy utworów
Podczas testów okazało się, że połączenie różnych fontów, przewijanego tekstu i sposobu kodowania znaków przez stacje radiowe powoduje problemy z częścią polskich liter.
Zamiast pozostawiać losowe symbole i „krzaki”, zastosowałem prostą i stabilną transliterację polskich znaków do ASCII.
Przykładowo:
Łódź → Lodz
Głośniki → Glosniki
Zażółć → Zazolc
Nie jest to pełne Unicode, ale zapewnia poprawną i przewidywalną prezentację nazw niezależnie od używanego fontu.
Hardware
Aktualna wersja została przygotowana dla:
ESP32-S3 – główny mikrokontroler i Wi-Fi
GC9B72 2,1" 360×360 – okrągły wyświetlacz TFT
PCM5102A – zewnętrzny DAC I2S
ESP32-S3 odpowiada jednocześnie za połączenie z Internetem, obsługę strumienia, dekodowanie audio, sterowanie ekranem, interfejs WWW oraz obliczenia potrzebne do działania Spectrum.
Projekt bazujący na yoRadio
Warto podkreślić, że projekt nie powstał od zera.
Bazą jest świetny projekt yoRadio, którego sprawdzony silnik radia internetowego został zachowany.
Moja wersja jest nakładką i rozbudowaną modyfikacją yoRadio, skupioną przede wszystkim na dodaniu obsługi GC9B72, przebudowie interfejsu okrągłego LCD oraz dodaniu nowych funkcji wizualnych.
Dzięki temu nie trzeba było tworzyć kolejnego silnika radia internetowego od początku – można było wykorzystać działającą bazę i skoncentrować się na funkcjach, których potrzebowałem w swoim urządzeniu.
Status projektu
Projekt jest obecnie w fazie dalszych testów.
Większość podstawowych funkcji działa już poprawnie, natomiast nadal sprawdzam stabilność długotrwałego odtwarzania oraz zachowanie Spectrum podczas uruchamiania, zatrzymywania i zmiany strumieni.
Dopiero po przejściu tych testów wersja zostanie oznaczona jako gotowa do szerszego udostępnienia.
Wkrótce do pobrania dla wspierających
📦 Po zakończeniu testów projekt zostanie udostępniony do pobrania dla osób wspierających STODOŁA made by P.C.
Planuję przygotować kompletną paczkę umożliwiającą samodzielne uruchomienie projektu oraz dostosowanie wyglądu interfejsu do własnych potrzeb.
STODOŁA made by P.C 🔧⚡
ESP32 • Elektronika • DIY • Druk 3D • Własne projekty
www.stodolapc.pl
Dziennik budowy
Brak wpisów dla tego projektu.
2026-09-09 20:33:08
Witam, myslales moze nad dodaniem dlna ? dzieki temu to by bylo naprawde klasa odtwarzacz ?