Уважаемые гости и пользователи форума!
Чтобы видеть ссылки на форуме - надо зарегистрироваться и иметь 1 пост на форуме. Для этого есть КУРИЛКА и там тема Здрасти.

ESP32-Radiola/Радиола-2 - Музыкальный центр на ESP32 своими руками

ESP32 — серия недорогих микроконтроллеров с низким энергопотреблением. Представляют собой систему на кристалле с интегрированным Wi-Fi и Bluetooth контроллерами и антеннами.

Модераторы: rewuxiin, kulia

Правила форума
Условием использования нашего форума, является соблюдение настоящих Правил форума.

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам, а вы рискуете получить предупреждение.
Аватара пользователя
SinglWolf
Контактная информация:
Откуда: Башкирия
Сообщения: 2618
Зарегистрирован: 23 янв 2012, 22:11

ESP32-Radiola/Радиола-2 - Музыкальный центр на ESP32 своими руками

19 окт 2019, 07:10

ESP32-Radiola - Проект создания многофункционального музыкального центра под управлением ESP32 своими руками.

Чтобы видеть ссылки в теме - надо зарегистрироваться и иметь 1 пост на форуме. Для этого есть КУРИЛКА и там тема Здрасти.

Радиола-2 версия 3.0
Пока для ESP32-S3 16M flash 8M PSRAM
и PCM5102A
► Показать



Адреса загрузки файлов для 16 mB флешки!
  • bootloader.bin 0x000000
  • partitions.bin 0x008000
  • factory.bin 0x030000
  • fatfs.bin 0x831000
factory.bin - файл прошивки!


Beta 16.1.8
Beta 16.4.0
Beta 17.0.0
Beta 18.0.5
Схема и распиновка
Подключение SD-карты к ESP32-S3
Команда в консоли для первого подключения к WI-FI:

Код: Выделить всё

wifi.con("ssid","password")
sys.boot
ДЕМО ВЕБ-ИНТЕРФЕЙСА РАДИОЛЫ
Radiola-2 - Часто задаваемые Вопросы (ЧАВО)
Файл с логом присылайте сюда. Удачи! :-)

-->ОБЪЯВЛЕНИЕ<--


Радиола-1
Для просмотра ссылок Вы должны быть авторизованы на форуме.

Текущая версия: 2.2 Rev: 5.
  • binaries.zip
    релизная и отладочная версии
    (1.38 МБ) 798 скачиваний
    Адреса загрузки:
    • bootloader.bin - 0x1000
    • partitions.bin - 0x8000
    • ESP32Radiola(-release или -debug).bin - 0x10000
    • ESP32Radiola(-release или -debug).bin - 0x200000
ПРОШИВАТЬ НА ЧИСТУЮ FLASH!
Команда в консоли для первого подключения к WI-FI:
► Показать
Радиола-2 с новой графикой и поддержкой HTTPS
Схемы Радиолы-2.1
НОВЫЕ ВЕРСИИ (NEW VERSIONS):
  • Implemented multilingual support. By default, the Russian language.
  • Added English. Language selection in the web interface of the OPTIONS tab.
Проект Радиола-S2 на ESP32-S2-WROVER

Веб-интерфейс в браузере Опера, IE, Edge - НЕ РАБОТАЕТ.
Веб-интерфейс ТОЧНО РАБОТАЕТ в Яндекс-браузере, Гугл-хром.
Радиола-2 на ESP32-WROOM НЕ РАБОТАЕТ!

Принципиальные схемы Радиола-2
Старые прошивки Радиолы-2 и Радиолы-S2

Плейлист для примера (с 1 станцией по протоколу https для проверки):
образец.m3u
(387 байт) 191 скачивание
подробности под спойлером
► Показать
Используемое железо (HARDWARE)
► Показать
Фото и видео под спойлером.
► Показать
Пишите, спрашивайте, не стесняйтесь..
alexsumi
Сообщения: 1
Зарегистрирован: 16 дек 2020, 19:32

Re: ESP32-Radiola - Музыкальный центр с управлением на ESP32 своими руками

16 дек 2020, 19:35

Хорошее начало. этот проект надо развивать.
pilnikov
Сообщения: 14
Зарегистрирован: 21 ноя 2020, 22:25

Re: ESP32-Radiola - Музыкальный центр с управлением на ESP32 своими руками

16 дек 2020, 22:34

SinglWolf писал(а):
16 дек 2020, 16:57
pilnikov писал(а):
16 дек 2020, 16:07
vTaskDelay(300);
Бесполезная, на мой взгляд, задержка.
И такого кода в КаРадио немеряно. Туча лишних циклов. Нелепые проверки. Логгирование каждого пука. Есть участки кода просто в фигурных скобках. Особо "вставляет" код проверки считывания данных из FLASH, если битые... обрезаем, обнуляем, но продолжаем работать :-D . НАХРЕНА, спрашивается? =-O Флеш умерла. *SCRATCH* *DONT_KNOW*
я это к чему все -
убавил до 30 (можно еще меньше наверняка). сделал вебклиенту самый высокий приоритет - шевелится стало побыстрее (в вебморде) но не суть - самое главное стало меньше затыков при хреновом канале (только не при обрывах) за счет более быстрого наполнения буфера к.м.к.
еще послушал enjoyengeener'a сделал громкость в ffff для устранения щелчков сразу после резета чипа.
убрал второй резет сразу за первым.
сделал инфо о потоке (тока формат (мп3, аас...) не хочет пока показывать)
Для просмотра ссылок Вы должны быть авторизованы на форуме.
Аватара пользователя
SinglWolf
Контактная информация:
Откуда: Башкирия
Сообщения: 2618
Зарегистрирован: 23 янв 2012, 22:11

