Предыстория
В далеком-недалеком 2019, в очередной раз повредив провод от своих проводных наушников, чинить/менять его в 100 и 1 раз стало уже лень. И как обычно в таких случаях, прошелся по сайтам магазинов в поисках новых.
Тем бы история и закончилась, но так случилось, что один мой хороший знакомый предложил в тот момент перебраться в мир беспроводного аудио. Да и не просто так перебраться, а в стиле DIY, что показалось все-таки интересным. Ну а время спустя, одним долгим зимним вечером появилась идея оформить итоги этого всего в более-менее подробный пост.
Стоит сказать, что к беспроводным Bluetooth-наушникам я давно присматривался, но все варианты с покупкой готовых отбрасывались из-за "фатального недостатка" присущего большинству доступных моделей – чудовищно малое время беспрерывной работы без подзарядки.
Емкость аккумулятора применяемого в беспроводных моделях, в лучшем случае позволяет им до 1-2 суток проработать, прежде чем все это беспроводное волшебство закончится и попросит еды. А поскольку у меня есть привычка иногда просто-таки круглосуточно не снимать наушники, такая продолжительность их работы совсем не устраивает. Можно бы конечно попытаться к какой-то готовой модели получше аккумуляторы поставить, допускаю даже что есть для этого возможности, но это наверно было бы не так интересно.
Но обо всем по порядку. Как уже понятно из названия (для тех кто с данной темой сталкивался), история будет об аудиомодуле Bluetooth модели CSR8645, производства Qualcomm.
Данный чип часто используется в беспроводной передаче звука. Он не относится к "премиум" классу моделей, но и не является бюджетным. Иначе говоря, есть чипы и лучше, есть и хуже (до неприличия хуже). Автором именно CSR8645 расценен как оптимальный для своих опытов.
Требования и ожидания
В целом, за весь мой многолетний опыт с наушниками, уже был набор кое-каких представлений о том, чего я от них ожидаю.
И вот когда окончательно решился на эксперимент с беспроводными (что произошло не сразу, так как некоторое время ушло на изучение вопроса и обдумывание тех или других аспектов и проблем), сформировался более-менее определенный список требований к результату:
качество звука не хуже чем у проводных
отсутствие ощутимой задержки звука/лагов (может быть важно если захочется игры поиграть)
большое время работы без подзарядки
приемлемый вес
наушники не должны являться "вкладышами", или подобными
наушники не должны вызывать дискомфорта или других проблем при работе в них в течении 1-2 суток непрерывно
должна быть совместимость с Windows
Требованиям к качеству звука, отвечает модуль с поддержкой AptX (и большим набором применяемых в нем кодеков, где-то даже была отдельная статья о них). AptX LL был бы вероятно еще лучше, так как задержка звука в нем еще ниже, но почитав о том что далеко не все устройства его поддерживают, решено оставить это на будущее.
Для полноценной работы с Windows, понадобился сторонний Bluetooth-Stack (выбор автора после тестирования нескольких из них – BlueSoleil, хоть и у него хватает недостатков). В Linux впринципе, дела с программной поддержкой должны обстоять получше насколько знаю, но лично опыты не проводились.
Еще немного забегая наперед, скажу также что этот список далеко не окончательный. В процессе эксплуатации наушников, много дополнительных пожеланий и хотелок было реализовано (кнопки управления, повышение удобства, улучшения внешнего вида и др.)
Выбор комплектующих
Аудиомодуль (приемник)
CSR8645. В продаже он нашелся в двух вариациях: "чистый" модуль, и уже распаянный на плате с 5-ваттным усилителем.
Стоимость у этих двух вариантов практически одинаковая. А учитывая маленькие размеры модуля, мне не очень-то хотелось медитировать, припаивая контакты к микроскопическим выводам. Как и не хотелось создавать свою плату, или монтировать навесным способом. К тому же все дополнительные элементы (светодиоды, резисторы) на варианте с платой уже присутствуют. В общем тот случай когда наверно не стоит свой велосипед создавать, разве что очень захочется.
Потому быстро и решительно был выбран вариант с уже готовой платой, с расчетом на то чтобы потом ее переделать.
Данный модуль работает только в качестве приемника (существуют и модели-передатчики).
Копировать все характеристики смысла нет, упомяну разве что физические размеры модуля, так как в первую очередь по ним становится ясно получится его разместить в наушники, или нет.
Так, сам по себе модуль имеет размеры 26.2x13.5 мм. Тогда как размеры вариантов с усилителем – от 29x29 мм. Существует несколько вариантов готовых плат с усилителем.
Передатчик
В качестве источника пригоден любой Bluetooth-адаптер, поддерживающий Bluetooth 2.0 и выше.
Автор использовал первый-попавшийся дешевый внешний адаптер к ПК, на основе чипа CSR8510 A10. Выбор внешнего адаптера имеет кое-какие преимущества, к примеру можно его немного переделать (об этом тоже позднее).
Так же проверялась работа с телефоном. Тут нет никаких тонкостей, беспроводные гарнитуры к телефонам давно уже обычное дело и процесс подключения аудиомодулей не отличается от их применения.
Наушники
Решил переделывать свои старые проводные. О них говорить особо нечего, недорогие и ничем не примечательные особо, мониторные наушники Ergo VD-350. Ценны для автора разве что тем, что были однажды слегка переделаны для улучшения и упрочнения конструкции, и благодаря этому, как только пожелают то могут спокойно упасть на бетон без последствий. Как еще оказалось потом, их конструкция крайне удобна для монтирования данного модуля под боковую черную крышку.
В принципе, подходят какие-угодно с импедансом до 32 Ом, и дешевые и дорогущие (если только не жалко будет к дорогущим лезть с паяльником). Главное, чтобы была возможность в том или другом месте разместить аккумулятор и сам модуль с проводами.
И разумеется, можно использовать не только наушники, но и подпаять модуль к примеру к любой готовой аудиосистеме и использовать ее как беспроводную колонку. Но эти варианты здесь лишь в качестве упоминания, т.к. автору интересны исключительно наушники.
Аккумулятор
Выбор аккумулятора определяется размерами, весом, требуемым напряжением питания модуля (3.3-4.2V) и пожеланиями к продолжительности автономной работы.
Если использовать уже распаянный модуль (как упоминалось выше), то возможно питание и от больших напряжений (до 12V, зависимо от вариации платы), поскольку на таких платах обычно находится микросхема-стабилизатор, выдающая на выходе те же 3.6 или 3.3V.
Для использования отлично подходят литий-полимерные аккумуляторы (Li-Po) с напряжением 3.7V.
Но автора и они не устроили. Не хотелось устанавливать аккумулятор внутри устройства, а для наружной установки форма Li-Po батарей показалась хуже. Есть смысл ставить аккумулятор внутрь устройства, если планируется делать встроенную подзарядку, то есть без использования внешних зарядных устройств.
В итоге понравилась идея "добавить себе в наушники немного Теслы". И выбор пал на аккумуляторы типа 18650, которые используются в электромобилях, в батареях ноутбуков, фонарях да и много где еще. Являются литий-ионными по технологии, а так же обладают большой емкостью (кроме дешевых моделей сомнительных производителей).
Их недостаток – это снова же размер и форма, заставившие хорошо подумать куда же их девать чтобы не мешали. Но в любом случае, 18650 были приняты как окончательный вариант, а их внешний вид был пафосно оценен как "более киберпанковский".
На деле нет принципиальной разницы какой тип аккумуляторов использовать. И те и другие в данном случае (из-за малой нагрузки от модуля по току) достаточно безопасны чтобы носить их при себе, и способны выдать нужные характеристики, так что выбор отчасти субъективный.
Прочее
Тонкие провода (автор использовал выдранные с какой-то электроники, и парочку более мощных, выдранных со старого компьютерного блока питания).
Микропереключатель типа On/Off (для включения/выключения собственно модуля)
Тактовые кнопки SMD (со старого mp3-плеера удалось достать хорошие экземпляры)
Шлейф для кнопок (отрезан кусочек старого IDE-шлейфа. можно и проводами обойтись)
Отсек для 18650 аккумуляторов (одиночный)
Зарядное устройство для 18650 аккумуляторов (подойдет и простейшая схемка контроля заряда, и что-то навороченное)
Реализация
И вот когда все элементы были заказаны/выдраны откуда можно, пришло время самого интересного.
Схему подключения чистого модуля приводить не стану, так как не использовалась в этой всей истории по вышеописанным причинам. Поэтому сразу перейдем к варианту с "полуфабрикатом".
Само подключение получилось примерно по принципу "ломать – не строить".
Вид платы спереди мало интересен, так как там ломать особо нечего. Примененная мной вариация платы, имеет следующий вид с обратной стороны:
С интересующих нас элементов, здесь присутствуют 2 микросхемы аудиоусилителя (подсвечены красным), обвязка этих микросхем, состоящая из SMD-резисторов (желтая подсветка) и конденсаторов (синяя). А так же микросхема-стабилизатор входного напряжения (белая).
Не стоит пытаться подключать подобные платы с усилителями напрямую к наушникам, 5-ваттные усилители вполне могут их поджарить. Сначала нужно заняться другой деструктивной деятельностью.
Суть переделки состоит в том, чтобы исключить микросхемы усилителей, тем самым подключив выводы LP, LN, RP, RN напрямую к соответствующим выводам CSR8645.
Для этого, нужно выпаять все указанные элементы (кроме белого стабилизатора питания, о нем ниже), и установить вместо них проволочные перемычки, как показано на этой схеме:
При этом желательно ничего лишнего не замкнуть на плате (это возможно в местах где находились выпаянные элементы, если перемычки не изолированные).
Все, после таких нехитрых манипуляций, к плате можно безопасно подключать наушники.
По желанию, можно так же избавиться от микросхемы-стабилизатора питания, помеченной белым. Потребление энергии данной микросхемой очень несущественное, но в целях оптимизации, можно и его исключить. Как показывает опыт, модуль отлично питается напрямую напряжением до 4.2V.
Дальнейшие шаги выглядели вот так (схема в которой отсутствует микрофон и используются 3 кнопки управления из 5 возможных):
К сожалению фото изнутри приложить нет возможности, пришлось бы все разбирать ради этого.
Выводы LP, LN – контакты для левого динамика. RP, RN для правого соответственно.
Активация кнопок происходит замыканием контакта COM на нужный вывод. В данном случае на плате уже установлены резисторы, поэтому никаких дополнительных элементов для работы кнопок не требуется (в отличие от использования чистого модуля).
Для уменьшения количества проводов и упрощения, можно обойтись и вовсе без кнопок, но рекомендую по крайней мере одну подключить (вывод PLY, отвечающий за команду Play/Pause удаленного управления), так как на ней завязаны некоторые сервисные функции, вроде перезапуска сопряжения. Хотя и они не обязательны и все будет работать и так (устройство автоматически сопрягается каждый раз при включении).
Результат
В результате, получились довольно монструозные наушники, которые тем не менее, вполне радуют при домашнем использовании и покрывают все перечисленные (и некоторые не перечисленные) требования к ним.
Обозначения:
Аккумулятор
Выключатель наушников
Независимый выключатель светодиода
Дополнительный белый светодиод
Резисторы светодиода на минусе питания
Внешняя антенна
Экранированный антенный кабель
Провода питания модуля
Сигнальный светодиод модуля
Кнопка управления Previous Track
Кнопка Play/Pause
Кнопка Next Track
Собственно, дополнительный яркий белый светодиод был добавлен уже как излишество. Иногда бывает полезен, когда нужно что-то подсветить, но при этом лениво или неудобно брать полноценный фонарь.
Сам модуль размещается под черной пластиковой крышкой, на достаточном расстоянии от динамика. Плата модуля экранирована со всех сторон фольгой поверх изоляции, для подавления сигнала встроенной антенны. Внешняя антенна припаяна к дорожке встроенной антенны, экран антенного кабеля присоединен к минусу питания.
Касательно сигнального светодиода, там небольшая особенность. То что выведено наружу корпуса, это всего лишь оболочка от нерабочего красного светодиода, сквозь которую светят 2 SMD-светодиода с самой платы модуля. Так как трогать их и как-то заменять не хотелось, решил сделать такое вот окно для них.
Отсек аккумулятора крепится к рамке наушников заклепкой. Поскольку внутри этой рамки находится пластина из закаленной стали, в целом все достаточно надежно.
Еще некоторые характеристики:
Вес наушников (с аккумулятором): 220 грамм
Вес аккумулятора: 50-80 грамм
Продолжительность работы 24/24, без переходов в режим ожидания: ~4-5 суток
Продолжительность работы 16/24: до 10 суток
Данные о продолжительности работы актуальны для используемых к настоящему моменту аккумуляторов (2000 и 2200 mAh), есть возможность использовать и более емкие. Используются 2 аккумулятора по очереди, чтобы в случае сигнала о разряде, быстро сменить на уже заряженный.
Возможные альтернативы
Bluetooth-передача это очень хороший вариант беспроводного звука, но идеальной по всем параметрам ее назвать все равно вряд ли получится.
Поэтому рассматривались еще некоторые варианты:
На основе WIFI-сети (отброшен из-за неоправданно высокой трудоемкости, автору не известны готовые решения такого типа и предполагает что пришлось бы самому разрабатывать плату и прошивку + возможно сопутствующий софт).
На основе обычного FM передатчика и приемника (отброшен из-за отсутствия какой-либо защиты от перехвата эфира, или высокой трудоемкости в случае реализации чего-то своего шифрованного).
На основе неких чудных китайских модулей, работающих тоже в 2.4ГГц-диапазоне (и по заявлению производителя, не конфликтующих с Wifi и Bluetooth). Этот вариант не отброшен и сейчас, поскольку представляет интерес, в основном из-за большого радиуса работы данных модулей и отсутствия необходимости в программной поддержке (они по сути просто подключаются к аудиовыходу звуковой карты и работают как есть)
Дополнительно
Радиус работы
В абсолютном большинстве случаев стандартной дальности работы Bluetooth 2.0 (до 10 метров) более чем достаточно. В пределах 1-2 комнат может работать без помех.
Но автору очень уж хотелось больше, и вообще чтобы сигнал пробивал через несколько железобетонных стен и окон, и фантастика в этом роде.
В итоге, проводились эксперименты с добавлением внешних антенн.
Поначалу самодельных, но прирост дальности от них был порядка 10-15% всего.
Позднее нашел парочку антенн от старого радиотелефона, но и с ними ничего лучше тех же +10-15% не получилось. Разве что внешний вид получше, чем у самодельных проводков.
Как-нибудь в другой раз хочется попробовать специальные антенны под 2.4ГГц-диапазон (наподобие тех что применяются в мощных передатчиках Wifi-роутеров), но есть подозрение что и они не особо помогут.
Предполагаю, что дело больше в ограниченной мощности передатчика, а не в антеннах. Если так, то нужно увеличивать мощность передатчика и на стороне источника, и на стороне наушников. Как именно это сделать в случае с данными Bluetooth-модулями, у автора пока нет конкретных идей (и нет достаточного опыта в общем-то в этом). Естественно, увеличение мощности приведет и к увеличению потребления энергии, но это еще вполне приемлемо, если и правда дальность работы принципиально улучшится.
Очень интересно, если у кого-то есть результаты в этом направлении, или схемы/идеи применимые к BT-передатчикам.
Изменение прошивки/конфигурации модуля
Есть возможность с использованием фирменной китайской утилиты и программатора более тонко настроить плату под себя. Включить-выключить те или другие функции и поддерживаемые кодеки, задать "нескучное" имя устройства и сервисные звуки, окирпичить модуль, и многое другое.
Интереса ради, прежде находил как все это сделать, но так и не появилось особой необходимости (да и не было подходящего программатора, чтобы попробовать без необходимости), потому ссылки не сохранились.
Добавление микрофона
На плате присутствуют выводы для присоединения микрофона.
Проверка показала что качество передаваемого с него звука пригодно для голосового общения, чего достаточно в случае подключения к телефону. Но в виде полноценного микрофона для ПК или ноутбука использовать такой смысла нет.
Объединенный аудиовыход
Если требуется объединить минуса аудиоканалов (например, чтобы сделать вывод через распространенный jack с общим минусом), нужна дополнительная развязка аудиовыхода, либо подключение к внешнему усилителю, имеющему на входе раздельные каналы, а на выходе объединенные.
Без таких дополнений модуль работать не будет (уходит в перезагрузку при прямом замыкании минусов). И более того, в инструкциях часто грозятся что из-за таких замыканий он может сгореть.
Ниже расположен пример схемы дополнительной развязки без усилителя. Выглядит адекватно, хотя сам автор не проверял ее в работе из-за ненадобности в случае наушников.
Ссылки
CSR8645 с усилителем на AliExpress (детали, фото, схемы)
На сайте производителя
Документация на примере похожей платы
Подробная статья касательно A2DP, кодеков и прочего
Одна из подобных историй
tl;dr
На этом вроде бы все. Надеюсь статья окажется интересной, по крайней мере непрофессиональным любителям время от времени поиграть с электроникой (к каким сам автор относится).