Shake, rattle, and roll: How we got a washing machine to text when it’s done

Or, how a DIY newbie and an engineer went on a nerdy romp with an Electric Imp.

Ars editor Cyrus Farivar spent a lot of time doing laundry in pursuit of better understanding of how to use his Electric Imp (that green circuit board.)

Malcolm Knapp

Those of us who live and die by our gadgets continue to dream about the day that all the devices in our house will communicate in the ways we want them too. This, of course, is the promise of the "Internet of Things." Eventually all your gizmos—ranging from your coffee maker to your garage door—will be able to communicate with you, each other, and hopefully your remote management system of choice. The Internet of Things is a major goal in Silicon Valley right now, and one startup recently launched a hobbyist product to move things in the right direction.

The Electric Imp, for those not in the know, is a little SD card-sized Wi-Fi device that can be hooked up to various types of electronic sensors. It can then connect electronic devices or other real-world physical items to the Internet. For now, it remains very much in the hobbyist domain. But the Palo Alto company would eventually like all kinds of items—from mousetraps to light switches—to become “imp-capable.”

The people behind the Electric Imp are at the forefront, and they have an alpha release devkit you can experiment with. We received one last month and considered hacking a coffee machine or even building a gumball machine that would dispense treats every time one of my articles got re-tweeted 100 times. But the coffee machine idea had been done and the gumballs seemed justa bit over the top. So a month ago we asked our readers for some guidance on what to do with our Electric Imp device.

There were a number of great ideas: automated door locks, monitoring a refrigerator and freezer, automatically raising and lowering blinds to minimize energy costs, etc. My electrical engineer partner-in-crime, Malcolm Knapp, even made a tag cloud of the collection of comments we got.

In the end, we decided we needed something both technically challenging, useful, and feasible. In that light, we settled on one of our original ideas—a washing machine that would text when it's done.

Enlarge/ Malcolm made a tag cloud of all the ideas that were suggested for our project.

Malcolm Knapp

Why the washing machine?

The washing machine was originally proposed by Hugo Fiennes, Electric Imp’s CEO, when I first interviewed him this summer. Sure, some people dismissed this idea as not terribly useful. Ars reader xFriarx, for example, wrote: “Most washers already beep at you to let you know they are done. Besides, if you're not home, do you really care if your laundry is done? Are you really going to go home just to switch it over or are you that bad at time management and can't plan ~30 to 45 mins ahead to know you need to go home to switch the load over?”

It's true that Malcolm’s house isn’t terribly big, and yes, his machine already has a digital readout on the front. It also makes a sound when it’s done. But that noise only happens once; it’s easy to miss (and forget about). And I live in an apartment building in Oakland with about 30 units; my laundry machine is way down the hall. Yes, I realize I don't own the washing machine, but I might be able to sneak a duct taped-Electric Imp dev kit—what the company calls an “impee,” or in this case, specifically, a “Hannah”—onto the side or back of a machine. (One more bit of Electric Imp jargon: the “imp” refers to the SD-card sized Wi-Fi device itself.) Plus, my machine doesn’t have a timer on it, so I don’t actually know how long it takes.

Ultimately, I wanted something I would actually use. Given that we had unadulterated access to Malcolm’s washing machine, it felt like a good place to start. Plus, this idea has no related costs and didn’t require any crazy extra hardware. Hacking his door lock to close automatically, for example, would have been much more difficult. Really, we wanted a way to explore just how easy or difficult using an imp would be. Plus, we got a bunch of laundry done—you know, in the name of hacking and journalism!

The Electric Imp uses a small Wi-Fi chip to allow electronic devices to talk to the Internet.

How to wash your own laundry (imp-style)

When we got started, the concept of using the Hannah’s accelerometer to sense movement and send a text message when the movement stopped seemed straightforward. But, as is always the case, reality was a bit more complicated. The entire process took something on the order of 12 hours. That's a long time, much of it spent fiddling with code, testing, testing, and testingagain—we did a lot of laundry.

In the end, what I learned was that this type of device is still very much in the hobbyist domain. It also requires extensive knowledge of programming. That was the most frustrating aspect about the entire experience—without Malcolm at my side doing most of the coding and iterating, I probably would have given up early.

