Almost "Roon Ready" 1st generation Devialet Phantom w/ knob

No, the volume changes I make with the Devialet Remote are not reflected back in Roon. Presumably this is because the volume is controlled at the level of the device (Phantom), which is after the pi Roonbridge.
I haven’t tried to control the volume in Roon since I put this change in the system.

You can start the extension at boot with systemd:

systemd is the init system used by modern Linux systems. Here is a sample systemd unit file which can be used to automatically start this application at Linux system boot time.

Template:

[Unit]
Description=NodeJS app - Roon Extension Devialet Phantom Volume
After=network.target
[Service]
User=node
WorkingDirectory=/home/pi/roon-extension-devialet-phantom-volume
ExecStart=/usr/local/bin/node app.js
[Install]
WantedBy=multi-user.target

Usage

To use this unit file:

• Save this template to a file called roon-extension-devialet-phantom-volume.service
Edit the user field to be the user running the application

• Edit the WorkingDirectory field to be the location where the application is installed ( NOTE : the user must have read and write access to this location!)

• Create system folder in /usr/lib/systemd, if not exists

• Using either sudo or as root, copy the edited roon-extension-devialet-phantom-volume.service file to /usr/lib/systemd/system

• Reload systemd: sudo systemctl daemon-reload

• Start the application: sudo systemctl start roon-extension-devialet-phantom-volume.service

• Enable the application at boot up: sudo systemctl enable roon-extension-devialet-phantom-volume.service

1 Like

Perhaps you weren’t commenting on the extension Danny is referring to here.

The function of this extension is to allow you to control the volume in Roon while still using a Roon Endpoint. Prior to this extension, the only way to control volume on a Phantom was to stream to it via Airplay or Bluetooth; but if you wanted to use a Roon Endpoint and an Optical cable instead (like what you’ve done) you needed to use the Devialet Remote Control (setting the volume in Roon to “fixed”); or control volume via the iOS Phantom app/Spark (again with Roon set to fixed volume).

I’m using this extension, which lets me finally switch from Fixed to being able to control the volume from Roon; but I also own the Devialet Remote Control (RC), which lets me attenuate the volume quickly when it get too loud and someone is yelling at me to turn it down. The remote still works, and I can turn the volume down using the RC, but the software volume level doesn’t change (the slider doesn’t move) meaning when I click the software volume control again, the audio jumps back to the volume level the system was at prior to manipulating it via the RC.

Awesome. Thanks for the detailed instructions @streamy68 . Much appreciated.

I made note of this up above:

This is because UPnP on the Phantom is not responding with subscribe events.

I didn’t investigate this more because I had a weekend, I don’t use Spark, and my knob controls Roon (which then controls the Phantom via this extension).

There is a comment in the code that shows this. If anyone wants to dig further, feel free: https://github.com/RoonLabs/roon-extension-devialet-phantom-volume/blob/master/app.js#L96

A well deserved one. My comments weren’t intended as a judgement against the extension, just a comment to investigate how it was working perfectly for @grossmsj who also seemed to be using a Devialet Volume Control.

Thanks for sharing this.

Thank you very much! I’ll try it out as soon as possible.

You’re right. I’m just glad to be free of the constraints of Airplay, Dialog, and Spark. I’ve been in music systems for over 45 years and the Devialet Phantom system is the most twitchy, frustrating piece of equipment I’ve ever used. Roon is probably the most satisfying part of my audiophile journey. Getting them to play nice together has been a seemingly endless sequence of hope and disappointment.
Finally, I can just connect this endpoint up and get everything I need out of Roon. True, I don’t see the volume numeric feedback from Roon, but when I’m using this system the Devialet remote is right beside me in my shop and the volume control works fine now.

Definitely agree. The physical remote within arms reach is an essential accessory. I couldn’t imagine my system without it.

@ragwo I don’t think I have this quite sorted out yet, despite best intentions beyond my skill set. I didn’t realize that when I close the ssh session for the root user, the extension goes away. Clearly I don’t have it installed correctly so that it will run continually.

I put in a pull request on the Extension Manager Repository on Github to see about getting this extension added to the Manager, which would automate the systemd hurdles as well. Hopefully that gets merged, or someone with stronger tinkering chops can point us both to a step-by-step on manual extension installation. The Extension Manager has overtaken every Google search making locating a manual guide elusive. I thought I might find something in the KB, but I’m striking out there too. :frowning_face:

1 Like

Hi @vaguedetails,

I saw your pull request but for this to work a small change in the Devialet Phantom extension is necessary. I created a pull request for it, let’s see if it gets accepted.

The trick here is to use nohup.

2 Likes

I made some edits to the above instructions based on @Jan_Koudijs’s nohup suggestion. I appreciate all the help folks.

1 Like

The pull request is merged. Thanks @danny!

I just released an update of the Extension Repository that includes the Devialet Phantom extension. For those who use the full setup as demoed by Danny, for the Powermate extension to show up in the Extension Manager it should have access to a Docker install. There is a video on how to do this on a DietPi setup on my YouTube Channel.

2 Likes

@Jan_Koudijs and @danny: Thank you very much!

Edit:
I’ve finally installed the extension and it works like a charm on a Chromecast Audio. A Raspberry Pi with Hifiberry Digi+ is ordered and hopefully on its way soon. Thanks again!

2 Likes

@Danny great work. I’m currently using two Golds connected to a RPi 3B+ with HiFiBerry Digi+ an optical splitter and direct optical mode. I’m interested in enabling “device volume” through Roon in order to get bit-perfect playback vs. controlling the volume via DSP. Is this possible with your extension? It seems like using the direct-optical mode would negate any uPNP capabilities of the device?

Sorry, but I’m not sure I understand your question. The 2 things that threw me off:

  1. You refer to some “direct optical mode” that I’m unaware of. Please clarify.

  2. My extension speaks to the Phantom via UPnP to control the volume, not to stream audio. I’m not sure what negation you may be referring to.

You can’t use the UPnP volume extension with direct optical mode.

1 Like

I was referring to this mode. Thanks for clarifying @ragwo. Hope Devialet comes out with the DOS2 update soon…

@danny

Here’s something interesting. The chap seems to have figured out how to get the volume from the device.

He’s not mentioned it in the usage section of his readme, but ?getVolume=1 gives the current volume.

Stumbled onto this rotary encoder with built-in display, and figured I’d put a bug in everybody’s ear. It’d obviously need a recasing with a board and battery to be of practical use, and it isn’t exactly cheap ($180 retail if I’m not mistaken), but…