Popular pages‎ > ‎

Samsung Wireless Audio Multiroom (WAM) Research


Noticeable Updates:
2020 eMail me your contributions or improvement  to this page and I will add them // moosylog@gmail.com
2020 03 Enrico, control speaker with a remote !! here
2020 01 Tim, wireless connectivity issue - user experience
2020 01 Third Party apps updated
2020 01 Android 10 workaround. Thanks to 
Ulises - here
2020 01 Added Hardware en Innovations and cleaned firmware version part
2019 12 David, update play an url
2019 09 JD pointed me to AirAudio, an Android app
2019 07 Kamil,  I notice your mac address uses "-" and not ":".  Mine worked with ":"
2019 04 Peter, encrypted commands AES-128 - read more
2018 01 Added input from Marek about Soundbar API wrapper in Ruby 
2017 08 List of all HTTP GET commands extracted from the Android app - check this file
2017 08 Kamil, additional research on grouping of speakers and his github page
.........           
2017 04 major breakthrough, Bruno wiresharked http traffic and found every control command is done with a HTTP GET request. 
.......
2014 09 started the research page - moosy

Please email any contributions to this page to:  moosylog@gmail.com.


Introduction

Moosy started this research page in September 2014 with the objective to reverse engineer the Samsung Speakers.
Over time, several individuals have contributed to our research page. It's fantastic to experience that although Samsung does not provide us any information, together we can figured it out ;-) 

Our Reverse Engineering effort is taking apart an object and/or it's software to see how it works in order to enhance the object.
Apart from our research we love to create Cool Cryptocurrency sheets.


Hardware

Q3 2015  - Samsung introduced the Radiant (Wireless Audio 360) product line [+]  [+]  [+]
WAM R series - Radiant product line speakers
R1 - model WAM1500 black & WAM1501 white
R3 - model WAM3500 black & WAM3501 white
R5 - model WAM5500 black & WAM5501 white
R6 - model WAM6500 black & WAM6501 white
R7 - model WAM7500 black & WAM7501 white
(optional 
Tripod Floor Stand* and Ceiling Mount** - see below)


Q1 2014 - Samsung introduced Samsung Shape Multiroom product line [+]
WAM S series - Shape product line speakers
M7 - model WAM750 black & WAM751 white
M5 - model WAM550 black & WAM551 white
M3 - model WAM350 black & WAM351 white

WAM250, 
Wireless Audio Hub - a "special", dedicated wireless access point for WAM
WAM270, Link Mate Connect Box - a Non-amplified player for use with wireless speakers

The R7 or the 'Dinosaur Egg' is definitely the flagship product. 
A great sound with a innovative construction and design. 
Many people are looking for the following accessories:  

  Tripod Tripod Display Stand for the R7 360 Speaker
VG-SMN100FW/XU
Wireless audio-360 R7 Tripod stand

Very rare and hard to find. Only limited amount is produced (for promotion purpose I assume).
unboxing video 

  Extremely rare: (if they even exist)
The R7 Ceiling mount has never been produced for the mainstream market. Great design from Samsung but you can not order these and lot of people are disappointed about this.  I think these pictures are probably made with (empty shells) prototypes because the R7 is quite heavy (3.4 KG) so one needs a steel cable with an integrated power cord.  I don't think these exist either (definitely not as thin as shown on the image).  If technical possible I would question if these would pass CE certification.
If you are creative, this or this could be a potential solution. Please let us know your solution for a ceiling mount.

 

Extremely rare: (if they even exist)
Brown and chrome (silver) never produced for mainstream market. There are also small/short tripod stands on the left that are not available as far as we know. 
click to enlarge image


 






Deciphering Samsung product codes - e.g. M5 WA-M551/ZA
The ZA extension to the product model reflects your region. 
XE - Sweden, Norway, Denmark 
XU - United Kingdom
ZA - United States 
ZF - Latin
KR - China and or Korea
ZF - Italy, France
XN - Netherlands
XY - Australia
XM - Malaysia
more ....

Innovations and/or updates

my 2 cents:
We have not seen any major innovations or partnerships on the WAM/Multiroom speakers since the release back in 2014/2015.
Back in November 2017, Samsung acquired HARMAN. 
HARMAN’s leading brands and cutting-edge audio systems include JBL®, Harman Kardon®, Mark Levinson®, AKG®, Lexicon®, Infinity®, and Revel®.  The company also licenses Bowers & Wilkins® and Bang & Olufsen® brands for automotive.  All of these brands will greatly enhance the competitiveness of Samsung’s mobile, display, virtual reality and wearable products to deliver a fully differentiated audio and visual experience for customers.

If you point your browser to the Samsung main website (Seoul, South Korea), and translate the page you will not find any Samsung Multiroom devices anymore.
Quite logic when you have all these other 'lifestyle / consumer audio' products and brands, one needs to make decisions and their market share with the Samsung Multiroom is/was limited.

Harman Kardon Home Lifestyle Audio (wireless) - https://www.harmankardon.com/homeaudio-wireless

Repairs / Insides

Jim:  There seem to be common issue when the boot loader fails and a reinstall of the firmware directly to the ARM processor is required. 
The WAM's are cleverly designed and put together like a puzzle and the WAM R series are even more difficult to disassemble than the WAM S series. I just recently opened one of each and they look like ARM processors so probably an Serial Peripheral Interface (SPI) programmer. I can see no contact points on the Printed Circuit Board (PCB) that is visible at the moment but will remove it soon to see if there are any on the bottom of the Printed Circuit Board (PCB).

see 
http://your_speaker_ip_address:8001 for hardware specs of your device.

example http://192.168.1.12:8001. 
You can use a simple tool on your mobile like fing network scanner to find your ip address. Fing is available for both Android and IOS.

Experience: 
Moosy: Sept 2019 - Two of my WAM751 / M7 speakers are defect. Both just broke down and down power up (no led or anything) 
short-circuiting I assume.
I opened one to see the inside:
You see the dark/black area on the second pic. Part number on the board: 
CN07AH4400307ASK28F464564

Moosy : June 2019 - Opened my M5 WAM551/XN to see if I could connect an external WiFi antenna.
The WIDT30Q does not have standard capabilities to connect an connector.
Here is a list of other components that I recognized: 
Board - AH41-01728A  AH9403355
Samsung WiFi Module - WIDT30Q - manual
Samsung Bluetooth Module - WIBT30D - manual  
Samsung Audio IC-AUDIO AMP UB6510 
RAM - K4B1G1646G-BCK0RAM Chip DDR3 SDRAM 1G-Bit 64Mx16 1.5V 96-Pin FBGA
RAM - K4B2G1646Q-BCK0T00
RAM Chip DDR3 SDRAM 2G-Bit 128Mx16 1.5V F-BGA


Client Software

The Samsung Multiroom app makes it easy to control the speakers in any room of your house. Multiroom connects to your home Wi-Fi network, linking your compatible speakers together and giving you complete control over each. Play the same song throughout your home, play a different song in each room or use your speakers to create a stereo system, the Multiroom app unlocks a world of possibilities.
In general, users are not overly excited about the Samsung Multiroom App and many people are looking for alternative software solutions.

Samsung Multiroom App 

Download Multiroom for Windows OS

Download Multiroom for Mac OS

