Меня уже давно мучила идея использовать что-то из продукции Hardkernel для создания сетевого аудио-плеера. Типа такого, только подешевле. Останавливало отсутствие вменяемого аудио-интерфейса, а связываться с USB-DAC не хотелось. И вот на Geektimes появилась новость выпуске нового одноплатного компьютера с интерфейсом I2C и платы с аудиофильским DAC для него. Мечта начала сбываться!
Про отличия Odroid C1+ от «малинки» распространяться не буду, все уже было написано. Остановлюсь подробнее на самом DAC.
Вот что заявлено производителем:
- Рigh-end PCM5102 Burr-Brown DAC с подключением по интерфейсу I2S
- Поддержка 16/24 форматов с минимальным искажениями (-93dB) и идеальной динамикой (100dB+). Частота дискретизации до 192kHz.
- Использование регулятор питания с ультра-низким уровнем шума в сочетании с двумя твердотельными конденсаторами, что значительно увеличивает отношение сигнал-шум
- Специальный дизайн PCB и позолоченные разъемы RCA.
В блоге Hardkernel приведены результаты испытаний, проведенных с помощью анализатора Audio Precision, подтверждающие заявленные характеристики.
Сигнал/Шум:
Уровень шума:
Было решено, что штука крутая и нужно брать. В принципе, сборка устройства сводится к вкручиванию ножек, и подключению разъемов. Заливаем образ на SD-карту, и все. Но в таком виде оно во-первых не выглядит как HiFi, во-вторых, привлекает ненужное внимание кота мигающими светодиодами и торчащими во все стороны проводами. Поэтому следующим этапом было изготовление корпуса и упаковка всего во внутрь. Был сделан умопомрачительный дизайн, который однако пришлось скорректировать с учетом местных реалий. В итоге, был выбран стандартный алюминиевый корпус, модификация которого свелась к фрезерованию отверстий. Размеры корпуса 190х170х70 мм. Толщина стенок 2 мм. Сама сборка особых проблем почти не доставила по причине простоты устройства:
Как и положено одноплатному компьютеру, интерфейсные разъемы расположены со всех сторон, что при установке внутрь корпуса создает определенные проблемы. Пришлось кое-чего перепаять:
- На плате есть IR порт.Штука полезная в целом, но бесполезная внутри корпуса. Был выпаян, пересажен на шлейф и вынесен на переднюю панель.
- RCA смотрит в бок. Проблема решилась с помощью самопального переходника.
- Максимальная мощность C1+ — 2 ампера (при подключении внешних устройств по USB), так что блок питания был выбран с некоторым запасом, тем более что блоков меньше 5V/3A все равно нет.
- 3 голубых светодиода подключены к GPIO.
Дабы хоть как-то облагородить внешний вид, передняя панель была закрыта накладкой из черного акрила толщиной 5 мм. На тыльной стороне были профрезерованы углубления напротив светодиодов и IR приемника:
На этом железячная часть закончилась.
Софт
Анонсируя новый комплект у себя в блоге, разработчики написали, что все замечательно работает с Volumio. Volimio представляет собой обрезанную сборку Debian. За функции медиаплеера отвечает mpd, управление осуществляется через web-интерфейс или любой клиент для mpd, будь то MPDroid или любой другой клиент.
Однако, как оказалось, ребята из Hardkernel несколько поспешили. В тот момент, когда я уже получил комплект на руки, публичной работающей сборки Volumio с поддержкой I2S не было! Пришлось еще 4 дня доставать разработчиков. Через несколько дней после Volumio подтянулись и Rune Audio. Поскольку Volimio усиленно продвигался разработчиками у себя в форуме, я начал с него. В принципе, все работало, но периодически всплывали косяки типа отваливающегося Spotify. К тому же, поддержки IR Remotr control не было, а установка Lirc требовала длительных танцев с бубном ввиду сильной урезанности дистрибутива. Разочарование.
Но вот спустя три дня вышел новый релиз Rune Audio и мечта наконец-то сбылась в полном объеме! Пульт работает, Spotify работает, все на месте! В отличие от Volimio, Rune Audio собран на базе ArchLinux, и все нужные функции там присутствуют изначально.
Дизайн адаптивный, отлично выглядит как на ПК, так и на смартфонах, так что управлять плеером можно одинаково удобно с любого устройства. Для того, чтобы окончательно подружить Rune Audio и Odroid C1+ нужно произвести некоторую предварительную настройку.
1) Активируем поддержку DAC
nano /boot/boot.ini
Раскоментируем строку:
# PCM5102 audio DAC Enable/Disable
# Uncomment the line below to __ENABLE__ Audio-DAC(PCM5102)
setenv enabledac "enabledac"
Там же можно отключить поддержку HDMI и GPU для экономии ресурсов.
2) Активируем пульт ДУ:
systemctl enable lircd
systemctl start lircd
systemctl enable irexec
systemctl start irexec
В принципе, можно использовать маленький пульт Hardkernel, я предпочел подключить пульт от Xtreamer, скачав конфиг отсюда и поместив его в /etc/lirc/lircd.conf.d/lircd.conf.
У меня сложилось впечатление, что Volimio это сильно обрезанный в угоду меньшему потреблению ресурсов вариант Rune Audio. Возможно, что для «малинки» это и актуально, но с учетом мощности Odroid C1+ это явно ни к чему.
Конкурирующие решения
Разумеется, связка Odroid C1 + Hardkernel HiFi shield это далеко не единственный вариант сборки сетевого плеера. И не самый дешевый. Вполне можно обойтись Raspberry P+ b и одним из многочисленных китайских HiFi DAC. Более того, к Odroid C1+ можно подключить любой DAC c интерфейсом I2S, спаяв небольшой переходник. Вот пример с форума Hardkernel — подключение Teradak ES9023:
В общем, возможности выбора разнообразны.
Erratum
Некоторые моменты, которые в следующей итерации я бы сделал по другому:
Стоило разместить HiFi Shield рядом с основной платой, и подключить шлейфом. Тогда можно было бы вывести родные разъемы на заднюю панель напрямую.
Разъем для SD расположен на нижней стороне платы. Т.е. для обновления прошивки, нужно разбирать корпус и снимать весь «бутерброд». Сейчас я бы использовал шлейф-удлинитель и вывел бы разъем micro-sd на заднюю панель.
Полезные ссылки
Раздел Odroid C1 на форуме Rune Audio
Раздел Odroid C1 на форуме Hardkernel
Автор: Испанский лётчик