Меня уже давно мучила идея использовать что-то из продукции 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, подтверждающие заявленные характеристики.

Результаты испытаний
Общее гармоническое искажение + шум (THD + N):



Сигнал/Шум:


Уровень шума:




Было решено, что штука крутая и нужно брать. В принципе, сборка устройства сводится к вкручиванию ножек, и подключению разъемов. Заливаем образ на 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)


  1. petuhov_k
    27.08.2015 12:38
    +1

    Поделюсь и своим опытом. Сделал так-же, но иначе. Raspbery Pi 2 в связке c HiFi DAC+ (PCM5122). Усилитель на старой доброй tda2050. Kodi, чтобы ещё и видео смотреть. Корпус не нужен — кабели в стене, оборудование в шкафу, управление с телефона.


  1. build_your_web
    27.08.2015 12:50
    +1

    Подскажите, пожалуйста ссылку, где можно заказать такой «стандартный алюминиевый корпус».


    1. koreec
      27.08.2015 12:56
      +3

      Эээ… Я его на Сеульском радиорынке купил, и там же фрезеровал. В данном контексте это означало, что они там в каждом ларьке есть, в 4х стандартных размерах.
      А вообще, подобных корпусов навалом на Aliexpreess (по запросу HiFi enclosure). Например, вот такой.


      1. build_your_web
        27.08.2015 15:56
        +1

        Спасибо.


      1. landan
        27.08.2015 21:52

        Во сколько вам все обошлось? Почему не подошел такой вариант например — pioneer n-30, стоит где-то 300$, или другой аналог?


        1. koreec
          28.08.2015 01:33

          Odroid C1?HiFi Shield ~$100
          Корпус (вместе с фрезеровкой) $48
          Прочая мелочевка — еще около $10
          Итого — около 160 баксов.
          Но тут дело даже не в цене, а в неограниченных возможностях кастомизации как железа, так и софта.


          1. landan
            28.08.2015 10:08

            Скажите, пожалуйста, умеет ли эта штуковина проигрывать DSD и есть ли паузы между хайрез треками? И насчет управления с телефона, можно управлять чем то вроде jremote?


            1. koreec
              28.08.2015 10:20

              Вот здесь поддержка dsd заявлена, но сам не проверял.
              Пауз нет. Вообще, ресурсов — с запасом. Во время воспроизведения FLAC с сетевой шары загрузка одного ядра около 5%, остальные 0. В момент перехода на следующий трек на пару секунд подпрыгивает до 30%.
              На форуме Volumio разработчик выкладывал результаты тестирования самых разных форматов и битрейтов, в итоге играется все. К сожалению, сейчас не смог этот пост найти.


            1. htol
              29.08.2015 17:35

              PCM5102 довольно старый DAC. DSD не умеет. Только PCM.
              Вообще решения аудиофильское с большой натяжкой. Нормального генератора нет. Раздельного питания не видно. Восстанавливающий фильтр отсутствует. Хотя этот момент скорее всего из-за того что DAC не дельта сигма.

              В общем если надо DSD то стоит смотреть AK4490. И хороший I2S. Тот который в одроиде и малинке таковым назвать нельзя из-за отсутствия нормальных генераторов. А если их нет, то будет большой джитер.


              1. koreec
                30.08.2015 07:12

                Кит на базе AK4490 можно купить за $50, так что в итоге выйдет не сильно дороже. Правда, I2S останется тем же.


  1. Nomad1
    27.08.2015 13:46

    Рigh-end PCM5102 Burr-Brown DAC с подключением по интерфейсу I2S

    А нет ничего подобного для аппаратного headless пережимания видео?
    Например, чтобы из Pi 2 сделать видео-сервер, который берет потоки и файлы в произвольном формате и выдает HD H.264 в реалтайме?
    Пока альтернатива только мини-компьютеры на i3-i7, которые греются как кухонная плита и все жмут программно.


    1. 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

      Можно у них на форуме спросить. Должно хватить.


    1. Alexsey
      27.08.2015 23:40

      Пережимать видео? На ARM? Да вы, батенька, извращенец. :) Лично мне пока еще не встречались ARM процы/платформы, которые умеют кодировать видео со скоростью сравнимой с приличными x86 процами.


      1. Nomad1
        28.08.2015 08:54

        Я как бы и не хочу на ARM сжимать, потому вариант по ссылке выше не очень подходит. Нужно именно аппаратное решение, чип для компрессии, либо реализовывать на GPU.


        1. koreec
          28.08.2015 09:40
          +1

          Не знаю, насколько это правда, но про предыдущий проц нашел следующее:

          Процессор Exynos 5420 обеспечивает возможность кодирования/декодирования видео высокой чёткости в формате 1080p со скоростью 60 кадров в секунду. Пропускная способность памяти достигает 14,9 Гбайт/с.


          1. Nomad1
            28.08.2015 09:44

            Прикольно! Не думал, что это возможно на ARM.
            Поищу по форумам. Пока видно на скринах с XBMC, что декодирование HD видео почти не нагружает процессор, т.е. либо делается на GPU, либо совсем плевая задача для CPU.


  1. lolipop
    27.08.2015 18:18
    -1

    прошу прощения, а зачем этот огород? любой девайс с цифровым выходом(например, минипк на андроиде или x86 с xbmc) и внешний цап(ресивер). или я что-то упускаю?


    1. koreec
      28.08.2015 01:38

      Можно и так. Только еще телевизор для управления всем этим хозяйством забыли. К тому же у меня, например, усилитель есть, а ресивера нет, поэтому такой вариант не подходит в принципе.


      1. lolipop
        28.08.2015 01:49

        что мешает поставить тот же mpd или просто веб-интерфейс к коди? кстати, у коди отличное родное приложение под android/ios. так что телевизор не нужен чтобы просто музыку послушать.


        1. koreec
          28.08.2015 01:59

          Кажется, мы начинаем выяснять, чьи фломастеры вкуснее. Rune Audio как раз mpd и использует. Но никто не мешает засунуть туда Kodi. В официальной прошивке, кстати, так и сделано.


    1. petuhov_k
      28.08.2015 07:37
      +1

      Был у меня минипк на андроиде. Через где-то год работы, у андроида вдруг закончилась память. Почистил, оставив приложений по минимуму, через пару недель, снова кончилась память. Ресетнул всё — пк проработал месяц и сдох совсем. А x86 всёже дороже.


  1. koreec
    28.08.2015 04:08

    Изменил в названии «медиа-плеер» на «аудио-плеер», так точнее будет.