Меня уже давно мучила идея использовать что-то из продукции Hardkernel для создания сетевого аудио-плеера. Типа такого, только подешевле. Останавливало отсутствие вменяемого аудио-интерфейса, а связываться с USB-DAC не хотелось. И вот на Geektimes появилась новость выпуске нового одноплатного компьютера с интерфейсом I2S и платы с аудиофильским DAC для него. Мечта начала сбываться!
Про отличия Odroid C1+ от «малинки» распространяться не буду, все уже было написано. Остановлюсь подробнее на самом DAC.
Вот что заявлено производителем:
- High-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
Комментарии (22)
build_your_web
27.08.2015 12:50+1Подскажите, пожалуйста ссылку, где можно заказать такой «стандартный алюминиевый корпус».
koreec
27.08.2015 12:56+3Эээ… Я его на Сеульском радиорынке купил, и там же фрезеровал. В данном контексте это означало, что они там в каждом ларьке есть, в 4х стандартных размерах.
А вообще, подобных корпусов навалом на Aliexpreess (по запросу HiFi enclosure). Например, вот такой.landan
27.08.2015 21:52Во сколько вам все обошлось? Почему не подошел такой вариант например — pioneer n-30, стоит где-то 300$, или другой аналог?
koreec
28.08.2015 01:33Odroid C1?HiFi Shield ~$100
Корпус (вместе с фрезеровкой) $48
Прочая мелочевка — еще около $10
Итого — около 160 баксов.
Но тут дело даже не в цене, а в неограниченных возможностях кастомизации как железа, так и софта.landan
28.08.2015 10:08Скажите, пожалуйста, умеет ли эта штуковина проигрывать DSD и есть ли паузы между хайрез треками? И насчет управления с телефона, можно управлять чем то вроде jremote?
koreec
28.08.2015 10:20Вот здесь поддержка dsd заявлена, но сам не проверял.
Пауз нет. Вообще, ресурсов — с запасом. Во время воспроизведения FLAC с сетевой шары загрузка одного ядра около 5%, остальные 0. В момент перехода на следующий трек на пару секунд подпрыгивает до 30%.
На форуме Volumio разработчик выкладывал результаты тестирования самых разных форматов и битрейтов, в итоге играется все. К сожалению, сейчас не смог этот пост найти.
htol
29.08.2015 17:35PCM5102 довольно старый DAC. DSD не умеет. Только PCM.
Вообще решения аудиофильское с большой натяжкой. Нормального генератора нет. Раздельного питания не видно. Восстанавливающий фильтр отсутствует. Хотя этот момент скорее всего из-за того что DAC не дельта сигма.
В общем если надо DSD то стоит смотреть AK4490. И хороший I2S. Тот который в одроиде и малинке таковым назвать нельзя из-за отсутствия нормальных генераторов. А если их нет, то будет большой джитер.koreec
30.08.2015 07:12Кит на базе AK4490 можно купить за $50, так что в итоге выйдет не сильно дороже. Правда, I2S останется тем же.
Nomad1
27.08.2015 13:46Рigh-end PCM5102 Burr-Brown DAC с подключением по интерфейсу I2S
А нет ничего подобного для аппаратного headless пережимания видео?
Например, чтобы из Pi 2 сделать видео-сервер, который берет потоки и файлы в произвольном формате и выдает HD H.264 в реалтайме?
Пока альтернатива только мини-компьютеры на i3-i7, которые греются как кухонная плита и все жмут программно.koreec
27.08.2015 13:58+1У Hardkernel есть вот такая штука:
* Samsung Exynos5422 Cortex™-A15 2Ghz and Cortex™-A7 Octa core CPUs
* Mali-T628 MP6(OpenGL ES 3.0/2.0/1.1 and OpenCL 1.1 Full profile)
* 2Gbyte LPDDR3 RAM PoP stacked
Можно у них на форуме спросить. Должно хватить.
Alexsey
27.08.2015 23:40Пережимать видео? На ARM? Да вы, батенька, извращенец. :) Лично мне пока еще не встречались ARM процы/платформы, которые умеют кодировать видео со скоростью сравнимой с приличными x86 процами.
Nomad1
28.08.2015 08:54Я как бы и не хочу на ARM сжимать, потому вариант по ссылке выше не очень подходит. Нужно именно аппаратное решение, чип для компрессии, либо реализовывать на GPU.
koreec
28.08.2015 09:40+1Не знаю, насколько это правда, но про предыдущий проц нашел следующее:
Процессор Exynos 5420 обеспечивает возможность кодирования/декодирования видео высокой чёткости в формате 1080p со скоростью 60 кадров в секунду. Пропускная способность памяти достигает 14,9 Гбайт/с.
Nomad1
28.08.2015 09:44Прикольно! Не думал, что это возможно на ARM.
Поищу по форумам. Пока видно на скринах с XBMC, что декодирование HD видео почти не нагружает процессор, т.е. либо делается на GPU, либо совсем плевая задача для CPU.
lolipop
27.08.2015 18:18-1прошу прощения, а зачем этот огород? любой девайс с цифровым выходом(например, минипк на андроиде или x86 с xbmc) и внешний цап(ресивер). или я что-то упускаю?
koreec
28.08.2015 01:38Можно и так. Только еще телевизор для управления всем этим хозяйством забыли. К тому же у меня, например, усилитель есть, а ресивера нет, поэтому такой вариант не подходит в принципе.
lolipop
28.08.2015 01:49что мешает поставить тот же mpd или просто веб-интерфейс к коди? кстати, у коди отличное родное приложение под android/ios. так что телевизор не нужен чтобы просто музыку послушать.
koreec
28.08.2015 01:59Кажется, мы начинаем выяснять, чьи фломастеры вкуснее. Rune Audio как раз mpd и использует. Но никто не мешает засунуть туда Kodi. В официальной прошивке, кстати, так и сделано.
petuhov_k
28.08.2015 07:37+1Был у меня минипк на андроиде. Через где-то год работы, у андроида вдруг закончилась память. Почистил, оставив приложений по минимуму, через пару недель, снова кончилась память. Ресетнул всё — пк проработал месяц и сдох совсем. А x86 всёже дороже.
petuhov_k
Поделюсь и своим опытом. Сделал так-же, но иначе. Raspbery Pi 2 в связке c HiFi DAC+ (PCM5122). Усилитель на старой доброй tda2050. Kodi, чтобы ещё и видео смотреть. Корпус не нужен — кабели в стене, оборудование в шкафу, управление с телефона.