My Volumlio - Accuphasemio - Project

Hi everyone,

As a newcomer of this part of the forum, I wanted to share with you my latest project based on volumio…

I have been dealing with audiophile distributions for quite some time and I finally ended up with volumio after many tests on many different HW and software platforms. I started a few years back with the early builds of daphile. Then I went through vortexbox, tinysqueeze among others.

I started at a time where raspeberries were just introduced somehow …and my first tests were actually performed using thin clients…Doing these very first tests, I discovered with some friends working with me on these projects that the power supply part had a tremendous impact on the final sounding result. We did also some comparison between X86 boards and raspberry PI and decided to stick to some X86 board. We did try several x86 board as well and sticked to an asrock one in the end.

My idea was to get a streamer that could integrate well with the rest of the different components of my hifi system. I actually built 2 streamers in two different chassis for the two hifi systems that I own. I wanted the streamer to be able to display infos just like a cd player would do, meaning having a 16x2 lcd at the minimum to show artist name and song…

As I said earlier, we gave a lot of importance to the power supply part. The person in charge of this part is actually a former R&D Engineer from one of the world leading companies in computer market. He was formerly in charge of designing power supplies for desktops. Therefore, he naturally thought about a way of providing the best power supply for this streamer.

I would look after testing the different linux distros and he would build the best power supply for the streamer.
Our bill of materials would be as follow:

1 x chassis (matching the brand look and feel of the pre owned hifi equipment)
1 x x86 motherboard ; Asrock
2 x 2Gigas Ram Moduules
1 x Small SSD drive to host volumio bits ( All my music is sitting on a Synology ds1511+ Nas)
1 x Power supply for the X86 board
1 x Power Supply for the transport part
Some connections part (usb ports, Hdmi Port, Rj45 port, AES Port, etc)
Some usb cables
2 x Adafruit USB to serial LCD Backpack + 2 x 16x2 LCDs RGB
1 x Schaffner IEC plug

Some soldering skills…

I started by buying an old accuphase digital tuner from 1995 in Russia :slight_smile:. The device was no longer working as the satellite service is no longer provided. It cost a few hundred euros but at least, I had the accuphase chassis I wanted (rock solid and well designed). this will happen to be quite useful when dealing with the integration odf the different parts…

IMG_20181130_163246.jpg

asrock1.jpg

Once all the parts were in, I setup the volumio bits and started to work with another colleague on the LCDs part of this project :

IMG_20181203_103257.jpg

As you can see, information is displayed in the following order from right to left :
Using the two serial backpacks, both lcds are appearing under /dev/ttyacm0 and1 on volumio. I am leveraging the lcdbackpack python library to do the display.
The data is retrieved using an python mpd client for files and radio based music
1st screen shows Artist’s Name and Album’s Title, the second screen shows Song’s Title as well as bitrate infos.

When playing webradios, it would display as follows :
1st screen shows Radio’s Name and Webradio underneath , the second screen shows Artist / Song’s Title as well as bitrate infos.

I am currently working on the qobuzz part but there , I must admit we face some issues as we don’t know yet how / where to retrieve the infos from ?
should we talk to upmpdcli ? or interrogate qobuzz api ? or socket.io for the volumio websocket api ??

Any advice in welcome…
The code we are developping is python based; it is available here:

github.com/pattdepanick/vlub

This is not final yet but we are definitely heading in the right direction :smiley:

If you are interested in knowing more about thje power supply part, feel free to visit the following site : roseaudio.fr/english/

In the vintage part, you can see some early work I did on some former sony ES tuner…

Any comments or questions are welcome :wink:

pattdepanick.

here are some recent views of the display on the sony streamer:

IMG_20181203_111823.jpg

IMG_20181203_111800.jpg

Hi all

We finally managed to get everything working smoothly by interfacing with the volumio API rather than usiing the mpd python client. Now, webradio; qobuzz , spotify all works fine in terms of information display on the LCDS.

A simple question though, how come bitrate and samplerate infos does not show up through the api get state request when they do while using the python mpd client…As these infos non relevant on the volumio UI ?