I'm getting really tired of seeing everything has to run through "THEIR" servers to actually use the product.

Pretty similar to always on DRM.

My issue though is if I get the product and it works for me great. BUT if the company goes belly up. i am now in a position where if i want to reconfigure the device I'm pretty much SOL, which is something im totally not ok with!

@sryan the only problem with that is the fact that depending on what mode you have it running the power cycles will be different.The other problem is the device still has 110 active on it. it goes to the switching unit for the motor. Sound is the most reliable mechanism to detect this. after x=time say x=5min after frequency of xxx is observed it transmits a an output signal. i have done something similar to this on a bread board just not with the cellular antenna to send a text. But all that is is another logical chip.

@little i agree with the fact its tethered to there servers but that makes it cheeper because they can have a forced route at that point. It also makes it easier on the unit attached to the dryer meaning it doesnt need to be programmable beyond having a device specific id and it would have to have atleast a mac or an imei to communicate with there servers.

And setting an timer on the phone would not have been easier, cheaper, and better use of the time?

If this was more useful, the whole thing would have been more interesting.

For our dryer, the timing varies as it senses moisture levels. I don't know that I've interest in using this for it - being tied to a third party server for something I could just as easily do without does not appeal - but I found the article an interest read for ideas and references to relevant technology if nothing else.

I think if faced with the washing machine dilemma, I would just tap the timer output and maybe the, if so equipped, door interlock that prevents the door opening on the spin cycle..

Simple built-in logic to tap and easy events to program for.Schematics for washers can sometimes be found on line and popping the control panel open is usually pretty simple unless it is a commercial coin op.

A couple of years ago, when I was fresh out of college, I applied for a "manager trainee" position at Whirlpool Inc. in Brazil. After a few interviews and assessments, both individual and in group, I finally made it to the final round. From the initial 10k applicants, we were down to about 100 people competing for a total of 10 positions. This last round required us to make a quick slideshow (5 mins) with a concept product which we were going to be scrutinized by a board of top executives in the company.

My idea was called 'pluribus' ('many', in Latin), which was basically a Wi-Fi hub-meets-router, connecting different home appliances which encompassed a variety of products Whirlpool currently markets in this country. Since I had only about a week to prepare, I didn't have the time to work out the details, but with Bluetooth 3.0 in the works, I proposed each device to have a bluetooth connection to the wifi router, which would then ping Whirlpool with info on appliance performance and usage statistics. The benefits to the user would included remote washing machine control - such as alerts when finished, remote start (so that cycle would finish right before you got home, for example) -, downloadable recipes in the kitchen, optimizations in the fridge defrosting cycle - delaying it as necessary to reduce concurrent power usage in the house -, interactive user manuals, video tutorials, and whatever else we could come up with.

The idea itself turned out to be a success. My product was chosen as the best new idea among the candidates and I was pretty sure I would get the job. As it turns out, there was this final interview with HR and one executive which was really meant as a double-check for the probable 10. A complete crash and burn, if there ever was one. I guess if I ever go into an interview and try really hard to *not* get a job, I won't do any worse than I did on this one. I actually never even got a phone call or e-mail telling me I didn't pass. In hindsight, I'd say I had a pretty solid concept, a decent sales pitch and terrible preparation for the corporate world. Unfortunately, the latter is actually the number one criteria for selecting aspiring managers. With the lesson burned in my head, and a couple of opportunities to train my corporate buzzwords in different firms, I finally managed to get the job I currently have. But to date, this episode still makes me feel a little envious every time I learn about successful home automation projects. Kudos to you guys!

Here's an idea for someone - make a fully potted, waterproof version with inductive charging. Programmable via a wireless web interface. An accelerator is one onboard sensor. When it is agitated for a period according to a certain pattern it arms (can learn by being run through a cycle), when the agitation stops for a further period it texts. And if it moves from the place you left it, texts home with GPS coordinates - clothes do get stolen sometimes.

This would be perfect for laundromat users. If you were careful with component selection you might even be able to put it in the dryer (though commercial dryers with gas heat get WAY hotter than home dryers).