Download Multiroom for Android devices

Download Multiroom for iOS devices



Android 10 issues:

Reported as solved end of feb 2020

Feb 29, 2020 by Tim : I updated the Samsung MultiRoom Android app to the new version 4143 and so far it works fine on a rooted Tab A tablet while using it with AirAudio at the same time. It grouped nine WAM750s quickly with no drop outs.
Tim

Feb 28, 2020 1 by Michiel: version 4143 is released and should address the Android 10 crash issue 

Jan 2020 by Ulises: I was playing around with the Samsung Multiroom app on Android 10 (which has not been updated yet) and I might have found a (probably risky) workaround. By going into advanced permissions, and allowing the app to modify system settings, I have been able to make the app work again. My guess is that the changes to storage access (scoped storage) in Android 10 broke the library browser. This needs validation, though, as I have only one Android 10 device. I hope this helps while (if ever) we get a proper update from Samsung.

Scoped Storage. In a nutshell, Scoped Storage prevents apps from having unrestricted access to the filesystem on the device.

Pixel 2XL - Jan 2020 Michiel reported that this did not work on his Pixel 2XL

Jan 2020 by Philip:
I found a different version for Android 10 which seems to work quite well with not too much fiddling around. Admittedly, I am using a OnePlus 6T which uses a slightly different version of Android called OxygenOS 10.3.0 so would like to hear what people think. I had to install via Aptoid as not currently in Play Store. It is called Samsung Multiroom 3.2.19  - link



Samsung community

Could possibly also be caused by webview.


Third party integrations

There are several third party tools that can be used in combination with the Samsung speakers.
Apps like Spotify can send a stream to an external network speaker. For proprietary features to control or group individual speakers you are 
stuck with the Samsung Multiroom app. To our knowledge there is no user friendly mobile app available that can replace this functionality.
  1. Spotify Premium has native support for 'external' speakers (no individual control over speakers) [+]
    Think they use Apple Bonjour service or Spotify Connect as protocol.
  2. SmartThings - home automation [+]
  3. TV Apps - see below
  4. AirAudio - see below
More: Do you know any Android, IOS or Windows apps that support the speakers? Please email me so I can add them to this list.

TV Apps
The Samsung TV and Speakers use similar REST based commands for control over the network.
You can use many tools that are available for Samsung TV's to (limited) control the speakers. You are limited to Mute, Vol+ and Vol-
Here is a list of Android Apps and Windows Apps
Some of these apps require you to enter an IP address of the device you want to control. Default your speakers are configured for DCHP (dynamic IP addresses).
Most modern routers have a capability to assign a static IP address to an MAC address. I use Fing on Android to monitor my devices and see my IP and MAC addresses.
Samsung TV remote can Mute Vol+ and Vol- on the speaker(s). There are more of these TV remove apps.with network features.

AirAudio (Android)
Thanks JD for sharing this. According to JD it works great
ROOT NOT REQUIRED - Moosy: I just tried this and you can Vol+ Vol- all speakers without root (cool)
Airaudio experience | by Tim:
Dumped the Bluetooth after I found AirAudio on your page. I can't thank you enough for posting it. So happy! The AirAudio app integrates with the native Samsung multiroom app via SmartView. By itself, AirAudio seems a little out of sync if you have a lot of speakers. I have 9 WAM 750s. The best thing is to open the native Samsung multiroom app FIRST, group the speakers so they sync natively in the Samsung app, THEN open AirAudio and that group you just named will show up as a speaker in the AirAudio app. The native Samsung app will display "SmartView" in the volume area after you open AirAudio. Turn on your group on in the AirAudio app and it will stream anything from your Android device perfectly synced.  From AirAudio support: "AirAudio has no control over the audio-app (Spotify, Deezer etc.), furthermore it does not even know which app is producing the audio. AirAudio gets the audio mixed by the Android-system and not directly from Spotify/Deezer."



Firmware

Firmware is the software that is embedded in the speakers. You can think of firmware simply as software specific for the hardware.
The speaker firmware is based on an ARM Linux kernel.

Versions

The speakers can be configured to update their firmware automatically or you can grab a firmware file from the Samsung website and update the speakers via the USB port on the device.

To update the firmware from USB, download the firmware file, unpack to usb and power off, on the speaker

Speaker firmware (Shape) ver 3117.1 - date: 2018-05-12

Ver 3117.1  
May 12,2018 
Ver 3116.0  Sept 29,2017
Ver 3112.5  ? 
Ver 3110.5  Oct 26,2016  
Ver 3110.5  Nov 14, 2016
Ver 3027.3  Mar 09, 2016
Ver 2014.5  Dec 88, 2014
Ver 2013.0  Oct 24, 2014
Ver 2012.5  Oct 22, 2014
Ver 2010.8  Sep 11, 2014
Ver 2009.3  Jul 31, 2014
Ver 2006.6  Jun 24, 2014
Ver 2003.6  May 22, 2014
Ver 2002.4  May 15, 2014

Filename : upgrade.msd

87R extension refers to my Shape speakers (M3, M5, M7)
134R extension refers to my R7
181R and 196R seem tobe a Soundbar


Note from David about Speakers vs Soundbar

There are two software versions for the Speakers and Soundbars.  They are different:

Speakers and non-SoundPlus Soundbars:  Current version 3117.1 / 181R
Does not have the UPnP DMR capability (which includes AVTransport).
Uses “SetUrlPlayback” for URL play.
 
SoundPlus (Sound+) Soundbars (i.e., HS-MS650):  Current version 1146.4 / 196R
Supports the UPnP DMR capability (which includes AVTransport).
Does not have the SetUrlPlayback command.



Open source stack

Samsung claims that the speaker internal software (firmware) is opensource. As far as I can see, it's based on an opensource technology stack but the latest firmware files are not available as source files.

The speakers are based on an ARM Linux opensource stack and some code is available on the url below:

Speaker are running jQuery and Bootstrap, see:
http://speaker ip address:8001/resources/js/jquery.min.js
http://speaker ip address:8001/resources/js/bootstrap.min.js

If you are looking for the sourcecode to do some hacking. it's available at the Samsung Opensource Release Center (OSRC).

Below image gives an impression of the WAM750 package.  (click image to enlarge)

more


Analysing the firmware file

"binwalk" is one of the primary tools used for analyzing, reverse engineering and extracting data from the firmware image.

You should be looking for binwalk to identify the type of file system in use, ex. squashfs filesystem.
Another tool is "
firmware mod kit"



# B-FXBAUDWWC 3110.5 - dec 2016

binwalk upgrade.msd

DECIMAL HEXADECIMAL DESCRIPTION
--------------------------------------------------------------------------------
126 0x7E OpenSSL encryption, salted, salt: 0x-22A2DDEB-17C80830
1302 0x516 OpenSSL encryption, salted, salt: 0x-731F2265-90BF71E
86301049 0x524D979 Cisco IOS microcode, for ""
121872318 0x7439FBE MySQL ISAM index file Version 9
136380561 0x8210091 MySQL MISAM index file Version 10
166495806 0x9EC863E OpenSSL encryption, salted, salt: 0x33F3C973028E76A
166496702 0x9EC89BE OpenSSL encryption, salted, salt: 0x-5BBC3D12-1DF4C570
172261094 0xA447EE6 OpenSSL encryption, salted, salt: 0x33F3C973028E76A
172261990 0xA448266 OpenSSL encryption, salted, salt: 0xA5502C5-121F3BFB
176021758 0xA7DE0FE OpenSSL encryption, salted, salt: 0x-12F48E6B5AF91D74
176391830 0xA838696 OpenSSL encryption, salted, salt: 0x-3ABE67CE-6BF68D06




