Network audio player: HiFi inexpensive
I have long been tormented by the idea of using some of the Hardkernel products to create a network audio player. Like this , only cheaper. It stopped the lack of a sane audio interface, but I did not want to communicate with USB-DAC. And at Geektimes there was news about the release of a new single-board computer with an I2S interface and a board with an audiophile DAC for it. The dream began to come true!
I won’t spread about the differences between Odroid C1 + and “raspberry”, everything has already been written . I will dwell in more detail on the DAC itself.
Here is what the manufacturer claims:
- High-end PCM5102 Burr-Brown DAC with I2S connectivity
- Support for 16/24 formats with minimal distortion (-93dB) and perfect dynamics (100dB +). Sampling rate up to 192kHz.
- Using an ultra-low noise power regulator in combination with two solid-state capacitors, which greatly increases the signal-to-noise ratio
- Special PCB design and gold-plated RCA connectors.
The Hardkernel blog provides test results using the Audio Precision analyzer, confirming the claimed characteristics.
Total Harmonic Distortion + Noise (THD + N):
Signal / Noise: Noise
Signal / Noise: Noise
It was decided that the thing was cool and needed to be taken. In principle, the assembly of the device is reduced to screwing the legs, and connecting the connectors. Fill the image onto the SD card, and that’s it. But in this form, firstly, it does not look like HiFi, and secondly, it attracts unnecessary attention of a cat by blinking LEDs and wires sticking out in all directions. Therefore, the next step was the manufacture of the case and packaging everything inside. A breathtaking design was made, which however had to be adjusted to suit local realities. As a result, a standard aluminum case was chosen, the modification of which was reduced to hole milling. Case dimensions 190x170x70mm. Wall thickness 2mm. The assembly itself did not deliver much problems due to the simplicity of the device:
As befits a single-board computer, interface connectors are located on all sides, which when installed inside the case creates certain problems. I had to re-solder something:
- There is an IR port on the board. The piece is useful in general, but useless inside the case. It was soldered, transplanted to the cable and placed on the front panel.
- RCA looks sideways. The problem was solved using a self-made adapter.
- The maximum power of C1 + is 2 amperes (when connecting external devices via USB), so the power supply was selected with some margin, especially since there are still no less than 5V / 3A units.
- 3 blue LEDs connected to GPIO.
In order to somehow ennoble the appearance, the front panel was covered with a 5 mm thick black acrylic overlay. The recesses opposite the LEDs and the IR receiver were milled on the back side:
This ended the iron part.
Announcing a new kit in their blog, the developers wrote that everything works great with Volumio . Volimio is a trimmed Debian build. For the media player function is responsible mpd's , controlled via a web-interface or any client for mpd, whether MPDroid or any other client.
However, as it turned out, the guys from Hardkernel were in a hurry. At that moment, when I already received the kit on hand, there was no public working assembly of Volumio with I2S support! I had another 4 days to get the developers. A few days after Volumio pulled up and Rune Audio. Since Volimio has been pushing hard for developers in the forum, I started with it. In principle, everything worked, but jambs like the falling off Spotify popped up periodically. In addition, there was no support for IR Remotr control, and the installation of Lirc required lengthy dances with a tambourine due to the strong distribution cutoff. Disappointment.
But three days later, a new release of Rune Audio was released and the dream finally came true in full! The remote works, Spotify works, everything is in place! Unlike Volimio, Rune Audio is built on the basis of ArchLinux, and all the necessary functions are present there initially.
The design is adaptive, it looks great both on PC and on smartphones, so you can control the player equally conveniently from any device.
In order to finally make friends with Rune Audio and Odroid C1 +, you need to make some presetting.
1) Activate DAC support
Uncomment the line:
# PCM5102 audio DAC Enable/Disable # Uncomment the line below to __ENABLE__ Audio-DAC(PCM5102) setenv enabledac "enabledac"
You can also disable HDMI and GPU support there to save resources.
2) Activate the remote control:
systemctl enable lircd systemctl start lircd systemctl enable irexec systemctl start irexec
In principle, you can use the small Hardkernel remote, I preferred to connect the remote from Xtreamer by downloading the config from here and placing it in /etc/lirc/lircd.conf.d/lircd.conf .
I got the impression that Volimio is a heavily trimmed version of Rune Audio to suit less resource consumption. It is possible that this is relevant for the “raspberry”, but given the power of the Odroid C1 +, this is clearly useless.
Of course, a bunch of Odroid C1 + Hardkernel HiFi shield is far from the only option to build a network player. And not the cheapest. It is possible to do with Raspberry P + b and one of the many Chinese HiFi DAC. Moreover, you can connect any DAC with I2S interface to Odroid C1 + by soldering a small adapter. Here is an example from the Hardkernel forum - connecting the Teradak ES9023:
In general, the choices are diverse.
Some points that I would have done differently in the next iteration:
It was worth placing a HiFi Shield next to the main board and connecting it with a loop. Then it would be possible to bring the native connectors to the rear panel directly.
The SD connector is located on the underside of the board. Those. To update the firmware, you need to disassemble the case and remove the entire “sandwich”. Now I would use an extension cable and bring the micro-sd connector to the rear panel.
Section Odroid C1 on the forum Rune Audio
Section Odroid C1 on the forum Hardkernel