rooDial a Wireless Volume Knob for Roon with Microsoft Surface Dial

rooExtend V 2.0.0 is up and running. :+1:

The license manager is understandable and clear. And rooPlay (Roon Bridge) works right away with my Audioquest DAC. Thumbs up!


The best feature for me is “Zone Follows Playback”. Works great.


But: It does exactly what the name says. The zone follows playback. If two different zones are in operation (e.g. kitchen and living room), rooDial or roo6D always works with the zone that was played first. In terms of technology, this may be logical, but it does not correspond to my intellectual logic. I (for myself) would wish that the extension would not follow the playback selected first, but the zone currently selected in Roon. Is that possible?

Thank you for the great job :+1: :grinning:


So upgrade to 2.0 - very quick and seamless process (i think having it connected by ethernet made a big difference)

I have noticed a oddity :slight_smile:

The zone follows playback seems to work in that I don’t need a Zone set in the extension. But if I stop playback with the Surface dial I cannot restart it. Now if I pick a zone it will control whichever zone is actively playing - but if I stop it this time and then hit play again on the dial - it starts the zone the extension is set to !

I dont btw get a “yes and changes” option like above just yes/no

I think most of the time this would not be an issue - and its great that it will follow what playing as my goldnotes are in standby alot of the time so are not seen in ROON until they are turned on.



Can confirm this behaviour. Love the feature but It’d be awesome if dial basically carries on controlling the zone that’s currently selected in Roon Now playing tab.

Maybe users can be given the option to set one of the dial gestures to “Revert to Default Zone” for someone to revert to the default zone if needed, without having to access to the interface through phone, tablet, pc etc… :slight_smile:

I also tested that again and can confirm it. It is not clear which of the two running streams will be paused and started. But it should definitely be the case that the selected zone is always controlled.

On Saturday I will have a session with @Klaus_Engel where we try to make the solution work better for you all :+1: So stay tuned…

Best DrCWO


Hi @DrCWO,

I’ve been using rooDial (and rooUPnP) without any issues for a while now, but with the upgrade to 2.0 I’m encountering some problems running rooExtend on a Pi4b. First of all my Surface Dial refused to pair, even after removing and replacing the batteries and restarting both my Roon Core server and the Pi several times.

Even stranger, I’m now seeing multiple mentions of rooDial and rooUPnP with their own Enable-buttons appearing in the Extensions screen. When I checked the Authorizations list, there were indeed multiple authorizations visible - a lot of duplicates, all of rooDial 1.4.0 and rooUPnP 1.10 (so not the old ones for the previous versions). Any thoughts?

you are right, this is really very curious! I also have a Pi4 running and never saw that before :thinking:

Are you running wired Ethernet (hope so)?

Please do as follows:

  • Power down the Pi.
  • Remove authorization for all Roon Extensions. You have an empty list then.
  • Restart Roon and go to Settings->Extensions. The list shall be empty now.
  • Burn a fresh SD-Card with a fresh the v2.0.0 SD-Card image.
  • reboot the Pi.
  • If it comes up you should see the rooExtend license Manager and nothing else.
  • Enable it in Settings–>Extensions and enter the license key for rooDial.
  • Send me the screenshot you get of Settings–>Extensions.

Thanks’ DrCWO


I have similar Problems.

Please try the steps above. I have no idea why the rooDial process gets started twice :thinking:

I now changed from roodial to roonuimo. Now it is working. I didn’t change anything inside the raspberry W, except the license.

Cheers - that solved the problem. The only difference in terms of procedure I can think of is that the first time I initially entered the wrong license number for rooUPnP, but I rectified that mistake immediately. Thank you!

I had the same problem too - 8 instances of RooDial running.
A simple reboot of the Pi W seems to have fixed it for me though.


Just set up RooDial with my Roon-based system and a RPi 0. Works flawlessly so far.


@DrCWO Hello, I just upgrade to the latest firmware 2.0. I was able to load the image, extension load in Roon. Licenses have been added. However, my SurfaceDial has not been able to pair.

Any troubleshooting tips? Thanks in advance. Love this solution.

Procedure one: take out batteries of the Surface Dial and retry

Procedure two:

  • Do procedure one
  • Power down Raspberry
  • Restart Raspberry and retry

Procedure tree:

  • Power down all devices with Bluetooth in your house cellphones, pads, TV,…
  • Open http://rooExtend.local
  • Press the Button “Reset to factory settings”. Beware, you loose WiFi connection doing this. Licenses stay intact! If you run via WiFi you have to reestablish it after boot. If you run wired ethernet no issues.
  • Do procedure two.

Best DrCWO

I’m sorry to say that I now switched back to V_1.4.2

As expected, the day started today without any problems. In addition, I would like to say that I restarted the PI this morning. At 5:00 p.m. suddenly nothing worked. In the settings I saw that roo6D only flickered. At that moment of review, the entries suddenly doubled (as noted in the thread above). I backed up the licenses (rooDial and roo6D) and deleted all rooExend authorizations. I’m not lying: I now had 3 (red) authorizations per license that I could delete.

That was reason enough for me to go back to the previous version. Something is wrong here. I am waiting with V 2.0.0 until the problem has been resolved.

I work on it, probably already found the issue :slight_smile:


i am having the same problems and am unable to disable the extension!

Custom cover plates for Raspberry Pi 4 case from FLIRC!

rooExtend – The easy start with Roon Extensions - Audio Products - Roon Labs Community

Have you tried just rebooting the Pi? Resolved exactly this issue for me.