Decrypting the Firmware file

Looks lke there are possibilities, see below:

NOTE:
development team from Samygo.tv has created a tool for decrypting/encrypting most of the
Samsung TV firmwares4 . Additionally, for every file in this firmware update package (USB
update) there is also another file that contains a cmac signature (fugure 2). This signature
guaranties the integrity and authenticity of the firmware. Hence, the TV’s USB update procedure
requires a firmware that is cryptographically signed by Samsung

See:




Interfaces: Ports, Services & API

Introduction

Since the start of our research in 2014, we have tried to get in contact with the Samsung Development Team.
Samsung has not been very corporatieve to support our research: 

Over time, Samsung has released some information for developers, using their Smart View (Samsung Cast) API. 
A specific API for Multiroom speakers is not provided.

Official response from Samsung Developer Support:

Samsung provides a Smart View (Samsung Cast) API.

A specific API for Multiroom speakers is not provided.

Refer to below URL :

http://developer.samsung.com/tv/develop/extension-libraries/smart-view-sdk/introduction

Wireless Speaker support
http://developer.samsung.com/tv/develop/extension-libraries/smart-view-sdk/supported-device/wireless-speaker

The Smart View SDK has JavaScript Sender App that should support the speakers.
http://developer.samsung.com/tv/develop/extension-libraries/smart-view-sdk/sender-apps/javascript-sender-app/




Ports & Services
Below is an overview of the ports and services available:

#514  tcp         filtered shell
#7676  tcp  open  upnp Allshare UPnP  -  Samsung Bada 1.2 ???
#8001  tcp      open   http Node.js Express framework
|_http-cors: GET POST PUT DELETE
|  http-methods:
|_  Supported Methods: GET HEAD POST OPTIONS
|_http-title: Debug Config
#55000         DLNA and port is used for remote control over network.
#55001      http  The speaker is controlled by HTTP GET request at http://ip_speaker:55001
see http get section for more details
#8080  tcp  open   http Lighthttpd  Light Http Daemon
| http-methods:
|_  Supported Methods: OPTIONS GET HEAD POST
|_http-title: 404 - Not Found

Soundbar specific 
Input from Dave:
Soundbar - Digital Media Renderer
LOCATION: http://speaker IP address:9197/dmr
SERVER: SHP, UPnP/1.0, Samsung UPnP SDK/1.0
ST: uuid:ed0a5a85-eef0-4a3f-95bf-634c4ec55be6
USN: uuid:ed0a5a85-eef0-4a3f-95bf-634c4ec55be6
ST: upnp:rootdevice
ST: urn:schemas-upnp-org:device:MediaRenderer:1
ST: urn:schemas-upnp-org:service:RenderingControl:1
ST: urn:schemas-upnp-org:service:ConnectionManager:1
ST: urn:schemas-upnp-org:service:AVTransport:1
ST: urn:schemas-rvualliance-org:service:StreamSplicing:1

Soundbar - Receiver
LOCATION: http://speaker IP address:7676/rcr/
SERVER: SHP, UPnP/1.0, Samsung UPnP SDK/1.0
ST: uuid:478d76bd-5f22-4908-b91d-c18b77fb60a1
USN: uuid:478d76bd-5f22-4908-b91d-c18b77fb60a1
ST: upnp:rootdevice
ST: urn:samsung.com:device:RemoteControlReceiver:1
ST: urn:samsung.com:service:MultiScreenService:1




Bonjour Service and Spotify Connect

Bonjour is Apple's implementation of zero-configuration networking (zeroconf), a group of technologies that includes service discovery, address assignment, and hostname resolution. Bonjour locates devices such as printers, other computers, and the services that those devices offer on a local network using multicast Domain Name System (mDNS) service records.

Spotify Connect is a wireless streaming technology offered by Spotify to their Premium subscribers. On the surface, it resembles AirPlay in almost every way, but the underlying technology is very different. As opposed to AirPlay (which transfers the music from the phone to the router and on to the speaker), Spotify Connect works as a direct link between the speaker and Spotify's servers.

The speakers run a "Bonjour Service" called Spotify-Connect.  This is how the native Spotify mobile app is supported.
This services is useful to dynamically identity your speakers on the network.

Bonjour Browser output gives for every speaker two entries. Below is the output for my kitchen speaker:
 Type       Name  TXT record
 _samsungmsf._tcp.  VKJUTITH1YVXH  Key: se         Value: http://192.168.1.20:8001/api/v2/ 
 Key: ve         Value: 2.0.25
 Key: ic         Value: /resources/img/icon.png
 Key: id         Value: VKJUTITH1YVXH
 Key: fn                 Value: [AV] Kitchen
 Key: md         Value: Samsung Speaker
 Key: remote                 Value: 0

 _spotify-connect._tcp.  Kitchen  Key: VERSION                  Value: 1.0
 Key: CPath                    Value: /goform/spotifyConnect

 IP Address 192.168.1.20:19999






HTTP Web Service 
The speakers have a http web service running on port 8001.
Default http output from the service:
  http://speaker IP address:8001  MultiRoom Service page 
 http://speaker IP address:8001/resources/js/jquery.min.js   jQuery
 http://speaker IP address:8001/resources/js/bootstrap.min.js     Bootstrap
 http://speaker IP address:8001/api/v2   JavaScript Object Notation (JSON) Metadata

MultiRoom Service page. (MultiScreen Service)

Image: screenshot service screen M7 speaker, running B-FXBAUDWWC 3110.5 on dec 2016 (strange that the firmware version displays another number)
Looks like the development team took some code from another project, maybe the smarttv (multiscreen? screen resolution? remote version?)


Sample JSON (JavaScript Object Notation)  Metadata output
{
  "id": "VKJUTITH1YVXH",
  "name": "Kitchen",
  "version": "2.0.25",
  "device": {
    "type": "Samsung Speaker",
    "duid": "VKJUTITH1YVXH",
    "model": "Linux arm",
    "modelName": "Linux arm",
    "description": "Linux arm on ARMv7 Processor rev 0 (v7l)",
    "networkType": "wireless",
    "ssid": "",
    "ip": "192.168.1.20",
    "firmwareVersion": "3.8.13",
    "name": "Kitchen",
    "id": "VKJUTITH1YVXH",
    "udn": "54ff3cd0-2084-11b2-9f2d-3f3bc2cc50bc",
    "resolution": "1920x1080",
    "countryCode": "US",
    "msfVersion": "2.0.25",
    "smartHubAgreement": "false"
  },
  "type": "Samsung Speaker",
  "uri": "http://192.168.1.20:8001/api/v2/",
  "remote": "0",
  "isSupport": "{\"remote_available\":\"false\",\"remote_fourDirections\":\"false\",\"remote_touchPad\":\"false\",\"remote_voiceControl\":\"false\",\"DMP_available\":\"true\",\"DMP_DRM_PLAYREADY\":\"false\",\"DMP_DRM_WIDEVINE\":\"false\"}"
}


