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


  • Make the 1st generation Devialet Phantom useful again. This unit was sitting in a box for years due to a lack of connectivity options for operating it with Roon.
  • Fast, reliable access to a knob for volume control. Devialet has a wireless volume knob for the Phantom, but I’m not sure that knob works with this very old Phantom, and no one could give me a confirmation it does. I also see people on forums complaining that it is not reliable.
  • An easy way to turn on/off the music
  • A solution that is minimal, and fits the minimal white decor of the bedroom that it is going into.



  • Devialet Phantom
  • Griffin Powermate USB Knob – this thing is hard to find nowadays. They have a Bluetooth version, but that’s not what I had around.
  • Raspberry Pi 3 or 4
  • IQaudIO Digi+ (it doesn’t look like they sell this anymore, but HiFiBerry has an equivalent)

Still to do:

  • I will be 3D printing a case for the Raspberry Pi, polishing and painting it a glossy white, and making it fit seamlessly on the back of the Phantom.
  • I have a Phantom Gold for my office, that I use with Airplay, but this solution turned out way better for SQ and zone grouping in my home.
  • Get better at video editing – my sound is all over the place. Sorry!

Note that newer Phantoms are Roon Ready now natively, but this one is too old, so this still project still is relevant.


Really interesting project! A Roon Ready Phantom would be excellent.

Is there a guide how to add extensions in Roon? I would really like to add the UPnP volume extension as I have two Gold Phantom and would love to get rid of the Spark app.

1 Like

Would this howto-install-extensions-on-windows-in-three-easy-steps be of use?

Danny’s link to the github page provides further detail how to invoke the volume extension in place of the default volume.

1 Like

This device is long gone from Griffin’s site. Also the Bluetooth version is no more AFAIK
Could this be an alternative?

Thanks! Too bad the weather is nice and the beach is calling, can’t wait to install the extension.

Thanks Danny

The volume control extension is just what was needed. I’ve installed it and it works perfectly! Most grateful.

I’ve been using them with Roon bridge running on a RPi/Hifiberry optical output, but the volume control was always a pain - the Spark app or the knob. I also have been using a Homebridge plug in that also controls the volume using UPNP and works well with Siri and/or the iOS Home app.

FYI, I have a pair of 1st gen Phantoms too and the remote control knob from Devialet works perfectly with them.

I can’t get the Phantom to throw back changes to it’s volume when I change it via Spark. It means if you use your knob, Roon will get out of sync with the volume :frowning:

The “beta” UPnP doesn’t seem to do subscriptions properly. Shocking. I hate UPnP.

@mvrlogins, is that your experience too? If you change the volume in Spark or with the knob, does Homebridge get the events?

I have a Nuimo Control… it’s a really nice knob. Let me see if I can get that working… I didn’t think about it since I’m trying to get them to open up an API for their hub, but I bet I can do something hubless because I have an RP with BLE support.

Nope, the volume change doesn’t feed back to Homebridge.

What about the Ortho Remote? It’s cheaper, but maybe not as nice as Nuimo…

Yah, I just checked their code… they are doing very lame string packing http requests.

Don’t have an Ortho, there seem to be no docs (GATT Profile), no relationship with the company. Because I’m doing this on a weekend while the rest of my family is out of town, it’s going to be limited to what I have here.

That’s why this is in #tinkering

Thanks for this, @danny ! Controlling the Phantoms volume in Roon works great with the extension! Ordered a Griffin Powermate BT volume control nob on Amazon. Will be even more happy when this works!

This will not work with my extension. I only had USB.

That said, send me a link to what you bought, i might pick one up too… I am working with the Nuimo right now via Bluetooth, but I accidentally broke it.

Good stuff @danny, thanks for sharing!

Just to check i’ve got the gist of this correctly:

  • you are connecting the rPi to the Phantom how? Toslink?
  • if not UPnP this solution presumably doesn’t support 24/192?
  • this solution wouldn’t support stereo without a dialog?

I realise your use case may not require these features, just want to understand if this might provide a solution to supporting mine.

I’ve been using Danny’s extension

