We’re trying to figure out whether Sonos was doing the right thing, and it’s getting to the point where we need pins, a corkboard, and string. Sonos had been increasing the functionality of its products and ran into a problem as they hit a technical wall. How would they keep the old speakers working with the new speakers? Their solution was completely bizarre to a lot of people.

First, none of the old speakers would receive updates anymore. Which is sad, but not unheard of. Next they mentioned that if you bought a new speaker and ran it on the same network as an old speaker, neither speaker would get updates. Which came off as a little hostile, punishing users for upgrading to newer products.

The final bit of weirdness was their solution for encouraging users to ditch their old products. They called it, “trading in for a 30% discount”, but it was something else entirely. If a user went into the system menu of an old device and selected to put it in “Recycle Mode” the discount would be activated on their account. Recycle Mode would then, within 30 days, brick the device. There was no way to cancel this, and once the device was bricked it wouldn’t come back. The user was then instructed to take the Sonos to a recycling center where it would be scrapped. Pictures soon began to surface of piles of bricked Sonos’s. There would be no chance to sell, repair, or otherwise keep alive what is still a fully functioning premium speaker system.

Why would a company do this to their customers and to themselves? Join me below for a guided tour of how the downsides of IoT ecosystem may have driven this choice.

What Magic Are They Selling Anyway?

The Sonos announcement leads off with a not-so-humble brag:

We’re extremely proud of the fact that we build products that last a long time, and that listeners continue to enjoy them. In fact, 92% of the products we’ve ever shipped are still in use today.

For those who’ve never used one, Sonos does make a pretty nice IoT speaker. The main draw of their platform being that the audio will sync perfectly between speakers even if they’re in different rooms. As you walk through your home there would be no discernible syncing issue between devices. Considering that Sonos users have wildly different technical abilities and network set-ups, it’s a pretty decent engineering feat. Even a small desynchronization would be the fast train to headache city for most users.

I’ve tried to build my own synchronized audio player between rooms before. It ended up as an extremely wasteful UDP streaming server but none-the-less did the job okay. Having gone through this experience gives me some clues as to why Sonos made the engineering choices they did. Using a Sonos for the first time is an interesting experience. It’s not exactly “just” a speaker. Usually you hook the audio input of a speaker to the output of another device and sound happens. Sonos, however, requires that you use their apps to play music from a service you’re subscribed to.

Sonos talks a lot about their proprietary mesh networking and other neat things they do, but my guess is that because Sonos knows which media is being played they can buffer a portion of the audio. The only thing Sonos would have to send is a packet that synchronizes the time and the speaker itself can adjust its position along the buffer.

This is somewhat confirmed when you really dig through their documentation. For example, if you choose to use the line-in on a Sonos to use as a speaker for a TV you can choose between two modes “Uncompressed” and “Compressed”. If you use an uncompressed signal you can operate at a 75ms delay, which enough of a video/audio desynchronization to be quite noticeable for most people. If you use the compressed mode the delay goes up to 2s, very noticeable.I believe this is hint that Sonos works by buffering at least 2 seconds of audio on every device.

To some extent this explains Sonos’s seemingly bizarre choices for their hardware retirement strategy. They even specifically mention that the old devices, “have been stretched to their technical limits”. It’s somewhat unreasonable to expect Sonos’s old hardware to be able to handle the buffering of a higher quality audio stream if it’s limited. There may also be more processor intensive ways to reduce that 75 ms delay. Note, for example, that Sonos’ latest products tend to favor digital audio inputs over analog, perhaps they have some control of the syncing to video through these prototocols. Maybe someone familiar with with HDMI ARC or ADAT could chime in. On top of that, their speakers have to start supporting Google Home and Amazon Alexa in order to remain competitive.

Hard Math Brought Hard Decisions

Sonos then has a difficult choice and in some way, according to that 92% number from before, backed themselves in the corner. Their speakers are premium and sold for a premium price. They delivered a lasting product. However, customer perception of a speaker is not the same as one for a laptop. Nobody expects their $3,000 apple laptop to work forever, but most people would expect a premium speaker set to work for a decade or more. Like desktop computers, an audio system can always be upgraded in parts. Yet the Sonos is an IOT device at its core and a complicated one. The realization that everyone, including Sonos, is having is that it follows an IoT lifecycle.

I’ve worked on mass produced IoT products before and can safely say that supporting legacy products can become a debilitating burden for a company, especially if hardware specs and customer expectations have moved on. For example, Sonos sells to a certain customer segment. This customer is probably very likely to buy a new Sonos speaker at full price. If all those customers unloaded their old speakers onto the market there’s a very good chance that for every customer that upgrades, Sonos would gain an extra customer on their support lines, especially if they have a fundamental incompatibility between new and old systems. It could get expensive fast. Sonos likely ran the numbers and decided that their policy was the right mix of rewarding customers for their loyalty while still being able to turn a profit.

In a way Sonos is being punished for their own excellence. Yet we can’t say that their response, while logical from their point of view, would fail a laugh test anywhere outside of the Sonos office. Likely the best response would have been “we’re just not supporting your old stuff,” and in the end that seemed to the be option they went with when they backed out of their initial announcement.

[Main image source: Sonos Play:5 Old and New (Gen 1 vs Gen 2) by Nan Palmero CC-BY 2.0]

[Thumbnail image: Amp Android Electric Electricite by Daniel Absi via Pexels]