Yoradio — Wi-Fi интернет-радио для ESP32 RGB Panel дисплеев, где музыка первична, а AI-слой служит тихим экспериментом по «оживлению» прибора
-
Основано на проекте
e2002/yoradio(https://github.com/e2002/yoradio). Этот форк добавляет поддержку RGB Panel дисплеев на ESP32-S3, с библиотекойArduino_GFXи платформой.pioarduino/PlatformIO.
Отличия от оригинального Yoradio:
- Рефакторинг на Arduino_GFX — использование современной библиотеки Arduino_GFX с поддержкой RGB Panel и последнего ESP-IDF 5.4/5.5.
- Поддержка U8g2 шрифтов — библиотека Arduino_GFX поддерживает U8g2 шрифты, их можно использовать в проекте.
- Spectrum Analyzer — добавлен спектроанализатор с переключением VU ↔ SA прямо из веб-интерфейса (Settings). VU-метр теперь со шкалой (настраивается в
widgets.cpp). - Переключение SD ↔ Radio — добавлена возможность переключения через тачскрин (одновременное нажатие двумя пальцами).
- CPU Load виджет — показывает загрузку обоих ядер процессора.
- Поддержка форматов — OGG, OPUS, VORBIS, FLAC потоки.
- Автоматическое притухание яркости — виджет в
main.cpp(настройки AUTOBACKLIGHT вmyoptions.h). - Батарея — код встроен в файлы дисплея, активируется закомментированием
#define BATTERY_OFF(для UEDX48480021 требуются свободные пины). - Обновлённые библиотеки — AudioI2S от Wolle (schreibfaul1) & Maleksm, Version 3.4.2p.
- Исправлено множество багов — стабильность и производительность.
- AI Layer
Эта версия Yoradio опционально включает AI Layer — тихий семантический слой, который может добавлять смысл фоновой музыке.
AI Layer — не ассистент и не взаимодействует с пользователем. Он может оставаться молчаливым и не влияет на поведение системы, когда отключен.
Устройство остаётся Wi‑Fi интернет‑радио и объектом присутствия, где музыка первична, а смысл появляется только когда уместно.
Видео работы ai_layer: https://github.com/user-attachments/assets/ea316f44-2394-4d24-8178-0bb7b66141dc
- 07.03.2026
- Миграция файловой системы с SPIFFS на LittleFS: конфиг, веб-сервер, плейлисты, AI prompt, OTA. Первый запуск после обновления отформатирует раздел ФС (данные нужно заново залить через «Upload filesystem image»).
- Увеличен лимит размера AI prompt до 20 КБ; исправлена загрузка промпта (не отклоняет валидные файлы).
- Исправлен краш погоды при неудачном DNS запросе (api.openweathermap.org).
- 29.01.2026
- Добавлен AI Layer (базовая архитектура и интеграция).
- Исправлены отрисовка текста, скроллинг и оптимизация дисплея.
- Добавлены LwIP библиотеки для ESP‑IDF 5.5.2 / Arduino 3.3.6 (
b2159fa). - Обновлена audioI2S для стабильной работы (
0d81d2c).
- 25.10.2025
- Исправлено: обновление строки Wi‑Fi на бутскрине и перебор нескольких SSID.
- Добавлена поддержка платы JC3248W535C (AXS15231B QSPI, 320x480, 3.5").
- Обновлены библиотеки liblwip.a и libesp_netif.a для ESP-IDF 5.5 (stable), оптимизации LwIP.
- Обновлена библиотека audioI2S до 3.4.2p (улучшения логирования, NetworkClient, декодеры).
- Улучшена обработка тачскринов: DEBUG_TOUCH через веб-интерфейс, защита от ложных кликов после свайпа, корректная работа мультитача с SD.
- Добавлен параметр SPECTRUM_GRADIENT: QSPI дисплеи используют solid цвета, RGB Panel - плавные градиенты.
- 12.10.2025 — Создание репозитория и добавление плат 4848S040 и UEDX48480021-MD80ET.
-
Русификация шрифта: замените файл
.pio/libdeps/<env>/GFX Library for Arduino/src/font/glcdfont.hна файл из репозиторияfonts/glcdfont.h(где<env>— имя окружения изplatformio.ini). -
Стабильность радио на высоких битрейтах: замените библиотеки IDF перекомпилированными версиями из
library!/esp32s3_5_5_2__3_3_6/:libesp_netif.aliblwip.a- Куда копировать (Windows):
%USERPROFILE%\.platformio\packages\framework-arduinoespressif32-libs\esp32s3\lib\ - Версия: ESP-IDF 5.5.2 / Arduino 3.3.6. После замены перезапустите PlatformIO и пересоберите проект.
-
Первый запуск/после erase flash: до ~60 секунд возможен чёрный экран (инициализация ФС). Это нормально — дождитесь старта.
-
Порядок работы и примеры: ориентируйтесь на оригинальный проект автора
e2002/yoradio.
Особая благодарность:
- e2002 — автор оригинального проекта Yoradio
- Wolle (schreibfaul1) — за отличную библиотеку AudioI2S
- Maleksm (4pda.to) — за доработки и улучшения AudioI2S
- moononournation — за библиотеку Arduino_GFX
MIT — см. LICENSE.