Application Programming Interface (API)

The Samsung speakers have an Application Programming Interface (API) available that is based on standard HTTP GET commands.
It is a REST like interface without getting any response back from the speakers after sending a command.

Representational State Transfer (REST) is a style of architecture based on a set of principles that describe how networked resources are defined and addressed.
RESTful APIs enable you to develop any kind of web application having all possible CRUD (create, retrieve, update, delete) operations. REST guidelines suggest using a specific HTTP method on a specific type of call made to the server (though technically it is possible to violate this guideline, yet it is highly discouraged).

GET APIs should be idempotent, which means that making multiple identical requests must produce the same result every time until another API (GET) has changed the state of the resource on the server. 

On April, 2017,  Bruno started to sniff the http traffic with Wireshark and found the speakers are controlled with simple HTTP GET commands. This was a major breakthrough.

My 2017 conversation with Bruno
"I installed the Samsung Multiroom app on  windows7 and wireshark to monitor some requests done by the app. Following your thought I started searching for SOAP traffic, butt hem I noticed the the were only http GETs requests  and with xml response. hum... and the url path was odd. 
I "accidentally" found how the speaker is being controlled.  Every control command is done with a HTTP GET request. This is for getting and setting data. Apparently without any security check. "


The speaker is controlled by HTTP GET request to get and set configurations
http://ip_speaker:55001

Example: 
Here is an example of a command that you can pop-in to your browser to control the speakers:

Play:
http://ip_speaker:55001/CPM?cmd=%3Cname%3ESetPlaybackControl%3C/name%3E%3Cp%20type=%22str%22%20name=%22playbackcontrol%22%20val=%22play%22/%3E


Pause:
http://ip_speaker:55001/CPM?cmd=%3Cname%3ESetPlaybackControl%3C/name%3E%3Cp%20type=%22str%22%20name=%22playbackcontrol%22%20val=%22play%22/%3E


Commands

Bruno created a page on github where he documented the commands he found:

More Commands
In May 2017 ezi0n decompiled the Android Multiroom app with apktool to get a command reference
The communication folder can be downloaded here.

I created an TXT file with all the commands extracted from the Android App, available here
It required additional research to figure out what we can do with all commands. (screenshot blow)




Example below: commands to change the input on the speaker:

/UIC?cmd=%3Cname%3ESetFunc%3C/name%3E%3Cp%20type=%22str%22%20name=%22function%22%20val=%22bt%22/%3E              # Bluetooth
/UIC?cmd=%3Cname%3ESetFunc%3C/name%3E%3Cp%20type=%22str%22%20name=%22function%22%20val=%22soundshare%22/%3E      # TVsoundconnect
/UIC?cmd=%3Cname%3ESetFunc%3C/name%3E%3Cp%20type=%22str%22%20name=%22function%22%20val=%22aux%22/%3E             # AUX
/UIC?cmd=%3Cname%3ESetFunc%3C/name%3E%3Cp%20type=%22str%22%20name=%22function%22%20val=%22wifi%22/%3E            # WiFi



Playing an url

Input from David - april 30, 2018

On April 2018, David shared how he could play a URL on the speakers.

Playing a URL on the Speakers and Older (non SoundPlus) Soundbars.  I finally found the grail here.  This is used in playTrackAndResume, playTrackAndRestore, and playTrack in the SmartThings.  It is a NEW command to the lexicon.

/UIC?cmd=<pwron>on</pwron><name>SetUrlPlayback</name>
<p type="cdata" name="url" val="empty"><![CDATA[${urlTrack}]]>
</p><p type="dec" name="buffersize" val="0"/>
<p type="dec" name="seektime" val="0"/>
<p type="dec" name="resume" val="${resume}"/>

example 1 from David


example 2 from David:

Variables:  ${urlTrack} is a text string, no quotes.  Example:  http://s3.amazonaws.com/smartapp-media/sonos/dogs.mp3

            ${resume} is 0 or 1 (with quotes).  0 is do not resume.  1 is resume playing.

 
Playing a URL on the SoundPlus (newer) Soundbars:  Use the port 9797 DMR / AVTransport UPnP commands.



Grouping speakers

On Aug 2017, Kamil did some additional research on how the grouping of the speakers work and published his java code on github.

After figuring out what the Grouping calls looked like I wanted to create a service that let me control them programmatically.  I created a Java Springboot service that took group and ungroup calls and sent the right commands to the speakers.  I also found out that the speakers are Spotify Connect capable.  This means they use a multi-cast DNS technology (interoperable with Apple's Bonjour) for discovery.  I found the mDNS type which is _spotify-connect._tcp.local. The speakers then respond with their IP.  I then call the speaker for more info with the given IP to get the Mac address.  That is all the info that is needed to send group and ungroup calls to the speakers.  The following link is to the GitHub repo of the service I created.  The service will auto discover the speakers and provide an endpoint to issue group and ungroup calls to it.



I have also created an Alexa skill and Amazon Lambda function that takes the call from Alexa and calls my server at home but it has hardcoded urls right now and I don't want anyone messing with my home services.  I will clean that up and put it on GitHub as well.

2019 07 Kamil,  I notice your mac address uses "-" and not ":".  Mine worked with ":"

Encrypted commands

April 2019 : Peter H. reported that latest client seem to send encrypted strings over the wire. Thanks Peter for reporting this !

I found that all the outgoing web commands from the App are now aes128(?) encrypted strings, not plain text any longer. The replies still seem to be plain text.

### sample ###########

GET KiMX5exB9g4uIowPOOWboiuKocwp9dQvy2UzG0JwqoMkFlOoGQib7p4/lU8UG9CB53e5BkfTn7uBh8g/a2lf+kXciBuRymz7wEOGZOGLW/xjxAGY9nVR33++keC0TbNF6SfMqyru6ilxRbPypP1NPRY0ra6d/WRD5c2IOKWfxw5wPuGB3Epl3XFNu4bL1dJ7VVwk6UvjBhMhfhlVFA0ttW079UWsypFrN

/xIyJ3XfP4ZU5UTMBMV8OB01F1wPw2/ZBgJ7YyRgYsELy0hjVjvlw/nH9gfQAeafD29+XYPlJrp8ErSLFnTWbG82J+uyEIb HTTP/1.1

Connection:interactive
Accept-Encoding:aes128
mobileUUID:ec18b42a-2a30-4b53-9204-ef8f33744de8
mobileName:SM-G900I
mobileVersion:6.0.1

  

19:37:37.224516 IP (tos 0x0, ttl 64, id 4734, offset 0, flags [DF], proto TCP (6), length 598)

    samsungWAM750.bfree.wafreenet.55001 > 10.60.2.65.37108: Flags [P.], cksum 0x9442 (correct), seq 7434:7980, ack 2852, win 660, options [nop,nop,TS val 1690997 ecr 70045797], length 546

E..V.~@.@..O
<..
<.A....}....H.^.....B.....
...u.,.e
HTTP/1.1 200 OK
Date: Thu, 01 Jan 1970 01:52:43 GMT
Server: Samsung/1.0
Content-Type: text/html
Encoding: aes128
Content-Length: 340
Connection: close

################################################