volumio gives these details for regular mpd files ort for music streaming services like qobuz but when playing webradio, it shows the name of the radio and webradio but no bit rate how come ?

Hi,

Very cool project. I was hoping to use your code in a project I am working on. I was hoping you could suggest a few screens for use other than the adafruit screen as they are quite expensive, perhaps something from aliexrpess or banggood.

@pattdepanick

Hi

here is the latest update on the project.
I managed to connect some oled displays to the adafruit backpack. The lcds are ok but the backlight approach did not match my requirements…I am getting old and the readability of lcd is too poor for me and my declining vision :slight_smile: . Besides, the oled appearance is way better ! it matches the accuphase displays.

you can see the difference on the following picture.

IMG_20190303_190428_01.jpg

this one shows you the resukt with both displays

IMG_20190307_113157_01.jpg

now with the help of a nice 3d printer, I will get a nice piece of plastic in which the tow oled displays will nicely fit.

the code has also improved over time.

Getting there slowly but surely :slight_smile:

@warlo :
I actually bought the oled on alliexpress. unfortunately , the usb to serial backpack is only available on adafruit. I understand the cost issue, but didnot find any easier or simplier solution…

If you have any idea I 'd be happy to test !

Wow, nice job!
I built my own one and works great. I’m just trying to get from mpd information about the bitrate. I’ve seen you’ve done it greately. Could you please let me know about the code you used in the python script? thank you

Hi

Sure and happy to share.

please provide some feedbacks as well !

check the following repo :
github.com/pattdepanick/vlub

the current version of the code actually works for mpd or any other source present in volumio (mpd for web radio,and API for everything else like streaming services for instance)

originally I looked at the mpd side only and was using the following code leveraging this :

python-mpd2.readthedocs.io/en/l … arted.html

for bitrate : use the following

#!/usr/bin/env python
from mpd import MPDClient
client = MPDClient()               # create client object
client.timeout = 10                # network timeout in seconds (floats allowed), default: None
client.idletimeout = None          # timeout for fetching the result of the idle command is handled seperately, default:$
client.connect("localhost", 6600)  # connect to localhost:6600
bitrate = client.status()['audio']
print (client.status()['audio'])
client.disconnect() 

today I rely on an API call on the volumio API. it allows me to get the data I need easily
check the class VLUBPlayer(): part

there is also theclass VLUBMPDPlayer(MPDClient): that only talks to mpd itself…

wow, I’m interested, where can I find instructions?

Hi,

Nice project!
Can you provide an url for the oled-display at AliExpress?

THNX

Harry

Hi

here is the url for 16x2:
fr.aliexpress.com/item/32917221 … 6c374LP9fu

here is the one for the 20x2:
fr.aliexpress.com/item/32950018 … 6c374LP9fu

I mounted the OLED on the usb2serial Backpack from adafruit. I is somehow working…When I power up the system, sometimes the OLED displays don’t initialize correctly and show some garbage. see below…

The behavior is random; Sometimes initialization is ok and both screens are fine. Some other time one out the two gets initialized and sometime none of them…

IMG_20190621_145843_01.jpg one out 2 ok

IMG_20190719_165525_01.jpg both ok

We tried adding some caps to delay the inintilization time but no real success there. What we found out was that using an extrenal battery pack with usb outputs gave the best results in terms of initialization.

to better understand, the connection for the OLEDS are as follows :
x86 motherboard => USB ports => usb cable to each display : each display being made of 1 usb2serial adafruit backpack + 1 oled

any help is welcome :slight_smile:

Hi

Finally found a OLED 16x2 with USB connection that fits my purposes. Look for Matrix orbital a canadian company on your favorite search engine. They have many resellers.

Keep in mind that I was looking for a oled solution that I could connect to an X86 motherboard. They have several possible connections to their displays. They also come in different formarts.

Anyway, I am now in the process of replacing my former lcd / OLED screens connected to adafruit lcd usb with these ones. They are a bit more expensive but only require two lines changes in my code to get everything to work.