(and it could warn you if your washing machine halted early due to imbalance. Or let you know if you had forgotten to clear the lint filter in the dryer and things were getting dangerously hot.)

The other problem is the device still has 110 active on it. it goes to the switching unit for the motor. Sound is the most reliable mechanism to detect this.

Sure, and this method only really works for devices that greatly vary their load during operation (microwave, dryer, washer, etc) but I imagine such device would have a "Calibrate idle point" button either on the device or in the WebUI so you can tell it that 10W is powered on but idle.

I had the idea to build basically what I described above to plug into treadmills in gyms to have some kind of central system to know which machines were in use.

The other problem is the device still has 110 active on it. it goes to the switching unit for the motor. Sound is the most reliable mechanism to detect this.

Sure, and this method only really works for devices that greatly vary their load during operation (microwave, dryer, washer, etc) but I imagine such device would have a "Calibrate idle point" button either on the device or in the WebUI so you can tell it that 10W is powered on but idle.

Even a crap/inefficient washing machine will probably use around 0.5W when idle. If your washing machine is drawing 10W then I hope you are unplugging it while it's not in use, to save yourself a ton of money.

10W was just pulled out of thin air. I was thinking of the washer/dryers that have either color/touch LCDs on them or light up buttons/digital controls that use some amount more when they are "On but idle"

Malcolm made a tag cloud of all the ideas that were suggested for our project.

And boy did he put effort into it. What where those ideas about "subscriptor" and "Tribunus"?

The problem I see with home automation and "shoving things into a network" is very well outlined in the article. Interfaces and state detection. The washing machine perfectly well knows when it is finished, but you have a damn hard time programatically checking that. At least without cracking it open and voiding your warranty.What you did by checking for that spike and using a timer was an ugly hack, but I can't blame you in any way.

If the "Internet of Things", and this already has the same, bad, buzzwordy ring as Web 2.0 and Cloud to me, should really have a chance to take off, the interfacing problem needs to be solved. Idk if there already is a standard or a meta standard for this, but I'd suggest giving applicances a small standard connector where they can push out trivial signals. The really neato way would be to have them put out something like XML, but the complexity and cost would be prohibitive.Even an I2C or UART would be enough, just add a list explaining what comes from there and what might go in there. Yes, for a coffee machine the complexity and cost might still be prohibitive...

While I'm not sure what your Imp can do, with one of the standard microcontroller boards and not being allowed to touch th washing machine internally, I would have used a mic and listened for the beep it makes when ready.That's the intended interface for the user that publishes the machine's internal state. And from your writing I guess hunting down an audio library would have been easier and faster...

Is it really that hard to do a wash and time how long it takes, then just set a timer on your watch, egg timer, kitchen timer, phone, etc. there after? That's what I've done since college, and it works very well. Actually, I only did that while in college, because since then, I could hear when the washer/dryer were done because they aren't down the hall like they were in the dorms. But if I'm ever living somewhere where the washer and dryer aren't withing an earshot, I'll probably still just use a time to know when they're done.

The way how the programming is described in the article, which seems not to be beginner friendly at all, lets me really doubt at these systems. If someone with programming experience is required and needs to spend 12 hours to get some task done, this will certainly never appeal to a broader audience. In addition to the need of a proprietary web service I don't really see a bright future for the Electric Imp.

I think the colored lights that got an article recently at Ars (Philips Hue) go in the right direction. They have a simple smartphone interface that lets you tap on different spots in a picture and the lamp will change its color accordingly. But even there some programming was necessary to get a time schedule worked out that respected weekends.

That being said, as long as it involves more than tapping on a smartphone display home automation projects are prone to be relegated to hobbyists and will not appeal to the general consumer market (imho).

Interesting concept, but extremely difficult to implement, even for most hobbyists I think. Requires programming knowledge, requires going through Elec Imp's server, requires another account some where else, requires your own web server. ad infinitum it seems. I'm not saying it's not nifty but it seems to me there are much easier ways to implement this device than going through all of the steps in the article.