The WAM750 still accepts the manual curl http://x.x.x.x:55001/CPM?cmd=<name>GetCpPlayerPlayList</name> type requests, but it does mean we cant use tcpdump to capture new features as they add them.


jul 2019 by Kamil
I just tried the command:

http://192.168.10.137:55001/UIC?cmd=<pwron>on</pwron><name>SetMultispkGroup</name><p type="cdata" name="name" val="empty"><![CDATA[Kitchen + Livingroom]]></p><p type="dec" name="index" val="1"/><p type="str" name="type" val="main"/><p type="dec" name="spknum" val="2"/><p type="str" name="audiosourcemacaddr" val="f8:77:b8:c4:8f:a1"/><p type="cdata" name="audiosourcename" val="empty"><![CDATA[Kitchen]]></p><p type="str" name="audiosourcetype" val="speaker"/><p type="str" name="subspkip" val="192.168.10.178"/><p type="str" name="subspkmacaddr" val="f8:77:b8:c4:8f:ca"/>

On my speakers using Postman and it worked (unencrypted).  It looks like you only have to send a single command to the master speaker and it groups (I saw the grouping happen in the Samsung app).  I can then send the ungroup command to that master and it releases them. 

I notice your mac address uses "-" and not ":".  Mine worked with ":"
It definitely hates the "-".  Just tried it and I got the spinning and the only way to get rid of it is to change the input on the speaker.  I think the issue with your command is the "-"



Implementations

Speakers - BAT File by Moosy

I used a simple bat file to play with some of the http get functions. It requires wget for Windows that can be downloaded here - > http://www.confusedbycode.com/curl/#downloads
The bat file arp's the network to find my speakers, since they have dynamic IP addresses. My speakers all start with mac address "50"
You want to change the red sections to your specifics, enjoy ..

@echo off

rem # SPEAKERS.BAT version 0.1 
rem # by Moosy
rem # based on 'https://github.com/bacl/WAM_API_DOC' and Samsung Multiroom Console Client - fhatz
rem # curl download http://www.confusedbycode.com/curl/#downloads

set CURL=C:\Users\Moosy\AppData\Local\Apps\cURL\bin\curl.exe
set PORT=55001

rem # all my speakers start with mac address 50-
set MAC=50-


rem # change to your speakers, you can find mac addresses of your speakers in Samsung Multiroom app (settings, deviceID) or with arp -a

if "%2" == "main" ( 
set MAC=50-84-69-fa-87-2d
)

if "%2" == "study" ( 
set MAC=50-51-bf-d8-f1-16
)

if "%2" == "living" ( 
set MAC=50-52-be-81-dd-1a
)

if "%2" == "kitchen" ( 
set MAC=50-56-bf-83-19-e8
)

if "%2" == "garage" ( 
set MAC=50-52-bf-22-98-02
)


if %1.==. goto help

if "%1" == "stop" ( 
set CMND=CPM?cmd=%%3Cname%%3ESetPlaybackControl%%3C/name%%3E%%3Cp%%20type=%%22str%%22%%20name=%%22playbackcontrol%%22%%20val=%%22stop%%22/%%3E
)
if "%1" == "pause" ( 
set CMND=CPM?cmd=%%3Cname%%3ESetPlaybackControl%%3C/name%%3E%%3Cp%%20type=%%22str%%22%%20name=%%22playbackcontrol%%22%%20val=%%22pause%%22/%%3E
)
if "%1" == "play" ( 
set CMND=CPM?cmd=%%3Cname%%3ESetPlaybackControl%%3C/name%%3E%%3Cp%%20type=%%22str%%22%%20name=%%22playbackcontrol%%22%%20val=%%22play%%22/%%3E
)
if "%1" == "mute" ( 
set CMND=UIC?cmd=%%3Cpwron%%3Eon%%3C/pwron%%3E%%3Cname%%3ESetMute%%3C/name%%3E%%3Cp%%20type=%%22str%%22%%20name=%%22mute%%22%%20val=%%22on%%22/%%3E
)
if "%1" == "unmute" ( 
set CMND=UIC?cmd=%%3Cpwron%%3Eon%%3C/pwron%%3E%%3Cname%%3ESetMute%%3C/name%%3E%%3Cp%%20type=%%22str%%22%%20name=%%22mute%%22%%20val=%%22off%%22/%%3E
)
if "%1" == "next" ( 
set CMND=UIC?cmd=%%3Cpwron%%3Eon%%3C/pwron%%3E%%3Cname%%3ESetTrickMode%%3C/name%%3E%%3Cp%%20type=%%22str%%22%%20name=%%22trickmode%%22%%20val=%%22next%%22/%%3E
)
if "%1" == "previous" ( 
set CMND=UIC?cmd=%%3Cpwron%%3Eon%%3C/pwron%%3E%%3Cname%%3ESetTrickMode%%3C/name%%3E%%3Cp%%20type=%%22str%%22%%20name=%%22trickmode%%22%%20val=%%22previous%%22/%%3E
)


if "%1" == "radio1" ( 
set CMND=CPM?cmd=%%3Cname%%3ESetPlayPreset%%3C/name%%3E%%3Cp%%20type=%%22dec%%22%%20name=%%22presetindex%%22%%20val=%%220%%22/%%3E%%3Cp%%20type=%%22dec%%22%%20name=%%22presettype%%22%%20val=%%221%%22/%%3E
)
if "%1" == "radio2" ( 
set CMND=CPM?cmd=%%3Cname%%3ESetPlayPreset%%3C/name%%3E%%3Cp%%20type=%%22dec%%22%%20name=%%22presetindex%%22%%20val=%%221%%22/%%3E%%3Cp%%20type=%%22dec%%22%%20name=%%22presettype%%22%%20val=%%221%%22/%%3E
)
if "%1" == "radio3" ( 
set CMND=CPM?cmd=%%3Cname%%3ESetPlayPreset%%3C/name%%3E%%3Cp%%20type=%%22dec%%22%%20name=%%22presetindex%%22%%20val=%%222%%22/%%3E%%3Cp%%20type=%%22dec%%22%%20name=%%22presettype%%22%%20val=%%221%%22/%%3E
)
if "%1" == "radio4" ( 
set CMND=CPM?cmd=%%3Cname%%3ESetPlayPreset%%3C/name%%3E%%3Cp%%20type=%%22dec%%22%%20name=%%22presetindex%%22%%20val=%%223%%22/%%3E%%3Cp%%20type=%%22dec%%22%%20name=%%22presettype%%22%%20val=%%220%%22/%%3E 
)
if "%1" == "radio5" ( 
set CMND=CPM?cmd=%%3Cname%%3ESetPlayPreset%%3C/name%%3E%%3Cp%%20type=%%22dec%%22%%20name=%%22presetindex%%22%%20val=%%224%%22/%%3E%%3Cp%%20type=%%22dec%%22%%20name=%%22presettype%%22%%20val=%%220%%22/%%3E 
)
if "%1" == "radio6" ( 
set CMND=CPM?cmd=%%3Cname%%3ESetPlayPreset%%3C/name%%3E%%3Cp%%20type=%%22dec%%22%%20name=%%22presetindex%%22%%20val=%%225%%22/%%3E%%3Cp%%20type=%%22dec%%22%%20name=%%22presettype%%22%%20val=%%220%%22/%%3E 
)
if "%1" == "radio7" ( 
set CMND=CPM?cmd=%%3Cname%%3ESetPlayPreset%%3C/name%%3E%%3Cp%%20type=%%22dec%%22%%20name=%%22presetindex%%22%%20val=%%226%%22/%%3E%%3Cp%%20type=%%22dec%%22%%20name=%%22presettype%%22%%20val=%%220%%22/%%3E 
)
if "%1" == "radio8" ( 
set CMND=CPM?cmd=%%3Cname%%3ESetPlayPreset%%3C/name%%3E%%3Cp%%20type=%%22dec%%22%%20name=%%22presetindex%%22%%20val=%%227%%22/%%3E%%3Cp%%20type=%%22dec%%22%%20name=%%22presettype%%22%%20val=%%220%%22/%%3E 
)



