Meridian Extension with 818v3 and dCS NWB

I am trying to install the Meridian Extension and having no luck.

I have Extension Manager installed and visible from the Roon Remote.

According to this:

…the Meridian Extension should be in the Repository.

But it isn’t:

What gives? Have I missed a step?

Hi @Ludwig,

You are probably running the arm64 image of DietPi, the Meridian extension is only available for arm32 (and amd64 for PC).

Is it an option for you to make the switch to the arm32 version of DietPi?

1 Like

This RPi is just for the Roon extension. So I have no problem starting from scratch.

HI @Jan_Koudijs It’s running, Linux sees the USB-Serial adapter but the Extension says “Could not connect to Meridian on ttyUSB0.”

I assume I have to configure the USB-Serial adapter. Pointers? Do I need a driver?`Or to install something else to configure it?

How have you determined this? Is there a file named /dev/ttyUSB0 or something similar available?

The path to the serial device has to be supplied during the Meridian Extension installation. With just one serial USB device connected the default /dev/ttyUSB0 normally works. If the path turns out to be different then you can perform the Update action on the Meridian Extension in the Extension Manager. The Serial Device Path is in the installation options.

I determined that Linux sees the USB-Serial adapter using setserial.

I found mentioned of /dev/ttyUSB0 here and tried it instead of just ttyUSB0 - the Extension now says it is communicating with the Meridian device.

Next step must be to tell Roon to use the extension for volume on the relevant zone, which is not in fact the Meridian device but a dCS NWB plugged into the Meridian 818v3 digital in. That’s probably @danny his area. Hi Danny!

assuming the extension is speaking to the meridian properly, you need to do this:

settings → audio → dcs → gear → device setup → volume control → pick the extension you set up earlier

you can also do external source controls there too

I recently updated the extension (but haven’t pushed builds yet) to support the DSP8000XE. I’ve not tried the 818v3, so unsure which protocol it works with.

Would be great to also have the extension for ARMv8 (64Bit) :smile:

Best DrCWO

I run my personal extensions on ARMv8 – what’s the problem running it?

@Ludwig complained further up this thread that the extension is not available in Aplication Manager on ARMv8. @Jan_Koudijs told him to go back to 32Bit what he did and there he found the extension.
I am interested that those things are available on ARMv8 as my rooExtend SD-Card-Image also offers the Application Manager and runs on 64Bit.

Best DrCWO

Am I correct in thinking the Extension saying “Status: Connected to Meridian” means that (it thinks) it is “speaking to the Meridian properly”?

I have tried all the protocols to no avail. Each change of protocol requires a restart of the Extension before it will be “Connected to Meridian”. There is very little happening in response to my prodding Roon.

So I guess it’s very much the wrong protocol?

dump me a log from your extension… i know their protocol variations quite well.

Blockquote
2023-04-12T12:59:05.066716000Z { volume: ‘45’, source: ‘CD’, port: ‘/dev/ttyUSB0’ }
2023-04-12T12:59:05.134447000Z [Meridian] writing: CD
2023-04-12T12:59:05.215631000Z → REQUEST 0 com.roonlabs.registry:1/info
2023-04-12T12:59:05.223263000Z → REQUEST 0 com.roonlabs.registry:1/info
2023-04-12T12:59:05.234394000Z ← COMPLETE 0 Success {“core_id”:“fa1b0774-c1f6-43e9-8e58-99df348b285a”,“display_name”:“ALBAN”,“display_version”:“2.0 (build 1244) production”}
2023-04-12T12:59:05.236810000Z → REQUEST 1 com.roonlabs.registry:1/register {“extension_id”:“com.roonlabs.meridian”,“display_name”:“Meridian Volume/Source Control”,“display_version”:“1.0.0”,“publisher”:“Roon Labs, LLC",“email”:"contact@roonlabs.com”,“required_services”:,“optional_services”:,“provided_services”:[“com.roonlabs.volumecontrol:1”,“com.roonlabs.sourcecontrol:1”,“com.roonlabs.settings:1”,“com.roonlabs.status:1”,“com.roonlabs.ping:1”],“website”:“https://github.com/RoonLabs/roon-extension-meridian",“token”:"3698d1aa-1e5b-480a-ac76-ff768fced560”}
2023-04-12T12:59:05.245639000Z ← CONTINUE 1 Registered {“core_id”:“fa1b0774-c1f6-43e9-8e58-99df348b285a”,“display_name”:“ALBAN”,“display_version”:“2.0 (build 1244) production”,“token”:“3698d1aa-1e5b-480a-ac76-ff768fced560”,“provided_services”:,“http_port”:9330,“extension_host”:“192.168.0.30”}
2023-04-12T12:59:05.250891000Z ← REQUEST 1 com.roonlabs.volumecontrol:1/subscribe_controls {“subscription_key”:“52”}
2023-04-12T12:59:05.253114000Z → CONTINUE 1 Subscribed {“controls”:}
2023-04-12T12:59:05.254775000Z ← REQUEST 2 com.roonlabs.sourcecontrol:1/subscribe_controls {“subscription_key”:“53”}
2023-04-12T12:59:05.255839000Z → CONTINUE 2 Subscribed {“controls”:}
2023-04-12T12:59:05.257626000Z ← REQUEST 3 com.roonlabs.status:1/subscribe_status {“subscription_key”:“54”}
2023-04-12T12:59:05.258883000Z → CONTINUE 3 Subscribed {“message”:null,“is_error”:null}
2023-04-12T12:59:05.292447000Z [Meridian] writing: VN45
2023-04-12T12:59:05.453422000Z ← COMPLETE 0 Success {“core_id”:“fd292ccd-0109-4e18-a31a-fc001c65d803”,“display_name”:“Nic-MacBookPro”,“display_version”:“2.0 (build 1244) production”}
2023-04-12T12:59:05.454609000Z → REQUEST 1 com.roonlabs.registry:1/register {“extension_id”:“com.roonlabs.meridian”,“display_name”:“Meridian Volume/Source Control”,“display_version”:“1.0.0”,“publisher”:“Roon Labs, LLC",“email”:"contact@roonlabs.com”,“required_services”:,“optional_services”:,“provided_services”:[“com.roonlabs.volumecontrol:1”,“com.roonlabs.sourcecontrol:1”,“com.roonlabs.settings:1”,“com.roonlabs.status:1”,“com.roonlabs.ping:1”],“website”:“https://github.com/RoonLabs/roon-extension-meridian",“token”:"9a3bc8c9-5225-4692-99ce-0beea4a28171”}
2023-04-12T12:59:05.465517000Z ← CONTINUE 1 Registered {“core_id”:“fd292ccd-0109-4e18-a31a-fc001c65d803”,“display_name”:“Nic-MacBookPro”,“display_version”:“2.0 (build 1244) production”,“token”:“9a3bc8c9-5225-4692-99ce-0beea4a28171”,“provided_services”:,“http_port”:9300,“extension_host”:“192.168.0.30”}
2023-04-12T12:59:05.468068000Z ← REQUEST 1 com.roonlabs.volumecontrol:1/subscribe_controls {“subscription_key”:“5”}
2023-04-12T12:59:05.468877000Z → CONTINUE 1 Subscribed {“controls”:}
2023-04-12T12:59:05.470092000Z ← REQUEST 2 com.roonlabs.sourcecontrol:1/subscribe_controls {“subscription_key”:“6”}
2023-04-12T12:59:05.470800000Z → CONTINUE 2 Subscribed {“controls”:}
2023-04-12T12:59:05.472050000Z ← REQUEST 3 com.roonlabs.status:1/subscribe_status {“subscription_key”:“7”}
2023-04-12T12:59:05.472864000Z → CONTINUE 3 Subscribed {“message”:null,“is_error”:null}
2023-04-12T12:59:08.074980000Z [Meridian Extension] Connected
2023-04-12T12:59:08.076335000Z → CONTINUE 3 Changed {“message”:“Connected to Meridian”,“is_error”:false}
2023-04-12T12:59:08.077527000Z → CONTINUE 3 Changed {“message”:“Connected to Meridian”,“is_error”:false}
2023-04-12T12:59:08.079088000Z [Meridian] writing: CD
2023-04-12T12:59:08.080703000Z → CONTINUE 1 Changed {“controls_added”:[{“display_name”:“Meridian”,“volume_type”:“number”,“volume_min”:1,“volume_max”:99,“volume_value”:“45”,“volume_step”:1,“is_muted”:false,“control_key”:“1”}]}
2023-04-12T12:59:08.081912000Z → CONTINUE 1 Changed {“controls_added”:[{“display_name”:“Meridian”,“volume_type”:“number”,“volume_min”:1,“volume_max”:99,“volume_value”:“45”,“volume_step”:1,“is_muted”:false,“control_key”:“1”}]}
2023-04-12T12:59:08.083848000Z → CONTINUE 2 Changed {“controls_added”:[{“display_name”:“Meridian”,“supports_standby”:true,“status”:“deselected”,“control_key”:“1”}]}
2023-04-12T12:59:08.085014000Z → CONTINUE 2 Changed {“controls_added”:[{“display_name”:“Meridian”,“supports_standby”:true,“status”:“deselected”,“control_key”:“1”}]}
2023-04-12T12:59:59.984738000Z ← REQUEST 31 com.roonlabs.settings:1/subscribe_settings {“subscription_key”:“56”}
2023-04-12T12:59:59.988186000Z → CONTINUE 31 Subscribed {“settings”:{“values”:{“serialport”:“/dev/ttyUSB0”,“ip”:“”,“setsource”:“CD”,“displaysource”:“Roon”,“initialvolume”:“45”,“mode”:“TN49”},“layout”:[{“type”:“dropdown”,“title”:“Protocol Mode”,“values”:[{“value”:“TN49”,“title”:“TN49”},{“value”:“TN51”,“title”:“TN51”},{“value”:“DS 6ii03”,“title”:“DS 6ii03”}],“setting”:“mode”},{“type”:“string”,“title”:“Serial Port”,“maxlength”:256,“setting”:“serialport”},{“type”:“string”,“title”:“Source displayed on device (select source and see what speakers display)”,“maxlength”:5,“setting”:“displaysource”},{“type”:“dropdown”,“title”:“Source for Convenience Switch”,“values”:[{“value”:“CD”,“title”:“CD”},{“value”:“RD”,“title”:“Radio”},{“value”:“LP”,“title”:“LP/Aux/SLS”},{“value”:“TV”,“title”:“TV”},{“value”:“T1”,“title”:“Tape/Tape1/iPod”},{“value”:“T2”,“title”:“Tape2/Sat”},{“value”:“CR”,“title”:“CDR/Disc”},{“value”:“CB”,“title”:“Cable”},{“value”:“TX”,“title”:“Text/DVD”},{“value”:“V1”,“title”:“VCR1/Mixer/PVR”},{“value”:“V2”,“title”:“VCR2/USB”},{“value”:“LD”,“title”:“LDisc/Game”}],“setting”:“setsource”},{“type”:“integer”,“title”:“Initial Volume”,“min”:1,“max”:99,“setting”:“initialvolume”}],“has_error”:false}}
2023-04-12T13:00:03.223961000Z ← REQUEST 33 com.roonlabs.settings:1/unsubscribe_settings {“subscription_key”:“56”}
2023-04-12T13:00:03.226308000Z → COMPLETE 33 Unsubscribed
2023-04-12T13:00:05.987552000Z ← REQUEST 36 com.roonlabs.volumecontrol:1/set_volume {“control_key”:“1”,“mode”:“absolute”,“value”:46}
2023-04-12T13:00:05.989918000Z → COMPLETE 36 Success
2023-04-12T13:00:06.040043000Z [Meridian] writing: VN46
2023-04-12T13:00:08.760333000Z ← REQUEST 38 com.roonlabs.volumecontrol:1/set_volume {“control_key”:“1”,“mode”:“absolute”,“value”:46}
2023-04-12T13:00:08.762721000Z → COMPLETE 38 Success
2023-04-12T13:00:08.811511000Z [Meridian] writing: VN46
2023-04-12T13:00:08.908768000Z ← REQUEST 39 com.roonlabs.volumecontrol:1/set_volume {“control_key”:“1”,“mode”:“absolute”,“value”:47}
2023-04-12T13:00:08.909421000Z → COMPLETE 39 Success
2023-04-12T13:00:08.959547000Z [Meridian] writing: VN47
2023-04-12T13:00:10.867789000Z ← REQUEST 41 com.roonlabs.volumecontrol:1/set_volume {“control_key”:“1”,“mode”:“absolute”,“value”:46}
2023-04-12T13:00:10.869901000Z → COMPLETE 41 Success
2023-04-12T13:00:10.917777000Z [Meridian] writing: VN46
2023-04-12T13:00:11.027236000Z ← REQUEST 42 com.roonlabs.volumecontrol:1/set_volume {“control_key”:“1”,“mode”:“absolute”,“value”:47}
2023-04-12T13:00:11.027872000Z → COMPLETE 42 Success
2023-04-12T13:00:11.077301000Z [Meridian] writing: VN47
2023-04-12T13:00:12.584172000Z ← REQUEST 44 com.roonlabs.volumecontrol:1/set_mute {“control_key”:“1”,“mode”:“on”}
2023-04-12T13:00:12.586580000Z [Meridian] writing: MU
2023-04-12T13:00:12.587127000Z → COMPLETE 44 Success
2023-04-12T13:00:13.674625000Z ← REQUEST 46 com.roonlabs.volumecontrol:1/set_mute {“control_key”:“1”,“mode”:“on”}
2023-04-12T13:00:13.676869000Z [Meridian] writing: MU
2023-04-12T13:00:13.677426000Z → COMPLETE 46 Success
2023-04-12T13:00:14.367825000Z ← REQUEST 47 com.roonlabs.volumecontrol:1/set_mute {“control_key”:“1”,“mode”:“on”}
2023-04-12T13:00:14.368945000Z [Meridian] writing: MU
2023-04-12T13:00:14.369503000Z → COMPLETE 47 Success
2023-04-12T13:00:17.281610000Z ← REQUEST 50 com.roonlabs.volumecontrol:1/set_volume {“control_key”:“1”,“mode”:“absolute”,“value”:44}
2023-04-12T13:00:17.284224000Z → COMPLETE 50 Success
2023-04-12T13:00:17.332840000Z [Meridian] writing: VN44
2023-04-12T13:00:17.800719000Z ← REQUEST 51 com.roonlabs.volumecontrol:1/set_volume {“control_key”:“1”,“mode”:“absolute”,“value”:43}
2023-04-12T13:00:17.801386000Z → COMPLETE 51 Success
2023-04-12T13:00:17.850918000Z [Meridian] writing: VN43

The attempts to increase the volume showed on the Roon interface but immediately snapped back to 45 where it started.

The Meridian system showed no response and sat at 40.

Trying to mute produced no change in either the Roon interface or Meridian displays

the extension is writing stuff to the 818v3, but not getting anything back.

 [Meridian] writing: VN43

should be followed up with a response…

for example, i see:

[Meridian] writing: msr CD
[Meridian] received: msr CD
[Meridian] received: CD    33

My stuff is prefixed with MSR because the DSP8000XE needs that to emulate MSR controls. There is an automation protocol that the devs there sent me, but I couldn’t get it to work, and the MSR emulation worked for me.

Do you know how to connect a terminal program to the 818’s serial/usb thing and try talking to it? On linux, I would use “screen” or “minicom” to do that.

I think I can manage that.

What do I want to say to it?

hit enter, type help and hit enter, etc…

see if you see anything back

if you can get me access to the linux box via ssh (tailscale?), im happy to poke around and make it work

So far I am set up with baud/parity/start bit, but still no luck.
The USB serial dongle reports as a pl2303 which I think is a dodgy one.

I’ll try another couple before troubling you.

the one i use (from dmesg on rpi3):

[    5.092225] usbcore: registered new interface driver usbserial_generic
[    5.092307] usbserial: USB Serial support registered for generic
[    5.102471] usbcore: registered new interface driver pl2303
[    5.102550] usbserial: USB Serial support registered for pl2303
[    5.102651] pl2303 1-1.5:1.0: pl2303 converter detected
[    5.107260] usb 1-1.5: pl2303 converter now attached to ttyUSB0

Ha, OK! Back to plan A!

If I can’t get it to work myself soon I’ll set up the ssh thing for you.