The RPi is connected to the Phantom using the toslink optical input - either directly on the Phantom or, if you have one, the Dialog.

You do need the Dialog to run 2 Phantoms in stereo, but the optical cable can still go into either of the Phantoms or into the Dialog - just need to configure it in Spark. I have it going into one of the Phantoms because of noise issues with the optical input on the Dialog that Devialet have not resolved yet.

The optical output is provided by the Hifiberry or IQAudio HAT on the RPi (running Roon Bridge) with the toslink optical output. It supports 24/192 and it works fine at that with the Phantoms - I’m using it now. Neither the HAT nor the Phantoms support anything higher.

The UPnP only comes into play to control the volume - the audio is not transported via UPnP.

Note - I only know this about the 1st gen Phantoms - which is what I have a pair of along with a Dialog. The later ones may support stereo with a Dialog.

1 Like

Based on Danny’s cue, I put together a system with:
Raspberry Pi 3 B+
HifiBerry Digi+ Pro HAT
RoPieee RoonBridge
It works great wired to the Devialet Phantom (ethernet>RoonBridge> SPDIF>Phantom). I have the Devialet remote control and it works perfectly. In fact, Roon volume control is set to Device and the remote is now very responsive. Before I had AirPlay driving the Phantoms. Roon volume was also set to Device, but there was a lot of lag with the remote control. It works much better now.
Thank you Danny!

Is there a guide for manually installing extensions in Win 10? The extension can’t be installed through the extension manager.

1 Like

I would love the same assistance as @ragwo is looking for, either for Mac, or directly on a Pi. I haven’t dabbled in extensions yet. I got the Extension Manager installed through the DietPi software configuration tool, but I can’t seem to find instructions on how to manually install extensions that aren’t listed, or how to get extensions added to the Extension Manager list.

Ok. I got this working now (it’s great).

Here’s the process I followed on Mac, which should be the same on Windows I assume as long as you have something similar to Terminal on your machine.

This was on DietPi on a RPi 3+, with Roon Endpoint and Roon Extension Manager installed (I didn’t install node.js because that got installed already when the Roon Extension Manager was installed, but you can double check in the Dietpi software config package manager).

This is all based on the instructions I found on which ended up pointing the way.

Access your DietPi via console by putting in this command

ssh root@[IP Address of your Pi]

This assumes you have not changed the admin username on your DietPi install from root, edit accordingly. You should now be prompted for a password to access the Pi.

Now paste this at the command prompt once you are accessing the Pi:

git clone

You should see the files getting extracted into roon-extension-devialet-phantom-volume

Change the directory you are accessing into the directory where the software was extracted using this command: cd roon-extension-devialet-phantom-volume

Install the Node.js modules by typing the command npm install

Run the application by typing nohup node app.js &

The extension should be running now. In order to exit Terminal or Putty, or whatever command line interface you are using, make sure to type exit, rather than just closing the window, to ensure the process stays active.

On an existing Roon client, go to “Settings” then “Extensions”. You should now see the Devialet Phantom Volume Control listed and it will either be searching for the device, or you’ll see Status: Found # device.

Now you can follow @danny’s instructions on the github repo ensuring you enable UPnP in Spark, and changing the device volume control in Roon in Settings/Audio/

The extension seemed to disappear when I power-cycled the Pi. There may be an additional instruction on how to ensure that the app is started up on boot. I had to go back in, cd into the directory again, and run node app.js to get the extension running again.

Hope this helps.

1 Like

Are you seeing the volume changes from the Devialet Remote Control reflected back in Roon?

I can change the volume of the Phantoms using the volume control in Roon now (which is great), but I have noted that if I change the volume using the Devialet Remote Control, the volume level changes in Spark, but doesn’t feedback to Roon, so the Volume level in Roon doesn’t change, even though the volume has been changed via the Remote. This means that as soon as I click on the Roon software volume controls, the volume jumps back to the volume set in Roon, regardless of how it was attenuated via the Remote Control.

I assume this would require the extension to listen to Spark for volume changes on the Phantom that take place outside of Roon.