if "%1" == "bluetooth" ( 
set CMND=UIC?cmd=%%3Cname%%3ESetFunc%%3C/name%%3E%%3Cp%%20type=%%22str%%22%%20name=%%22function%%22%%20val=%%22bt%%22/%%3E  
)
if "%1" == "tvsoundconnect" ( 
set CMND=UIC?cmd=%%3Cname%%3ESetFunc%%3C/name%%3E%%3Cp%%20type=%%22str%%22%%20name=%%22function%%22%%20val=%%22soundshare%%22/%%3E  
)
if "%1" == "aux" ( 
set CMND=UIC?cmd=%%3Cname%%3ESetFunc%%3C/name%%3E%%3Cp%%20type=%%22str%%22%%20name=%%22function%%22%%20val=%%22aux%%22/%%3E
)
if "%1" == "wifi" ( 
set CMND=UIC?cmd=%%3Cname%%3ESetFunc%%3C/name%%3E%%3Cp%%20type=%%22str%%22%%20name=%%22function%%22%%20val=%%22wifi%%22/%%3E
)





if "%1" == "vol0" ( 
set CMND=UIC?cmd=%%3Cname%%3ESetVolume%%3C/name%%3E%%3Cp%%20type=%%22dec%%22%%20name=%%22volume%%22%%20val=%%220%%22/%%3E
)

if "%1" == "vol1" ( 
set CMND=UIC?cmd=%%3Cname%%3ESetVolume%%3C/name%%3E%%3Cp%%20type=%%22dec%%22%%20name=%%22volume%%22%%20val=%%221%%22/%%3E
)
if "%1" == "vol2" ( 
set CMND=UIC?cmd=%%3Cname%%3ESetVolume%%3C/name%%3E%%3Cp%%20type=%%22dec%%22%%20name=%%22volume%%22%%20val=%%222%%22/%%3E
)
if "%1" == "vol3" ( 
set CMND=UIC?cmd=%%3Cname%%3ESetVolume%%3C/name%%3E%%3Cp%%20type=%%22dec%%22%%20name=%%22volume%%22%%20val=%%223%%22/%%3E
)
if "%1" == "vol4" ( 
set CMND=UIC?cmd=%%3Cname%%3ESetVolume%%3C/name%%3E%%3Cp%%20type=%%22dec%%22%%20name=%%22volume%%22%%20val=%%224%%22/%%3E
)
if "%1" == "vol5" ( 
set CMND=UIC?cmd=%%3Cname%%3ESetVolume%%3C/name%%3E%%3Cp%%20type=%%22dec%%22%%20name=%%22volume%%22%%20val=%%225%%22/%%3E
)
if "%1" == "vol6" ( 
set CMND=UIC?cmd=%%3Cname%%3ESetVolume%%3C/name%%3E%%3Cp%%20type=%%22dec%%22%%20name=%%22volume%%22%%20val=%%226%%22/%%3E
)
if "%1" == "vol7" ( 
set CMND=UIC?cmd=%%3Cname%%3ESetVolume%%3C/name%%3E%%3Cp%%20type=%%22dec%%22%%20name=%%22volume%%22%%20val=%%227%%22/%%3E
)
if "%1" == "vol8" ( 
set CMND=UIC?cmd=%%3Cname%%3ESetVolume%%3C/name%%3E%%3Cp%%20type=%%22dec%%22%%20name=%%22volume%%22%%20val=%%228%%22/%%3E
)
if "%1" == "vol9" ( 
set CMND=UIC?cmd=%%3Cname%%3ESetVolume%%3C/name%%3E%%3Cp%%20type=%%22dec%%22%%20name=%%22volume%%22%%20val=%%229%%22/%%3E
)






if "%1" == "GetVolume" ( 
set CMND=UIC?cmd=%%3Cname%%3EGetVolume%%3C/name%%3E
)
if "%1" == "GetSpkName" ( 
set CMND=UIC?cmd=%%3Cname%%3EGetSpkName%%3C/name%%3E
)

if "%1" == "GetAlarmInfo" ( 
set CMND=UIC?cmd=%3Cname%3EGetAlarmInfo%3C/name%3E
)
if "%1" == "GetRadioInfo" ( 
set CMND=CPM?cmd=%%3Cname%%3EGetRadioInfo%%3C/name%%3E
)
if "%1" == "SetSelectRadio" ( 
set CMND=CPM?cmd=%%3Cname%%3ESetSelectRadio%%3C/name%%3E
)
if "%1" == "SetPlayPreset" ( 
set CMND=CPM?cmd=%%3Cname%%3ESetPlayPreset%%3C/name%%3E%%3Cp%%20type=%%22dec%%22%%20name=%%22presetindex%%22%%20val=%%223%%22/%%3E%%3Cp%%20type=%%22dec%%22%%20name=%%22presettype%%22%%20val=%%220%%22/%%3E
)
if "%1" == "SoftwareVersion" ( 
set CMND=UIC?cmd=%%3Cname%%3EGetSubSoftwareVersion%%3C/name%%3E
)
if "%1" == "GetAvSource" ( 
set CMND=UIC?cmd=%%3Cname%%3EGetAvSourceAll%%3C/name%%3E
)
if "%1" == "SpkInGroup" ( 
set CMND=UIC?cmd=%%3Cname%%3ESpkInGroup%%3C/name%%3E%%3Cp%%20type=%%22str%%22%%20name=%%22act%%22%%20val=%%22select%%22/%%3E
)
if "%1" == "GetPlayStatus" ( 
set CMND=UIC?cmd=%%3Cname%%3EGetPlayStatus%%3C/name%%3E
)
if "%1" == "Ungroup" ( 
set CMND=UIC?cmd=%%3Cname%%3ESetUngroup%%3C/name%%3E
)

