Программируем … наушники
Стремление производителей к унификации привело к тому, что сегодня многие недорогие Bluetooth наушники и колонки построены на типовых SoC модулях с широким списком возможностей, которые часто могут быть программно «подрезаны» производителем, причем в некоторых случаях активировать заблокированный функционал можно самостоятельно, используя копеечный USB-TTL переходник. Сегодня на примере наушников Edifier W830BT я покажу, как для аудиоустройств на базе модуля CSR8645 можно включить поддержку кодека AAC, настроить уровень громкости и «подкрутить» встроенный в чип эквалайзер для получения более интересного звучания
Принадлежности
Для осуществления задуманного требуется не так много деталей:
- Паяльник с тонким жалом
- Адаптер FT232RL и miniUSB шнур к нему
- 5 резисторов на 10 кОм
- Кусок провода длиной 3-4 см
Готовим программную часть
В первую очередь нужно установить на компьютер необходимое ПО и драйвера для работы адаптера:
1. Скачиваем и устанавливаем BlueSuite 2.6.6, CSR86XX Configuration Tool и CSR8600 ROM Series A03 UFE… отсюда
2. Скачиваем драйвер csr-spi-ftdi и извлекаем из папки lib-win32 файл usbspi.dll и копируем его в папку C:Program Files (x86)CSRBlueSuite 2.6.6, соглашаясь на замену уже существующего в ней файла
3. Подключаем адаптер к компьютеру
4. Скачиваем и запускаем приложение Zadig, в нем выбираем Options > List All Devices и выбираем в выпадающем списке FT232R USB UART
5. В поле Driver выбираем libusbK и жмем кнопку Replace Driver
6. Ждем несколько секунд, и драйвер должен успешно установиться:
После этого идем в диспетчер устройств и проверяем, что адаптер действительно установился правильно — там он должен отображаться как FT232R USB UART:
Готовим аппаратную часть
1. Переключаем джампер на FT232R адаптере на 3.3V
2. К контакту GND подпаиваем кусок провода
3. К контактам 3.3V, DTR, RTS, RI, RSD подпаиваем резисторы:
4. Вскрываем наушники, находим модуль CSR8645 на плате и пятачки для его программирования недалеко от него:
5. Подпаиваем резисторы и провод с программатора к пятакам как показано на картинке выше и в таблице ниже:
Получается как-то так:
Теперь, когда все настроено и подключено, можно переходить непосредственно к редактированию настроек модуля.
Активируем поддержку AAC
Модуль CSR8645 поддерживает не только SBC и aptX, но еще и AAC, но по непонятной причине этот кодек в Edifier W830BT производителем отключен. Эту вселенскую несправедливость мы сейчас исправим, для этого подключаем адаптер к компьютеру и включаем наушники, а затем запускаем приложение PSTool, которое идет в комплекте с BlueSuite. Если все сделано верно, то на экране появится наш подключенный адаптер — просто жмем ОК и ждем загрузки данных из наушников:
Если все было сделано верно, на экране мы увидим список параметров настроек и их значений для установленного модуля:
Как вы могли заметить, эта прога позволяет точечно редактировать значения параметров модуля без перезаписи всего содержимого памяти. Первым делом нам необходимо снять полный дамп настроек модуля, для этого жмем File > Dump и сохраняем куда-нибудь PSR файлик, который будет формироваться пару минут (приложение и наушники в это время не трогаем):
Далее запускаем приложение Config Tool и загружаем в него созданный PSR файлик (File > Open From PSR File):
Это приложение позволяет просматривать список настроек и их значений в более удобном виде визуально. Среди всех настроек нас пока интересует переключатель A2DP AAC codec enable на вкладке Features:
Активируем его и жмем кнопку Write PSR (и ни в коем случае не нажимаем Write Device!). Сохраненный новый PSR файлик нам теперь нужно сравнить с изначальным, чтобы понять, какие настройки в нем изменились. Сделать это можно на каком-нибудь сайте, например. Сравнив 2 PSR файла, мы можем увидеть, что в после включения AAC поменялось одно значение в настройке USR 15:
Это новое значение нам необходимо прописать в наушники с помощью PSTool. Возвращаемся к этой проге и находим в ней параметр User configuration data 15 со старым значением (f718):
Меняем его на новое (f528) и сохраняем кнопкой Set, далее для перезагрузки наушников жмем Reset BC. Включаем наушники, подключаемся к смартфону и убеждаемся, что кодек AAC теперь появился (слева — было, справа — стало):
Поднимаем уровень громкости
Раз уж мы вскрыли наушники и прошли большой путь по настройке, то грех не подкрутить еще что-нибудь. В W830BT меня не совсем устраивал максимальный уровень громкости. Как оказалось, «поддать газку» здесь можно так же легко программным путем. Для этого в приложении Config Tool загружаем новый PSR файл (заново выкачиваем его в PSTool после включения AAC) и переходим на вкладку Audio Gains:
Здесь представлены 16 уровней громкости, и для каждого можно задать свой уровень усиления/затухания. Максимальное значение громкости (HFP15) здесь имеет значение 0, но можно без проблем задать и усиление, что я и сделал, немного подняв последние уровни вверх:
Применение изменений проводим точно так же, как и в случае включения AAC: сохраняем новый PSR файл и сверяем с предыдущим, чтобы найти изменившиеся строчки:
Затем точно так же находим и применяем их в PSTool:
В результате изменения настроек уровень громкости действительно поднялся, причем это никак не сказалось на качестве звука, никаких осязаемых искажений не наблюдается.
Крутим эквалайзер
Как правило, SoC — это очень навороченная вещь с целой кучей возможностей, про которые не все догадываются. Конкретно у CSR8645 имеется полноценный встроенный DSP, позволяющий серьезно модифицировать звучание. Об этом я узнал, когда после включения AAC заметил серьезные отличия по звуку по сравнению с SBC и aptX. Как оказалось, для AAC эквалайзер просто был выключен, поэтому звучание было менее интересным. Так или иначе, я решил поэкспериментировать с этой темой. Для настройки DSP нам в первую очередь нужно открыть PSR файлик в HEX редакторе и вырезать строки параметров PSKEY_DSP30… PSKEY_DSP32 в новый PSR файл:
Затем нам потребуется приложение CSR8600 ROM Series A03 Release, после запуска в нем необходимо выбрать алгоритм Music Manager 44.1kHz:
В результате откроется форма редактирования аудио конвейера, в который нам нужно загрузить тот самый PSR файл с параметрами DSP:
В первую очередь заходим в Decoder и активируем эквалайзер для SBC, aptX и AAC:
Далее идем в PEQ и выбираем один из пресетов эквалайзера или создаем новый с нуля, я выбрал для основы Bass Boost:
У эквалайзера можно задать до 5 полос, частоты задаются произвольно. Для примера поднимем еще немного НЧ:
После этого нажимаем ОК и сохраняем изменения в новый PSR файл:
Этот PSR файл теперь можно открыть в любом текстовом редакторе и последовательно загрузить значения для DSP30, DSP31 и DSP32 в наушники с помощью PSTool, как это уже делали на предыдущих этапах:
Итог
Далеко не все музыкальные bluetooth устройства так просты, как кажется. У некоторых моделей наушников и колонок на самом деле имеется поддержка более продвинутых кодеков, чем стандартный SBC, а встроенный эквалайзер имеется практически везде. Описанным выше способом на некоторых устройствах можно отключить голосовые подсказки, изменить поведение индикаторов, поправить уровни напряжений аккумулятора и много всего полезного.
- Блок питания Biom Professional BPU-301. Устройство и ремонт
- Marumi StarScape 77mm. Светофильтр для ночных пейзажей и астрофото.
- Bluetooth саундбар Creative Stage Air. Если нужно сделать лучше звук на ТВ/ноутбуке.
- Сверлильный станок BG-5166 и проклятое сопряжение Морзе
- Люменвокс - акустико-фотонный анализатор пульсаций. Модель АФАП-1
- Дисковая трещотка 1/4" Toptul CAUB0826
- Обзор хлебопечки Hyundai HYBM-P0212
- Видеокарта EVGA 3070
- Многофункциональный тестер для жидкости EZ-9910
- Сборка аккумулятора для Bosh D-70745