DIY volumio driven audiophile DAC and CD player

The Raspberry pi has some very high quality DAC such as the Pecan Pi. But regarding integration, even if there are existing cases, I was missing a remote, some basic physical user interface and a CD player.

This is the story of this build.

Main Features

  • 24 bits / 192 Khz DAC
  • Balanced XLR output
  • 2 front USB ports
  • Volume knob
  • 1 action button (play/pause, play radio, random playlist)
  • 1 status led
  • Remote control
  • 100 Mbits Ethernet
  • Slot-in CD player
  • Runs Volumio

Used Components

Hardware build

Fix the Pi and the DAC into the case

The two boards as been centered in the case. The screw supports have been glued.

Front connectors and Leds

The front USB ports have a standard USB3 ATX connector. I used 2 usb breakout boards and some dupont cables to link the front USB ports to Raspberry Pi 3 ones.

The case have an IR window on the front face, so I fixed the IR led just behind. It has been wired to GPIO 25 and ground, on pins 22 and 20

Like all PC cases, there is a front led. I wired it to GPIO 12 and ground, on pins 32 and 34 (there is also a resistor to the ground).

I also make a hole in the case to fix the volume knob that comes with the PecanPi..

 

Ethernet connector

In order to have the audio connectors on the rear face, the ethernet connector of the Raspberry Pi is not easily accessible. I used an old ethernet card to cut it’s connector and wire it to a small rj45 plugged into the Pi. I could have use any female to female connector, but I wanted to use the PCI support to provide a strong support.

CD Player

The CD Player is simply attached normaly to the case and plugged to the Pi via an USB to SATA connector.

Final result

The back panel plate has been 3D printed using a universal IO Shield project form thingiverse: https://www.thingiverse.com/thing:3076355

Software part

The device is driven by Volumio, but I had to write some plugins and provides an Lirc definition for my remote in order to have all functionalities All the plugins have been integrated in Volumio and are accessible from it’s interface.

Ledstatus

Original sources : https://github.com/jit06/volumio-plugins/tree/ledstatus/plugins/user_interface/ledstatus

Blink a GPIO wired led while playing. I used this to show play status throught the case front led.

Status2mqtt

Original sources :  https://github.com/jit06/volumio-plugins/tree/ledstatus/plugins/user_interface/status2mqtt

This plugin send the volumio status to an mqtt server when it changes. I use it to auto power on / off my speakers (Eve audio SC205 + TS108) with a chacon IO receiver.

Gpiorandom

Original sources : https://github.com/jit06/volumio-plugins/tree/gpio_random/plugins/user_interface/gpiorandom

This one allows to assign an action to a button wired to one GPIO. You can set an action for single, double and triple click. Actions can be :

  • Toggle play / pause
  • Play one of your favorites radios
  • Play a given URI
  • Build a playlist with random songs and play it

IR Remote Controller

For this one I just created an LIRC profile for my remote (Philips CD723). The profile has been integrated in the main volumio branch.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

This site uses Akismet to reduce spam. Learn how your comment data is processed.