if "%1" == "group" ( 
rem string to long for a batchfile ;-(
goto end
)


rem # find speakers using arp
arp -a | find " %MAC%" > speakers.txt

for /f %%i in (speakers.txt) do (
  echo curl http://%%i:%PORT%/%CMND%
  echo output:
  %CURL% http://%%i:%PORT%/%CMND%
  echo.
)

del speakers.txt
goto end

:help
echo Control Samsung Wireless Audio Multiroom Speakers - version 0.1 by Moosy
echo.
echo SPEAKERS [command] [speaker]
echo.
echo   [command] input
echo        wifi, tvsoundconnect, bluetooth, aux
echo   [command] to control sound
echo 	    mute, unmute, play, stop, pause
echo 	    vol1, vol2, vol3  ... vol9
echo   [command] to set to favorite radio channel:
echo 	    radio1, radio2, radio3  .... radio 8
echo   [command] to further explore for version 0.2 ;-)
echo        next, previous
echo        GetSpkName, GetAlarmInfo, GetVolume, GetRadioInfo, SetSelectRadio, SetPlayPreset, SoftwareVersion, GetPlayStatus, Ungroup
echo.
echo   [speaker]
echo      empty for all speakers or use a speaker you defined in the batch file.
echo.      
echo   examples: 
echo       SPEAKERS radio1 kitchen   -  Kitchen speaker on favorite radio 1
echo       SPEAKERS vol2 study       -  Volume Low for speaker in the study
echo       SPEAKERS mute             -  Mute all speakers
echo 	   SPEAKERS GetSpkName study


:end


Javascript Wrapper by cosminlupu

links
https://github.com/cosminlupu/samsung-multiroom

Shell Script by fhatz


Homey by Petter Ruud and Niels

and/or and older one from Niels

Soundbar API - Ruby Wrapper  by Marek

Input from Marek about Soundbar - jan 2018
if anyone is interested I created a small ruby wrapper around few HTTP
commands so people don't have to deal with urlencoding and can easily do
things like toggle_mute, volume_up instead of setting hard value etc
See https://github.com/ares/samsung_wam_api if you want to know more
The only thing I'm missing is changing the sound mode (movie/music/sport/...), the original samsung app
can't set it either. Does anyone know whether this can be changed through API?
Is there a firmware available so we could disassemble it perhaps?



Control with a TV remote control by Enrico 

Enrico, march 2020: Thank you for all your work in collecting all the technical information around the Samsung Multiroom speaker. I managed to give my Samsung M7 a new purpose: to use it as a soundbar for my TV (having crappy internal speakers), while also being able to control the speaker completely with the TV remote control, i.e. without fiddling with the app. This required building an electronic circuit based on ESP8266, that receives IR commands and transforms them to API commands.

I've put firmware and schematics in my Github: https://github.com/egueli/SamsungM7_IR
It makes use of Get/SetVolume, Get/SetFunc and Get/SetMute, as well as the Bonjour service to automatically determine the speaker's IP address.

Here are some findings I'd like to share:
  • If you call SetFunc with function="aux", and the speaker is already in AUX, the speaker will not reply and you'll get a read timeout. You have to call GetFunc first, read that it's not "aux", then call SetFunc with "aux". Not sure if that applies to the other inputs too.
  • Setting volume below 0 will cause a read timeout.
  • Use <pwron>on</pwron>in all messages; otherwise the speaker won't respond to commands. Especially if you want to hear from AUX: if the speaker is in standby mode, you won't hear any sound until the command above is sent.




Voice Control by Kalle 

Input from Kalle, with this great input on voice control:

big thanks for all the summary of the API commands. For me the important list is the "command.smali" file. 

With the HTTP GET commands it is easy to voice control the speakers with VoxCommando (www.voxcommando.com) by using direct the decoded XML string like

http://speaker_IP:55001/UIC?cmd=<name>SetVolume</name><p type="dec" name="volume" val="2"/>

So now when music is playing (for example from spotify) I can say now  "volume up 2 in living room" and the volume in the living room increases by 2 - everything is possible - genius!



I noticed also a "trick" to get the full music info for a song from Spotify - for example to get all information from a song which is playing from Spotify - use:

http://speaker_IP:55001/CPM?cmd=<name>GetRadioInfo</name>

which give you as response:  title, artist, album, song-lenght and some other info

If you need more information, let me know.

A complete description will follow in the next days.