The washing machine message is a great idea though for people who live in apartment buildings, or multilevel houses, or anywhere the machine is located in a different part of the building. Or even for people who are hard of hearing since some of those beeps aren't all that loud and can be easily missed if other noise is present.

I like the Electric Imp device but it needs simplification in order to make it appeal to more than just a few engineers.

A more reliable way of detecting when a various appliance is done would be to have a WiFi enabled inductive current meter. Then you could say "when power is below X watts for Y seconds send Z message"

It would be fairly trivial to make an inline device for 110v appliances, and you could even use powerline networking to talk back to a hub/concentrator.

Or a variation of this will be to just detect whether the door lock for the washing machine is engaged or not(which is a common thing in every washing machine I've seen) - that way you get a notification when the machine is not only done,but ready to be emptied

As for the article itself - it's fun to see more articles that deviate from the normal content (ie Apple/Google/Microsoft-centric ones). It actually gave me an idea to try and implement something similar with my washing machine,dryer and dishwasher, though I'll probably stick with Arduino for them -I'm thinking something along the lines of adapting my wifi-coffee (a simple bugger to get my coffee machine cracking on command from any of my wifi devices ),but just maybe going the ZigBee route this time 'round..

Edit: Wow,a lot of posts got slapped with a -1 for no apparent reason - the voting system in action I suppose (couldn't have the powers that be at Ars just add a variation of the 'kudos' button prevalent on so many forums.. *sigh*)

So, ultimately, even if you get your code working perfectly, 100% reliably, you have an absolute external point of failure. If the Imp servers go down, your app invisibly fails. If the Imp company goes down, which is entirely possible, then your entire investment in home automation is trash. Toast. Dead and gone.

I'm sorry, but you'd have to be pretty goddamn stupid to sign up for that deal.

The pay washing machines and dryers at my daughter's college will text you when done. You just need a newer washing machine! I do think the timer approach makes sense though. You could even have a special app.....

Ease of programming is where it's at for devices like the electric imp. The better the user interface, the more they will sell. And vice versa.

You'd think the Arduino would be an obvious reply, after all, it's designed so that even artists can use it. While they have come a long way on accessibility, my wife and I were amazed at how much effort it took to get working code to run a few temperature sensors. "What about all the code available on the web?" Well, some of that doesn't work.

And I live in an apartment building in Oakland with about 30 units; my laundry machine is way down the hall. Yes, I realize I don't own the washing machine, but I might be able to sneak a duct taped-Electric Imp dev kit

Not the best idea I think. You might get flooded with unwanted messages.Unless off course, you do want to know when that hot neighbour will be there to pick up her laundry and you conveniently want to hang around

Who's the asshat that's downvoting most of the posts here? There are 20 out of 25 with a "-1".

Probably the same one that struck over at the Star Trek newspiece...

sajurcaju wrote:

You'd think the Arduino would be an obvious reply, after all, it's designed so that even artists can use it. While they have come a long way on accessibility, my wife and I were amazed at how much effort it took to get working code to run a few temperature sensors. "What about all the code available on the web?" Well, some of that doesn't work.

Steve

I can't say that I agree on it being that hard to master - hell,my first project was using only repurposed (and relabeled)code from the reference section of their website - and that's including a thermistor based sensor and the conversion algorithm to print out the temperature (by the way, if someone googles it - replace the 10k resistor with a trimmer,because that way you could calibrate the bugger). And of course there's always the helpful community that'll provide assistance when needed

zenbomb wrote:

Many washing machines have and "End"-LED, or other status LEDs. I think it would be easier to just hook up to those LEDs.

That's what I meant with a way to sense whether the door was locked - just hooking up the LED to the analog pins should do the trick

That's what I meant with a way to sense whether the door was locked - just hooking up the LED to the analog pins should do the trick

99% of the home washers I see are top load, and have no such door lock.

Quote:

Is it really that hard to do a wash and time how long it takes, then just set a timer on your watch, egg timer, kitchen timer, phone, etc. there after?

Most dryers today have a smart dry where instead of a fixed time they run until they are done. Making it hard to guess. A load full of large towels may take ~50-100% longer to try depending on how well they were spun out in the washer then a normal load.

The top-loading or vertical-axis clothes washer is most popular in Australia[citation needed], New Zealand, Canada, the United States, and Latin America

wikipedia wrote:

The front-loading or horizontal-axis clothes washer is the dominant design in Europe, the Middle East, Asia, Africa, and much of the rest of the world. In the US and elsewhere, most "high-end" washing machines are of this type. In addition, most commercial and industrial clothes washers around the world are of the horizontal-axis design.

Actually, the most interesting thing about this particular project - for those of use who live in apartment blocks with shared laundry facilities - would be if the thing were remotely queryable so you could ask it if the machine was in use before you troop down to the laundry room with all your stuff, only to have to troop back when you find all the machines are full...

Oh, and an eternal pox on the houses of all those people who think it's ok to not bother taking their stuff out of the machines in a timely manner when they have finished. Rooting through your damp underkecks because you can't be arsed to turn up to take them out is not my idea of fun. So there.

A couple of years ago, when I was fresh out of college, I applied for a "manager trainee" position at Whirlpool Inc. in Brazil.

That's interesting. A few years ago I started looking into networking washers and driers in apartment buildings. Never got much past the hand-waving phase, but I did have some interest from a few management companies and laundry providers. As I was working on the business plan my advisor thought I should peruse a patent on my ideas. It turned out Whirlpool had already patented most of the underlying technology, much like what you are describing. That basically scared off any investors and it never really went anywhere.

Not every washer has a beep, nor every dryer a buzzer. The only indication I have that my laundry is done (it's in the hall), is the lack of noise. The only issue is, if you're distracted with something else, you don't really notice the lack of noise, as you've tuned it out.

I've actually got an AVR microcontroller with a wireless interface that talks to a server running on my computer, which pops up a message when either one or both are done. Since neither has a buzz, and the dryer is a 220v electric model, using load wasn't really an option. However, the noise the dryer makes is pretty constant, while the washing machine has a pretty consistent noise as well for the spin cycle.

That said, since the dryer is the choke point (auto, not timed, takes longer than a wash cycle), I usually just use that, since I am usually washing more than a single load at a time.

Not every washer has a beep, nor every dryer a buzzer. The only indication I have that my laundry is done (it's in the hall), is the lack of noise. The only issue is, if you're distracted with something else, you don't really notice the lack of noise, as you've tuned it out.

I've actually got an AVR microcontroller with a wireless interface that talks to a server running on my computer, which pops up a message when either one or both are done. Since neither has a buzz, and the dryer is a 220v electric model, using load wasn't really an option. However, the noise the dryer makes is pretty constant, while the washing machine has a pretty consistent noise as well for the spin cycle.

That said, since the dryer is the choke point (auto, not timed, takes longer than a wash cycle), I usually just use that, since I am usually washing more than a single load at a time.

Hrrm - how about something along the lines of this http://arduino.cc/playground/Learning/Tachometer combined with a preset delay between the stopping of the drum in the dryer/washing machine and the signal you get on your desktop? Ie - if the thing is stuck @ 0 RPM for 5 minutes,it starts flashing?

Edit: Or alternatively using a tilt sensor coupled with an XBee module inside the drum itself. It'll be relatively easy to waterproof the package and given its low power usage it could last awhile even on the simplest of batteries

What about broad-band over power lines (BPL) for this sort of thing? I know that it didn't pan-out as a technology for delivering broadband, but it seems to me that if the technology did work, then the home's power network would naturally serve as a home network as well. In the case of the dryer, you could even use an in-line device that tells you when the dryer is no longer drawing significant current. (Of course you should be able to do this with WiFi as well.)

It may be that WiFi equipment is cheaper than a BPL network device would be, but I haven't seen anything about this being explored.

Interesting article, but it'd be much simpler to have a baby monitor sitting next to the washing machine to pick up the buzz and keep the corresponding receiver where ever you are. Remember KISS-Keep It Simple Stupid.

I have been apartment hunting lately and I was amazed when I saw that a lot of apartment facilities already have this - but for some reason they don't advertise it. I only found out after talking with an agent.