Cloudwash is a prototype washing machine. We created Cloudwash to explore how connectivity will change the appliances in our homes… and to figure out what new features will be possible.
We made two prototypes:
Connected appliances have the potential to be better designed, with new features, new services, and even new business models.
We know that the best way to figure out the new features is to interact with working prototypes, seeing what works and what doesn't. And by making working prototypes, we have washing machines that can be used in live customer trials. The problem is that it's usually hard to bring existing, complex consumer appliances to the connected world of the Internet of Things.
We wanted to demonstrate that by using our platform to give web APIs to a regular appliance, it's possible to experiment and iterate freely.
And we wanted to show that, when you work like this, you arrive at new features that are better than what's currently on the market.
This first prototype was based on a standard Zanussi washing machine. We intercepted the connection between the user interface electronics and the wash control electronics, and inserted an Arduino Mega to read and write to the serial data passing back and forth.
Using logging, we reverse engineered the internal protocol of the washing machine, learning how the interface system instructs the control system to start or stop a wash (with its various parameters), and how the control system sends data back to update the view on the interface.
Given this knowledge, we used a custom PCB and our own Devshields to give the Zanussi a web API via the Berg platform. Using this API we could (a) listen for wash instructions from the machine; and (b) send commands to trigger washes and update the interface, all from a regular website. (The Devshield connects wirelessly to the web and to the Berg back-end using the same infrastructure as Little Printer.)
It was a huge time-saving to work this way: Developing against a web API is much faster than developing embedded software that runs on the machine.
The electronics to connect the Zanussi are visible through a transparent bubble in the top of the machine. This isn't essential. But it does look cool.
The website we built using Node.js and MySQL. The database holds a virtual representation of each connected machine's state which is updated every time a Berg event is received. The virtual state of the machine can, in turn, be accessed by the other interfaces we built as part of this investigation: a user-facing website, and an iOS app.
Above is a push notification being received on an iPhone as a wash finishes. It's simple to build this kind of service using Node.js and a small iOS app, given the machine can be monitored and controlled using web APIs.
We used the Tech Prototype to trial different interactions, and to guide the development of the Design Prototype.
Read more about the development of the Technical Prototype on the engineering blog.
The intention of the Design Prototype was to illustrate new functionality of a connected appliance in an interactive form.
The user interface is spread between the smartphone and the buttons and dials of the appliance. We considered several designs:
Each of these routes were legitimate options with different kind of values. There is not going to be a single best connected appliance of any kind. We followed the third route because it marries the affordances of physical dials and buttons with the benefits of the network. It is the sparest expression of the most value we see in the connected machine, and critically, it still works with out a phone.
After some iteration, we arrived at a control system with three parts:
There are three customisable options for wash types on an e-ink display. We observe that mostly people tend to use maybe two or three of the washes available on their machines most frequently.
The legends for these washes are in e-ink so they can be updated but still feel like part of the legends one would expect to find on a washing machine. They can be far more descriptive than the descriptions on a traditional dial, since there’s no need for generalisations like 'cottons.' We like human-readable descriptions like ‘Joe’s sports kit’ or ‘really really quick’ or ‘use this for baby stuff’.
The presets are configured using the smartphone app.
The second section shows when the wash will finish.
Clothes should be removed from the machine as soon as possible following the completion of the wash. This means they come out fresh with fewer wrinkles. The dot matrix display shows the time in green when the machine is idle. As potential washes are cycled (using either the presets dial or the smartphone), the projected end times appear in white. Once a wash has begun, the display turns red to show the machine is occupied until that time. The vertical bars at the top of the display show duration of the wash in 5 minute increments. This means that as the user cycles through washes, they can quickly see that some washes can be less than an hour, but others might take more than two hours. The dial at the left of the display changes the end time.
This display has a secondary use when the smartphone is used. Washes can be delayed to finish later in the day. Using the smartphone, the finish time can be extended, so as plans change, a wash is kept fresh in the machine until someone is available to remove it.
In a shared household, where the machine is a contested resource, or a where noise might be an issue. There are functions that allow for future planning of usage, and a feature which prevents the machine from spinning during anti-social hours.
The array of buttons on the right control functions associated with the network. There’s a control which toggles the notifications. While notifications are controlled in detail from the smartphone, there is an override on the front panel to turn notifications on and off on a case-by-case basis.
We also speculate on bringing "in-app purchase" to connected appliances. The demand for detergent and conditioner arises when the user is physically at the machine, so why not put purchase buttons there? Their functionality is configured using the smartphone: Pressing one of these buttons results in either a reminder to the machine owners to buy detergent, or direct integration with a vendor to purchase the soap.
While this is the most speculative part of Cloudwash, it also raises the most questions. Does this mean that the machine could be sold at cost, and the manufacture find its profit by taking a cut of all transactions through the appliance? Or could a machine be tied to a specific detergent company, and subsidised by them? Would this undermine incumbent manufacturers, and introduce a new kind of customer relationship to be managed by retailers? Does the future of connected appliances look more like inkjet printers with expensive print cartridges, or (more favourably) Nespresso machines and Nespresso capsules, rather than the manufacture-led business we have now?
We made a film to discuss Cloudwash and to start a conversation.
Connectivity changes appliances in far-reaching ways. It's such early days for the Internet of Things in the home that figuring out these changes is hard.
We wouldn't have arrived at the features in the Design Prototype without being able to make functional prototypes and iterating with our hands. And we wouldn't have been able to make functional prototypes without technology to develop on the web, easily and iteratively, rather than in the slow world of embedded software. This technology is our platform, Berg.
We believe this is the right approach to designing the products and services of the future. (And of course we'd love for someone to take this washing machine to market too.)
Apologies to Zanussi for hacking their machine. Cloudwash was made without Zanussi's involvement.
Thanks to the Cloudwash team!
See photos in the Cloudwash set on Flickr.