1. You need  the program VoxCommando (http://voxcommando.com/home/downloads/) - if you do not purchase the program, it works as trial and need a restart after 40 executed commands.
2. You need also a micophone connected to the PC where VoxCommando is installed or as alternative option a Android device with "VoxWav free" or "VoxWav Pro" from Google Playstore (works as WiFi-Microphone with you Android device).

Here is a Demo-Video in german to show you how VoxCommando works (I will record a video with the Samsung Multiromm in action): https://www.youtube.com/watch?v=HhhmWdd02Vc&t=4s

Feel free to ask me per mail: kallevc@googlemail.com

or here in the VoxCommando Forum: http://voxcommando.com/forum/index.php






The Wireless Audio Hub (WAM250)

October 23, 2014 - I was curious how the Samsung SHAPE Wireless Audio Hub WAM250/ZA worked so I played with the unit for a couple of hours.
Except for ease of installation, I don't see any value in the unit, compared to a normal 5Ghz access point.

The WAM250/ZA is an proprietary 5 Ghz WiFi access point that can only be used by the Samsung speakers.
Save yourself money, energy and space and just connect the speakers to your existing 5 Ghz access point.

Found that the Samsung SHAPE Wireless Audio Hub WAM250/ZA has a built-in web server for it's configuration.
Normally you should not see or touch this, everything should be plug and work.
It took me just a few minutes to brute force hack the password and login to the WAM250.

My Hub received 192.168.1.50 from my dhcp server.

http://192.168.1.50/index.html
Username: admin
Password: 1234567890

There are 2 SSID's defined in the setup:
SSID1   TEST_2G_BHUB   WPS  1234567890
SSID2   TEST_2G_RHUB   WDS-STA  wireless distribution system (Transparent Bridge Mode)


It looks like a standard router, but it definitely is a weird WiFi protocol settings:
Below you find some screenshots:
Figure1: Shows 1 speaker connected to the WAM250/ZA. It has IP address 0.0.0.0 ???
Oops - messed up with screenshots. This is something else ???


Figure 2: Shows the default SSID the WAM250/ZA is using. What if my neighbors have the same device????


How this works:
It looks like Samsung WAM is using standard WiFi WPS technology for a speaker to connect to WAM250/ZA SSID.
The WPS key however is a 10 digit key (01234567890) while the standard and most routers only support a eight-digit PIN.

I sold the unit and connected my speakers to a normal 5 Ghz router. Easier and better !







Other Experiences


Soundbar

I have tested most of the single-speaker commands, and they largely work with my wifi soundbar (and will probably work with other wifi soundbars).  There at least two added command (soundbar only - I would surely like to know).

UIC?cmd=<name>GetPowerStatus</name>

UIC?cmd=<name>SetPowerStatus</name><p type="dec" name="powerstatus" val="${powerStatus}"/>
(powerStatus is 0 or 1)

Additionally, the Func commands have different sources.  For the soundbar, they appear to be:  wifi, bt, aux, hdmi, and optical.  Optical is a single function that connects to either HDMI(ARC) or the optical speaker interface.

I am developing three lists:
a.      Functions (list of functions I have examined with variable definitions as well as the Return Method),
b.      Return Methods (list of all captured return methods with the results fields), and
c.      Notes on operation (some of the operations (especially in Content Play (CP) mode are not consistent.  This will be a start of that information for developers.

In the meantime, my SmartThing integration GROOVY files are contained at the link:


Finally, an MS Excel version of my in-work data on the commands is contained in the subfolder "2 - Technical Notes" at the above.



Combining with Google Chromecast Audio

I connected a Google CA to one of my speakers and grouped the speakers using the Samsung app.
The CA can be powered by the WAM USB port.
Compared to all other music streams the quality of the CA is poor, but it works and you are not dependent on the Samsung app anymore. ;-)
Howto: Connect the C.A. to the input jack of your main speaker, use power of the usb port, group speakers from your main speaker - done !
2016 12: It does not auto-detect the signal so you manually have to set the source to AUX



M7 vs M5

The M7 (WAM75x) is so much better then the M5. Go directly for the M7 and don't invest in the M5
Check eBay, many WAM's on eBay


Wireless Connectivity Issues

9 out of 10 issues, users experience are due to IP connectivity. The speakers require bandwidth and a stable connection !!!
Use a decent 5Ghz router. This makes a big difference !!! I currently use a TP-Link EAP245.
Check if your router has an option to assign fixed IP addresses with DHCP. You want to avoid that the speakers get new IP addresses during playback. This can cause lots of glitches during the communication !!!
Speedtest.net

2.4 Ghz is too crowded for practical use in most areas. The speakers require bandwidth and a stable connection.

I also noticed that the reach of my M7 if much, much better then the M5. I assume there is nother wireless chipset onboard.

Tim: jan 2020: 
Speakers don't auto-disconnect from wireless when you plug in a LAN cord
I thought I'd share my experience moving some WAM750's from wifi to ethernet to reduce the load on wifi. I kept seeing random connect/disconnect events on our home network corresponding with dropped speaker connections. I used a Monitor-IO gadget to figure out that the speakers I put on powerline ethernet were still trying to connect wirelessly  Sometimes the gadget's browser-based interface showed two network cards with two different MAC addresses inside a speaker, but the same IP for both, so something was messed up.  Anyway, I did factory resets on the wired speakers (involved cutting power when they freeze at the red light), waited for the "ready to connect" prompt, and plugged in the LAN cord without ever using the app or entering wifi credentials. The speakers gave the "connection is complete" message and work fine now and no more weird connect/disconnect blips on the network. Just thought I'd share that it is important to remember that these speakers each have two network interfaces with two MAC addresses but connecting one does not disable the other like modern laptops, for example. My only tech experience is as a hobbyist and Monitor-IO support was tremendously helpful in figuring this out.

Bob: feb 2020: similar experience with the soundbar
I'm the owner of a HW-H750 and 2x M5 speakers. They work well individually but the grouping and surround is not really usable.

Problem is that I'm on an overcrowded 2.4g/5g network.
I've followed suggestion to reset speakers and soundbar and only use ethernet. I found out that there is no reset mechanism for the HW-H750 soundbar. I ended up to add black-list in router to force using ethernet.
Once we setup surround, the app will directly create a 2.4g (not even 5g) wifi network between the speakers, even though they are all linked with ethernet and not connected to the home wifi.
This results with lot of disconnections/ lags / latency between the speakers and ultimately loss of surround

Just wondering if anyone found solution to force ethernet/lan on surround.

Moosy: feb 2020: 
Conclusion is similar, the wireless NIC is not disabled when cable is pluged-in. Looks like a bug in the software stack.
I can hard reset my M7 speaker by doing the following:
- Leave power cable off for +/- 5 minutes (really!)
- press wifi spk wifi button and keep it pressed for 30 sec up to minute when power on
This will reset the speaker to vanilla (factory) state


Critical note

Mobile app critical notes
Samsung app is required
Deezer is integrated in the Samsung app. Deezer native app does not have native support for the speakers
Since the Samsung speakers support the Spotify Connect protocol, Spotify premium app has limited support for the speakers - no individual speaker volumes !)
App sound output (e.g. Youtube) can not be redirected to a group of speakers. (only one speaker via bluetooth). - Chromecast Audio can overcome this limitation.
WiFi, network connection - you really need 5ghz wifi or cable. 2.4ghz is working crap for me.
WiFi chipset in the M7 is better. Some places in my house, the M7 works perfect while the M5 can not make a connection.
Timer function is very limited, (Timer/Alarm can not (de)group
Only very new 2013/2014 Samsung TV's have support for the Multiroom audio protocol. In that case you only can support 1 speaker over bluetooth.
Limited IP settings, only dhcp without any adv. settings.
Overall stability and performance of the overall soft- hardware stack. App is sometimes slow or something needs a restart. Updates improve things.
Overall price/quality ratio, pretty expensive - I suggest to get some used ones on eBay.


Timoty: may 2019: I just had a comment about the critical note where it says "App sound output (e.g. Youtube) can not be redirected to a group of speakers. (only one speaker via bluetooth). - Chromecast Audio can overcome this limitation."  Actually, I attached a Logitech - Wireless Bluetooth Speaker Adapter Model:980-000910 to the AUX port on one WAM750 M7 and was able to group 8 other WAM750's from that master speaker and it works perfectly. The sound is even better than when I tried it with an old Chromecast Audio. So far it is completely stable and I can play anything from anywyhere: PC, phone, tablet -- as long as it can transmit Bluetooth. The Logitech adapter is just a Bluetooth receiver, not a transmitter. (This has nothing to do with the internal Bluetooth on the speaker itself.)



Wkr,

Moosy
Where the Research Never Stops!




Moosy Research known for crypto sheets https://sites.google.com/site/moosyresearch/projects/cryptos

Moosy research moosyresearch wget linux youtube windows hacking hack  CLI

reversed engineering, cli, command lines interface, linux, gnu, opensource, license, api, sdk, web services, json, java, third party app, app download, windows, linux, mac, other operating system, tool, bricked, brick, hardware, bios, usp port, arm, memory upgrade, ssh samsung speaker, ssh samsung speaker, telnet
reverse engineering, develop, develope, programming, download windows version, crack,multiroom youtube, multiple speakers, cool, master, slave, alternative firmware, linux, 
wachtwoord samsung gebruikersnaam username userid pw  Iot internet of things, Hack Samsung Audio protocol, Hacking Samsung Shape, Hacking Samsung WAM,  Hacking wam250, hacking Samsung SHAPE™ Wireless Audio Hub, hacking samsung multiroom hack hacking mod modification tune repair tweak SSID serial solders , crash"samsung electronics spk-", IBMXLDGH4FDCJ, MSFVERSION, SMARTHUBAGREEMENT
multiroom speakers chromecast audio, samsung multiroom youtube, samsung multiroom stability, samsung multiroom slow, performance, boxen, opensource, sourceforge, github, solder, serial, bios, rom, ssh, putty, telnet, static ip, Linux arm on ARMv7 Processor rev 0 (v7l) , 
New Official Integration: Samsung Multiroom Audio, third party apps, third party integration, you own app, alternative app, control from other app, control from linux, youtube samsung multiroom 
Samsung Wireless Audio Multiroom Control API Documentation Samsung Wireless Audio Multiroom API

ċ
Command.smali
(52k)
Moosy Research,
May 25, 2017, 11:51 AM
ċ
Moosy Research,
Aug 12, 2017, 12:59 PM
ċ
communication.zip
(28k)
Moosy Research,
May 25, 2017, 11:51 AM
ą
Moosy Research,
Jan 3, 2020, 3:07 AM
ċ
stvcli_win.zip
(958k)
Moosy Research,
Dec 13, 2016, 11:20 PM
Comments