Re: ESP32-Radiola - Музыкальный центр с управлением на ESP32 своими руками

17 дек 2020, 09:26

pilnikov писал(а):
16 дек 2020, 22:34
убавил до 30 (можно еще меньше наверняка).
Вы меня не слушаете совсем, или как?
Я же сказал - это бесполезная задержка. Даже больше скажу - вредная, ибо задерживается запуск всего девайса на 0,3 сек. (Казалось бы не критично, но у задержек есть свойство суммироваться.)
Объясняю на пальцах (на куске кода функции):
  1. //Фрагмент из main_app
  2. // запуск задач
  3. // задачи запускаются только ОДИН раз...
  4. // у каждой задачи есть бесконечный цикл, в котором обрабатываются те или иные события...
  5. xTaskCreatePinnedToCore(uartInterfaceTask, "uartInterfaceTask", 2400, NULL, PRIO_UART, &pxCreatedTask, CPU_UART);
  6. ESP_LOGI(TAG, "%s task: %x", "uartInterfaceTask", (unsigned int)pxCreatedTask);
  7. vTaskDelay(1);  // Пауза между запусками задач
  8. // Запуск нашей задачи, где есть затычка-тормоз
  9. xTaskCreatePinnedToCore(clientTask, "clientTask", 3000, NULL, PRIO_CLIENT, &pxCreatedTask, CPU_CLIENT);
  10. ESP_LOGI(TAG, "%s task: %x", "clientTask", (unsigned int)pxCreatedTask);
  11. vTaskDelay(1)
  12.  
  13. // Фрагмент кода задачи
  14. void clientTask(void *pvParams)
  15. {
  16.     portBASE_TYPE uxHighWaterMark;
  17.     struct timeval timeout;
  18.     timeout.tv_usec = 0;
  19.     timeout.tv_sec = 3;
  20.     int sockfd;
  21.     int bytes_read;
  22.     uint8_t cnterror;
  23.  
  24.     struct sockaddr_in dest;
  25.  
  26.     vTaskDelay(300); /// ТОРМОЗИМ АЖ 0,3 секунды... НАФИГА????
  27.  
  28.     strcpy(useragent, MainConfig->ua);
  29.     if (strlen(useragent) == 0)
  30.     {
  31.         strcpy(useragent, "ESP32Radiola/1.5");
  32.         strcpy(MainConfig->ua, useragent);
  33.     }
  34.  
  35.     while (1)
  36.     {
  37. // ТУТ запускается бесконечный цикл задачи КЛИЕНТА
  38. // Он будет крутиться до выключения питания
Надеюсь, что внятно объяснил...
pilnikov писал(а):
16 дек 2020, 22:34
сделал вебклиенту самый высокий приоритет - шевелится стало побыстрее (в вебморде) но не суть - самое главное стало меньше затыков при хреновом канале (только не при обрывах) за счет более быстрого наполнения буфера к.м.к.
Это хорошо, но, на мой взгляд, основные тормоза дают: первое - логгирование почти каждого пука + то, что идёт в выхлоп консоли\телнета и второе - трансляция сообщений идёт не только на дисплей, дубли идут в вебморду, консоль, телнет.
Короче говоря, я удивляюсь как esp32 всё это вытягивает %)
pilnikov писал(а):
16 дек 2020, 22:34
еще послушал enjoyengeener'a сделал громкость в ffff для устранения щелчков сразу после резета чипа.
убрал второй резет сразу за первым.
У меня давным давно только один софтовый сброс VS-ки. В штатном режиме никаких щелчков нет.
pilnikov писал(а):
16 дек 2020, 22:34
сделал инфо о потоке (тока формат (мп3, аас...) не хочет пока показывать)
Не нашёл :-[
pilnikov
Сообщения: 14
Зарегистрирован: 21 ноя 2020, 22:25

Re: ESP32-Radiola - Музыкальный центр с управлением на ESP32 своими руками

17 дек 2020, 14:17

Строка 360 в vs1053.c
pilnikov
Сообщения: 14
Зарегистрирован: 21 ноя 2020, 22:25

Re: ESP32-Radiola - Музыкальный центр с управлением на ESP32 своими руками

17 дек 2020, 14:22

300 это задержка задачи клиента - она крутится на постоянке - и задержка на каждый цикл.
Тут где-то почитал, что задачи установки соединения (handshake) и обмена данными в открытом сокете надо тоже разводить
Аватара пользователя
SinglWolf
Контактная информация:
Откуда: Башкирия
Сообщения: 2618
Зарегистрирован: 23 янв 2012, 22:11

Re: ESP32-Radiola - Музыкальный центр с управлением на ESP32 своими руками

17 дек 2020, 16:44

pilnikov писал(а):
17 дек 2020, 14:22
300 это задержка задачи клиента - она крутится на постоянке - и задержка на каждый цикл.
Это последняя попытка растолковать очевидную вещь...
► Показать
  1. void clientTask(void *pvParams)
  2. {
  3.     portBASE_TYPE uxHighWaterMark;
  4.     struct timeval timeout;
  5.     timeout.tv_usec = 0;
  6.     timeout.tv_sec = 3;
  7.     int sockfd;
  8.     int bytes_read;
  9.     uint8_t cnterror;
  10.  
  11.     struct sockaddr_in dest;
  12.  
  13.     vTaskDelay(300);
  14.  
  15.     strcpy(useragent, g_device->ua);
  16.     if (strlen(useragent) == 0)
  17.     {
  18.         strcpy(useragent, "ESP32Radiola/1.5");
  19.         strcpy(g_device->ua, useragent);
  20.     }
  21.  
  22.     //  portBASE_TYPE uxHighWaterMark;
  23.     //  uxHighWaterMark = uxTaskGetStackHighWaterMark( NULL );
  24.     //  printf("watermark webclient:%d  heap:%d\n",uxHighWaterMark,xPortGetFreeHeapSize( ));
  25.  
  26.     while (1)  // ЭТО ОБЪЯВЛЕНИЕ БЕСКОНЕЧНОГО ЦИКЛА!!!!!!!!!!!!!!
  27.     { // Начало тела цикла
  28.         xSemaphoreGive(sConnected);
  29.         if (xSemaphoreTake(sConnect, portMAX_DELAY))
  30.         {
  31.  
  32.             xSemaphoreTake(sDisconnect, 0);
  33.             sockfd = socket(AF_INET, SOCK_STREAM, 0);
  34.             ESP_LOGI(TAG, "Webclient socket: %d, errno: %d", sockfd, errno);
  35.             if (sockfd < 0)
  36.             {
  37.                 ESP_LOGE(TAG, "Webclient socket create, errno: %d", errno);
  38.                 xSemaphoreGive(sDisconnect);
  39.                 continue;
  40.             }
  41.             bzero(&dest, sizeof(dest));
  42.             dest.sin_family = AF_INET;
  43.             dest.sin_port = htons(clientPort);
  44.             dest.sin_addr.s_addr = inet_addr(inet_ntoa(*(struct in_addr *)(server->h_addr_list[0])));
  45.             bytes_read = 0;
  46.             /*---Connect to server---*/
  47.             if (connect(sockfd, (struct sockaddr *)&dest, sizeof(dest)) >= 0)
  48.             {
  49.                 //              printf("WebClient Socket connected\n");
  50.                 memset(bufrec, 0, RECEIVE + 20);
  51.  
  52.                 char *t0 = strstr(clientPath, ".m3u");
  53.                 if (t0 == NULL)
  54.                     t0 = strstr(clientPath, ".pls");
  55.                 if (t0 == NULL)
  56.                     t0 = strstr(clientPath, ".xspf");
  57.                 if (t0 == NULL)
  58.                     t0 = strstr(clientPath, ".m3u8");
  59.                 if (t0 == NULL)
  60.                     t0 = strstr(clientPath, ".asx");
  61.                 if (t0 != NULL) // a playlist asked
  62.                 {
  63.                     cstatus = C_PLAYLIST;
  64.                     //printf("sprint%d\n",6);
  65.                     sprintf((char *)bufrec, "GET %s HTTP/1.1\r\nHOST: %s\r\nUser-Agent: %s\r\n\r\n", clientPath, clientURL, useragent); //ask for the playlist
  66.                 }
  67.                 else
  68.                 {
  69.                     if (strcmp(clientURL, "stream.pcradio.biz") == 0)
  70.                         strcpy(useragent, "pcradio");
  71.                     //printf("sprint%d\n",7);
  72.                     sprintf((char *)bufrec, "GET %s HTTP/1.1\r\nHost: %s\r\nicy-metadata: 1\r\nUser-Agent: %s\r\n\r\n", clientPath, clientURL, useragent);
  73.                 }
  74.                 //printf("st:%d, Client Sent:\n%s\n",cstatus,bufrec);
  75.                 xSemaphoreTake(sConnected, 0);
  76.                 send(sockfd, (char *)bufrec, strlen((char *)bufrec), 0);
  77.  
  78.                 if (setsockopt(sockfd, SOL_SOCKET, SO_RCVTIMEO, (char *)&timeout, sizeof(timeout)) < 0)
  79.                     ESP_LOGE(TAG, "Client socket: %d  setsockopt: %d  errno:%d ", sockfd, bytes_read, errno);
  80.                 //////
  81.                 cnterror = 0;
  82.                 do
  83.                 {
  84.                     bytes_read = recvfrom(sockfd, bufrec, RECEIVE, 0, NULL, NULL);
  85.                     if (bytes_read < 0)
  86.                     {
  87.                         ESP_LOGE(TAG, "Client socket: %d  read: %d  errno:%d ", sockfd, bytes_read, errno);
  88.                         if (errno == 11)
  89.                             bytes_read = 0;
  90.                     }
  91.                     //if (bytes_read < 1000 )
  92.                     //  printf("Rec:%d\n%s\n",bytes_read,bufrec);
  93.                     //  printf(" %d ",bytes_read);  fflush(stdout);
  94.                     if (bytes_read > 0)
  95.                     {
  96.                         cnterror = 0;
  97.                         clientReceiveCallback(sockfd, (char *)bufrec, bytes_read);
  98.                     }
  99.                     else
  100.                     {
  101.                         ESP_LOGW(TAG, "No data in recv. Errno = %d", errno);
  102.                         cnterror++;
  103.                         if (errno != 11)
  104.                             vTaskDelay(20); //timeout
  105.                         else
  106.                             vTaskDelay(2);
  107.                         if ((errno == 128) || (cnterror > 9))
  108.                             break;
  109.                     }
  110.                     vTaskDelay(2);
  111.                     // if a stop is asked
  112.                     if (xSemaphoreTake(sDisconnect, 0))
  113.                     {
  114.                         clearHeaders();
  115.                         break;
  116.                     }
  117.                 } while ((bytes_read > 0) || (playing && (bytes_read == 0)));
  118.             }
  119.             else
  120.             {
  121.                 ESP_LOGE(TAG, "Client socket: %d  connect: %d  errno:%d ", sockfd, bytes_read, errno);
  122.                 clientSaveOneHeader("Invalid address", 15, METANAME);
  123.                 wsHeaders();
  124.                 vTaskDelay(1);
  125.                 clientDisconnect("Invalid");
  126.                 close(sockfd);
  127.                 continue;
  128.             }
  129.             /*---Clean up---*/
  130.             if (bytes_read <= 0) //nothing received or error or disconnected
  131.             {
  132.                 if ((playing) && (once == 0)) // try restart
  133.                 {
  134.                     clientDisconnect("try restart");
  135.                     clientConnect();
  136.                     playing = 1; // force
  137.                 }
  138.                 else if ((!playing) && (once == 1))
  139.                 { // nothing played. Force the read of the buffer
  140.                     // some data not played
  141.                     if ((!playing) && (spiRamFifoFill()))
  142.                     {
  143.                         playing = 1;
  144.                         vTaskDelay(1);
  145.                         setVolumei(getVolume());
  146.                         kprintf(CLIPLAY, 0x0d, 0x0a);
  147.                         while (spiRamFifoFill())
  148.                             vTaskDelay(100);
  149.                         vTaskDelay(150);
  150.                         playing = 0;
  151.                         clientDisconnect("data not played");
  152.                     }
  153.                 }
  154.                 //
  155.                 else if ((!playing) && (once == 0))
  156.                 { // nothing received
  157.                     clientDisconnect(nodata);
  158.                     clientSaveOneHeader(nodata, 7, METANAME);
  159.                     wsHeaders();
  160.                     vTaskDelay(1);
  161.                 }
  162.                 else
  163.                 { //playing & once=1 and no more received stream
  164.                     while (spiRamFifoFill())
  165.                         vTaskDelay(100);
  166.                     vTaskDelay(200);
  167.                     clientDisconnect("once");
  168.                 }
  169.             } //jpc
  170.  
  171.             if (playing) // stop clean
  172.             {
  173.                 setVolumei(0);
  174.                 audio_player_stop();
  175.                 player_config->media_stream->eof = true;
  176.                 //
  177.                 VS1053_flush_cancel(2);
  178.                 playing = 0;
  179.                 vTaskDelay(40); // stop without click
  180.                 setVolumei(getVolume());
  181.             }
  182.  
  183.             //
  184.             shutdown(sockfd, SHUT_RDWR); // stop the socket
  185.             vTaskDelay(1);
  186.             close(sockfd);
  187.             //printf("WebClient Socket closed\n");
  188.             if (cstatus == C_PLAYLIST)
  189.             {
  190.                 clientConnect();
  191.             }
  192.             uxHighWaterMark = uxTaskGetStackHighWaterMark(NULL);
  193.             ESP_LOGI(TAG, "watermark : %x  %d", uxHighWaterMark, uxHighWaterMark);
  194.         }
  195.     }
  196. }
Как задержка

Код: Выделить всё

vTaskDelay(300);
в начале функции и ДО тела цикла может влиять на каждый цикл задачи клиента??? НИКАК!!!
ДОШЛО :-) ? Иначе в Си я вам не помощник :-|
pilnikov писал(а):
17 дек 2020, 14:22
Тут где-то почитал, что задачи установки соединения (handshake) и обмена данными в открытом сокете надо тоже разводить
*DONT_KNOW* Если задержка до тела цикла влияет на каждый цикл, то надо...
Только я не понимаю как можно с самого начала запихать в одну задачу установку соединения и обмен данными в открытом сокете *SCRATCH* :-| *PARDON*
Надо послушать enjoyneering'a по этому поводу.
pilnikov
Сообщения: 14
Зарегистрирован: 21 ноя 2020, 22:25

Re: ESP32-Radiola - Музыкальный центр с управлением на ESP32 своими руками

17 дек 2020, 20:46

Ок, признаю свою тупость про цикличную задержку. Сказался стереотип построения таски - когда вайл в самом начале. Каюсь - затупил слегка старый пень.
Но два резета в оригинале(у JP) были. У меня щелкало 2 раза. Я даже AVDD снимал на старте чтобы их убрать - помогает.
pilnikov
Сообщения: 14
Зарегистрирован: 21 ноя 2020, 22:25

Re: ESP32-Radiola - Музыкальный центр с управлением на ESP32 своими руками

17 дек 2020, 21:08

а по поводу вебсокетов - lwip_connect выполняется в клиент-таске внутри вайла каждый раз
  1. while (1)
  2.     {
  3.         xSemaphoreGive(sConnected);
  4.         if (xSemaphoreTake(sConnect, portMAX_DELAY))
  5.         {
  6.             xSemaphoreTake(sDisconnect, 0);
  7.             sockfd = socket(AF_INET, SOCK_STREAM, 0);
  8.             sterr = lwip_strerr(errno);
  9.             ESP_LOGI(TAG, "Webclient socket: %d, err: %s", sockfd, sterr);
  10.             if (sockfd < 0)
  11.             {
  12.                 sterr = lwip_strerr(errno);
  13.                 ESP_LOGE(TAG, "Webclient socket create, err: %s", sterr);
  14.                 xSemaphoreGive(sDisconnect);
  15.                 continue;
  16.             }
  17.             bzero(&dest, sizeof(dest));
  18.             dest.sin_family = AF_INET;
  19.             dest.sin_port = htons(clientPort);
  20.             dest.sin_addr.s_addr = inet_addr(inet_ntoa(*(struct in_addr*)(server->h_addr_list[0])));
  21.             bytes_read = 0;
  22.  
  23.             /*---Connect to server---*/
  24.             if (connect(sockfd, (struct sockaddr*) & dest, sizeof(dest)) >= 0)
  25.             {
  26.                 //              printf("WebClient Socket connected\n");
и только при поступлении данных в буфер
  1.                     if (bytes_read > 0)
  2.                     {
  3.                         cnterror = 0;
  4.                         clientReceiveCallback(sockfd, (char*)bufrec, bytes_read);
  5.                     }
запускается некое подобие обработчика в виде clientReceiveCallback()

хотя например здесь
  1.    esp_websocket_client_handle_t client = esp_websocket_client_init(&websocket_cfg);
  2.     esp_websocket_register_events(client, WEBSOCKET_EVENT_ANY, websocket_event_handler, (void *)client); // ТУТА
  3.  
  4.     esp_websocket_client_start(client);
  5.     xTimerStart(shutdown_signal_timer, portMAX_DELAY);
  6.     char data[32];
  7.     int i = 0;
  8.     while (i < 10) {
  9.         if (esp_websocket_client_is_connected(client)) {
  10.             int len = sprintf(data, "hello %04d", i++);
  11.             ESP_LOGI(TAG, "Sending %s", data);
  12.             esp_websocket_client_send_text(client, data, len, portMAX_DELAY);
  13.         }
обработчик создается на стадии соединения и основная часть задачи оперирует уже только результатом его работы -esp_websocket_client_is_connected(client)
Аватара пользователя
SinglWolf
Контактная информация:
Откуда: Башкирия
Сообщения: 2618
Зарегистрирован: 23 янв 2012, 22:11

Re: ESP32-Radiola - Музыкальный центр с управлением на ESP32 своими руками

17 дек 2020, 21:12

pilnikov писал(а):
17 дек 2020, 20:46
Ок, признаю свою тупость про цикличную задержку. Сказался стереотип построения таски - когда вайл в самом начале. Каюсь - затупил слегка старый пень.
Ок. Значит не всё так безнадёжно :-D
pilnikov писал(а):
17 дек 2020, 20:46
Но два резета в оригинале(у JP) были. У меня щелкало 2 раза. Я даже AVDD снимал на старте чтобы их убрать - помогает.
У меня VS не щёлкает. Остался 1 Софт ресет. Пин хард ресета VS соединён с пином сброса ESP-32. Щёлкать начинает, если при проигрывании музыки нажать кнопку сброса, а это не штатный режим. Так что я уже забыл эту проблему. Хотя чуть было не бросил проект из-за молчания VS при первом включении, петь начинала только при программном сбросе ESP-32. Намаялся я с VS-кой тогда сильно.
pilnikov писал(а):
17 дек 2020, 21:08
а по поводу вебсокетов - lwip_connect выполняется в клиент-таске внутри вайла каждый раз
Оформляйте код нормально, пожалуйста.
Websockets буду пилить, но позднее...
pilnikov
Сообщения: 14
Зарегистрирован: 21 ноя 2020, 22:25

Re: ESP32-Radiola - Музыкальный центр с управлением на ESP32 своими руками

17 дек 2020, 23:30

  1. ##CLI.META#: ФАКТОР 2 - Красавица
  2. I (478544) audio_player: Buffer fill 0%, 2037 // 1048576 bytes
  3. 250s 1983.9 kb/s 44100Hz stereo MP3 h = 0xFFFB
  4. E (482184) VS10xx: Music buffer is emty - Nothing playing :(
  5. E (482734) VS10xx: Music buffer is emty - Nothing playing :(
  6. E (484794) VS10xx: Music buffer is emty - Nothing playing :(
  7. I (494224) audio_player: Buffer fill 0%, 6203 // 1048576 bytes
  8. 266s 1960.8 kb/s 44100Hz stereo MP3 h = 0xFFFB
  9. I (510184) audio_player: Buffer fill 0%, 6515 // 1048576 bytes
  10. 282s 1940.4 kb/s 44100Hz stereo MP3 h = 0xFFFB
  11. E (512514) VS10xx: Music buffer is emty - Nothing playing :(
  12. E (517754) VS10xx: Music buffer is emty - Nothing playing :(
  13. E (518544) VS10xx: Music buffer is emty - Nothing playing :(
  14. E (519804) VS10xx: Music buffer is emty - Nothing playing :(
  15. E (522984) VS10xx: Music buffer is emty - Nothing playing :(
  16. I (526284) audio_player: Buffer fill 0%, 4469 // 1048576 bytes
  17. 298s 1922.0 kb/s 44100Hz stereo MP3 h = 0xFFFB
  18. E (534744) VS10xx: Music buffer is emty - Nothing playing :(
  19. E (536024) VS10xx: Music buffer is emty - Nothing playing :(
  20. E (541504) VS10xx: Music buffer is emty - Nothing playing :(
  21. E (542314) VS10xx: Music buffer is emty - Nothing playing :(
  22. I (542384) audio_player: Buffer fill 0%, 3821 // 1048576 bytes
  23. 314s 1905.7 kb/s 44100Hz stereo MP3 h = 0xFFFB
  24. E (548064) VS10xx: Music buffer is emty - Nothing playing :(
  25. E (553834) VS10xx: Music buffer is emty - Nothing playing :(
  26. I (558414) audio_player: Buffer fill 0%, 1785 // 1048576 bytes
  27. 330s 1890.8 kb/s 44100Hz stereo MP3 h = 0xFFFB
  28. I (574184) audio_player: Buffer fill 0%, 6862 // 1048576 bytes
  29. 346s 1877.4 kb/s 44100Hz stereo MP3 h = 0xFFFB
  30. E (576514) VS10xx: Music buffer is emty - Nothing playing :(
вот такой у меня лог обычно. при этом поет не заикаясь
Nadim
Сообщения: 9
Зарегистрирован: 12 авг 2020, 18:45

Re: ESP32-Radiola - Музыкальный центр с управлением на ESP32 своими руками

18 дек 2020, 00:59

Проверил работу последней прошивки. Есть баг при переключении станции через вэб страницу. Включаю 32 станцию, а включается 1 и т.д. - хотя вроде как сразу такого глюка не заметил. Если переключать станции через телнет или uart то всё работает как надо.
Аватара пользователя
Александр
Откуда: Новосибирск
Сообщения: 57
Зарегистрирован: 16 фев 2020, 19:19

Re: ESP32-Radiola - Музыкальный центр с управлением на ESP32 своими руками

18 дек 2020, 07:43

Доброе, утро, SinglWolf!
Заметил, что если настроить часовой пояс (Красноярск) и выключить регулировку дисплея, то все настройки присоединения к Wi-Fi слетают. :(
Показалось, что уровень сигнала на выходе VS стал меньше.
Управление из приложения KaRadio RC выбор номеров станций идет со сдвигом +1
и после манипуляций радио перестало играть :-\
Последний раз редактировалось Александр 18 дек 2020, 08:18, всего редактировалось 1 раз.
Аватара пользователя
SinglWolf
Контактная информация:
Откуда: Башкирия
Сообщения: 2618
Зарегистрирован: 23 янв 2012, 22:11

Re: ESP32-Radiola - Музыкальный центр с управлением на ESP32 своими руками

18 дек 2020, 08:14

Nadim писал(а):
18 дек 2020, 00:59
Есть баг при переключении станции через вэб страницу. Включаю 32 станцию, а включается 1 и т.д. - хотя вроде как сразу такого глюка не заметил. Если переключать станции через телнет или uart то всё работает как надо.
Исправил, перезалейте.
Александр писал(а):
18 дек 2020, 07:43
Заметил, что если настроить часовой пояс (Красноярск) и выключить регулировку дисплея, то все настройки присоединения к Wi-Fi слетают.
Только что перезалил прошивку, исправлял баги. Проверяйте эту. Если что - пишите сразу. Жду!
Аватара пользователя
SinglWolf
Контактная информация:
Откуда: Башкирия
Сообщения: 2618
Зарегистрирован: 23 янв 2012, 22:11

Re: ESP32-Radiola - Музыкальный центр с управлением на ESP32 своими руками

18 дек 2020, 08:18

Александр писал(а):
18 дек 2020, 07:43
выключить регулировку дисплея
Эту функцию пока не трогайте в веб-морде - не доделано.
Если не нужна регулировка подсветки: просто выставьте пину, управляющему подсветкой 255.
Александр писал(а):
18 дек 2020, 07:43
Показалось, что уровень сигнала на выходе VS стал меньше.
В каком смысле меньше? Не понял.
Аватара пользователя
SinglWolf
Контактная информация:
Откуда: Башкирия
Сообщения: 2618
Зарегистрирован: 23 янв 2012, 22:11

Re: ESP32-Radiola - Музыкальный центр с управлением на ESP32 своими руками

18 дек 2020, 08:21

Александр писал(а):
18 дек 2020, 07:43
Управление из приложения KaRadio RC выбор номеров станций идет со сдвигом +1
Дык Радиола не КаРадио уже... :-D От слова совсем... *PARDON*
Аватара пользователя
Александр
Откуда: Новосибирск
Сообщения: 57
Зарегистрирован: 16 фев 2020, 19:19

Re: ESP32-Radiola - Музыкальный центр с управлением на ESP32 своими руками

18 дек 2020, 09:22

Ошибку свою увидел, по подсветке понял. Про уровень наверно показалось.
Я понимаю, что Радиола не Карадио - но было так удобно. Не надо запускать браузер. Выбрать станцию и уровень поменять мз приложения было очень удобно. Жалко с этим расставаться. =-O
Аватара пользователя
SinglWolf
Контактная информация:
Откуда: Башкирия
Сообщения: 2618
Зарегистрирован: 23 янв 2012, 22:11

Re: ESP32-Radiola - Музыкальный центр с управлением на ESP32 своими руками

18 дек 2020, 10:31

Александр писал(а):
18 дек 2020, 09:22
Я понимаю, что Радиола не Карадио - но было так удобно. Не надо запускать браузер. Выбрать станцию и уровень поменять мз приложения было очень удобно. Жалко с этим расставаться.
Если напишите автору приложения (Vassilis Serasidis электропочта: avrsite@yahoo.gr) и он предоставит исходники, то есть вероятность того, что у Радиолы будет своё приложение. А пока записал в TODO.
Мне не хватало для полного счастья ещё под андроид программирование осваивать *CRAZY*
Аватара пользователя
Александр
Откуда: Новосибирск
Сообщения: 57
Зарегистрирован: 16 фев 2020, 19:19

Re: ESP32-Radiola - Музыкальный центр с управлением на ESP32 своими руками

18 дек 2020, 10:35

Радио Атмосфера перестала играть Для просмотра ссылок Вы должны быть авторизованы на форуме.
Релакс ФМ перестал играть, Для просмотра ссылок Вы должны быть авторизованы на форуме.
На версии 2.0 все работает

В броузере 4. Радио кафе а по UART передается 3. Радио кафе

Как-то совсем плохо стало =-O
Аватара пользователя
SinglWolf
Контактная информация:
Откуда: Башкирия
Сообщения: 2618
Зарегистрирован: 23 янв 2012, 22:11

Re: ESP32-Radiola - Музыкальный центр с управлением на ESP32 своими руками

18 дек 2020, 10:47

Александр писал(а):
18 дек 2020, 10:35
Как-то совсем плохо стало
Код сильно переделан, возможно что-то вырезал по ошибке. *PARDON*
Спасибо за обратную связь. Буду чинить. :-[
Аватара пользователя
SinglWolf
Контактная информация:
Откуда: Башкирия
Сообщения: 2618
Зарегистрирован: 23 янв 2012, 22:11

Re: ESP32-Radiola - Музыкальный центр с управлением на ESP32 своими руками

18 дек 2020, 12:15

Александр писал(а):
18 дек 2020, 10:35
Радио Атмосфера перестала играть Для просмотра ссылок Вы должны быть авторизованы на форуме.
У меня играет *DONT_KNOW*
Александр писал(а):
18 дек 2020, 10:35
Релакс ФМ перестал играть, Для просмотра ссылок Вы должны быть авторизованы на форуме.
У меня даже браузер ругается - нет такой страницы :-D
Nadim писал(а):
18 дек 2020, 11:36
1. В Избранном в вэб морде после выбора в списке постоянно сбрасывает на 1 трек - в основном такого нет.
2. В UART номер трека на единицы ниже.
3. Автовоспроизведение из ВЭБ при переключении кнопкой NEXT не работает - нужно нажимать кнопку Play.
Уже вижу баг, исправляю. :-[
Кроме него ещё пара-тройка выползла... Как тараканы, блин ]:->
К вечеру выложу.
Аватара пользователя
SinglWolf
Контактная информация:
Откуда: Башкирия
Сообщения: 2618
Зарегистрирован: 23 янв 2012, 22:11

Re: ESP32-Radiola - Музыкальный центр с управлением на ESP32 своими руками

18 дек 2020, 12:36

Nadim писал(а):
18 дек 2020, 11:36
Автовоспроизведение из ВЭБ при переключении кнопкой NEXT не работает
2020-12-18_12-32-07.png
Для этого есть кнопачика...
Аватара пользователя
SinglWolf
Контактная информация:
Откуда: Башкирия
Сообщения: 2618
Зарегистрирован: 23 янв 2012, 22:11

Re: ESP32-Radiola - Музыкальный центр с управлением на ESP32 своими руками

19 дек 2020, 06:32

Вроде выловил особо шустрых букашек :-D
*DONT_KNOW* Может где ещё прячутся...
Тестируйте. Свежие бинарники в шапке темы. *DRINK*
Nadim
Сообщения: 9
Зарегистрирован: 12 авг 2020, 18:45

Re: ESP32-Radiola - Музыкальный центр с управлением на ESP32 своими руками

19 дек 2020, 22:45

Тестирую - пока вроде все хорошо.
Есть один вопрос. Когда прослушиваешь список избранное и переключаешь кнопкой NEXT через uart или телнет то переключение каналов идет не по списку Избранное, а по основному, т.е. в избранном каналы 1, 22, 45 так вот если выбрать канал 22 и нажать NEXT через uart то следующие каналы будут 23, 24, 25 .... хотя таких каналов в избранном нет. Через ВЭБ интерфейс работает ка надо - подряд из списка избранное.
Аватара пользователя
Александр
Откуда: Новосибирск
Сообщения: 57
Зарегистрирован: 16 фев 2020, 19:19

Re: ESP32-Radiola - Музыкальный центр с управлением на ESP32 своими руками

19 дек 2020, 23:26

Добрый вечер,
не совсем понятно как работают общий список и избранное. Объясните. Заливал с очисткой но видимо остались станции от старых списков которые переключаются по uart. По uart даешь 1, а вкл 2.
Теперь нет возможности добавлять станции из броузера. Можно файл m3u просто редактировать?
Аватара пользователя
SinglWolf
Контактная информация:
Откуда: Башкирия
Сообщения: 2618
Зарегистрирован: 23 янв 2012, 22:11

Re: ESP32-Radiola - Музыкальный центр с управлением на ESP32 своими руками

20 дек 2020, 05:49

Nadim писал(а):
19 дек 2020, 22:45
Есть один вопрос. Когда прослушиваешь список избранное и переключаешь кнопкой NEXT через uart или телнет то переключение каналов идет не по списку Избранное, а по основному
Вы сами ответили на вопрос. :-D Список ИЗБРАННОЕ пока существует и работает только в веб-интерфейсе.
В Радиоле хранятся только метки для списка.
Чтобы внедрить обработку второго списка в Радиоле, нужно текущие процедуры обработки переписывать с нуля. *WRITE* А я пока к этому не готов морально. :-[
Александр писал(а):
19 дек 2020, 23:26
не совсем понятно как работают общий список и избранное. Объясните.
Что конкретно не понятно?
Александр писал(а):
19 дек 2020, 23:26
Заливал с очисткой но видимо остались станции от старых списков которые переключаются по uart. По uart даешь 1, а вкл 2.
Про UART я написал выше.
Александр писал(а):
19 дек 2020, 23:26
Теперь нет возможности добавлять станции из броузера. Можно файл m3u просто редактировать?
Как так теперь нет? =-O
Как было, так и осталось. Станции по одной добавляются через кнопку "Добавить" на вкладке "воспроизведение станции" в окне "быстрое воспроизведение". Добавил эту кнопку на вкладку общего списка, чтобы перед глазами было.
Несколько радиостанций можно добавить подгрузкой плейлиста.
Редактирование станции тоже никуда не делось. Кнопочка с карандашиком.
Удалять станции - кнопочка с мусоркой.
Редактировать файл m3u вам никто не запрещает, правьте на здоровье. Только не трогайте теги, которые отвечают за формат m3u. :-)
Как-то так... *PARDON*
Аватара пользователя
Alex13
Сообщения: 22
Зарегистрирован: 06 фев 2020, 12:42

Re: ESP32-Radiola - Музыкальный центр с управлением на ESP32 своими руками

20 дек 2020, 12:02

Бинарники брать из папки release или debug ? Или без разницы?
Dust112
Сообщения: 29
Зарегистрирован: 04 ноя 2020, 12:33

Re: ESP32-Radiola - Музыкальный центр с управлением на ESP32 своими руками

20 дек 2020, 12:35

Alex13 писал(а):
20 дек 2020, 12:02
Бинарники брать из папки release или debug ? Или без разницы?
Без разницы, только разные адреса загрузки.
SinglWolf
Может в описание отметить, что радиола не работает без vs1053 (для полноты объема отличия от оригинала). Без нее встает в ступор. Исходники будут, а то мне под свой ВТ модуль нужно код добавить?
Аватара пользователя
Alex13
Сообщения: 22
Зарегистрирован: 06 фев 2020, 12:42

Re: ESP32-Radiola - Музыкальный центр с управлением на ESP32 своими руками

20 дек 2020, 12:44

Так что ли?
Адреса загрузки:

bootloader.bin - 0x1000
partitions.bin - 0x8000
ESP32Radiola.bin - 0x10000 (если из папки release)
ESP32Radiola.bin - 0x20000 (если из папки debug)
Из того что написано в шапке то можно понять что ESP32Radiola.bin надо заливать и по адресу 0x10000 и по 0x20000

Как это понять "ESP32Radiola(-release или -debug).bin - 0x10000 и 0x200000" ?
Dust112
Сообщения: 29
Зарегистрирован: 04 ноя 2020, 12:33

Re: ESP32-Radiola - Музыкальный центр с управлением на ESP32 своими руками

20 дек 2020, 13:14

Alex13 писал(а):
20 дек 2020, 12:44
Из того что написано в шапке то можно понять что ESP32Radiola.bin надо заливать и по адресу 0x10000 и по 0x20000
Да, в зависимости от типа бинарника.
release 0x10000
debug 0x200000

Вернуться в «ESP32»