Arduino Controlled Dishwasher

My latest project, Arduino Controlled Dishwasher. Sorry about linking to my own site, rather than posting it here on the forum, I just didn't want to post it over and over. There are no ads on my site. :slight_smile: Anyways..
Summary.. the control head on this dishwasher died, a replacement part was unreasonably priced, and would just fail all over again down the road (design flaw). So I wrote a sketch for the Arduino that runs the dishwasher. I figured while I was at it, I'd make it better than the original controller by using an LCD to display the current status. :slight_smile:
I haven't buttoned up the prototype yet, but I have gotten the functionality down.
I have the sketch posted on that page.

Very cool stuff thanks for sharing!

Holy Cow, that is so cool. Interesting how insurmountable problems somehow get resolved once one's mindset changes. I am very impressed at your efforts on this. Now, the real challenge begins, how the heck are you going to make this look good on the front of the dishwasher?

Be sure to come back and post again when you get it finished. I'm going to steal ideas.

Awesome work UnaCloker! If I may give a suggestion, use an IR remote control instead of using an actual key pad will save you lots of grief trying to integrate the keys to the old panel. If you install the display where the broken display is, then seal it water tight is doable but won't be pretty. The least invasive way I can see is to construct a box to house the arduino, a display and IR receiver with a cord to the dish washer. You can sit it on the kitchen counter and control it with a remote. Weather is good in my place so I'm thinking you could buy a remote from a garage sale for a few dollars.


That will be the control panel on the front of the dishwasher, it's only half done. Hope nobody minds me snagging the Arduino logo for it.. Not like it's going to be commercially produced, I wanted some Arduino pride on the front of the machine. :slight_smile: The other logo is the OpenHardware logo.. I'll post more as it goes, and then update my page when it's all assembled and done. :slight_smile:

How the heck did you do that? That is really nice.

Really, that is one of the best looking front panels I've seen and I want to know how you did it. Don't you want a rinse and hold button though?

Nice work! Will you make it out of wood plank, acrylic or other materials? I've had ponoko.com make some acrylic design I did. Not very cheap if you go that big.

how about a delayed start (in my country electricity is cheaper at night)? You could add "half full" function, cutting wash times when the dishwasher is not fully filled in or filled with relatively easy to clean stuff.

Also, do you have alternative hot water source, like solar panels? That would be a great saver if you would use "free" hot water instead of heating it.

My dishwasher analyses the transparency of disposed water to judge if it is clean enough.

Am I adding too much "feature creep? ]:slight_smile: ]:smiley:

How we made it.. First we took the original control panel and scanned it on a scanner. Loaded that scanned image into Autocad and got the oval-esque shape down, pretty much traced it with some arc's. Then we added the cut out for the screen and the two buttons. We then exported it into CorelDraw where we did some final touch up, and sent it to a 50watt CO2 Laser. We cut out a few copies on paper, making minor revisions till we had the size exactly the same as the original control panel. We then took a sheet of pretty thin Lexan, maybe 1/8" thick, and cut it out. After it was done cutting, we spray painted the back of it with white spray paint, and when that dried, we put it back in the machine, paint side up, and used the laser to remove the paint, which left us with the writing and logos. Next up, I'm going back over the back of it again, this time with black paint,which will make the logos and the writing black, on a white background. Then I have to get wild with a dremel on the front door of the dishwasher to get the LCD and buttons to fit into the door just behind the new front panel. It's going to be a tight fit.

Shoot, I don't have a laser.

draythomp:
Shoot, I don't have a laser.

Got a Hackerspace in your area? Most of them have a laser that you can use for this sort of thing.

Here's another teaser picture, got it all mocked up. Just got to decide how I want the display held in place, as well as the buttons, and then run wires for them. And yeah, that's packing tape holding the control panel in place. :slight_smile:

You made me jealous. I suggest hot glue for lcd :wink:

For keys, have you given IR remote control a thought? It's wire free.

I made this light show with IR remote control, super easy!

I have soooo much trouble losing remote controls, I don't see me going that route. I'd be more inclined to use an ethernet shield and get it on my network so I could control it with my phone.. But aside from the novelty, it just doesn't seem practical to me.. There are two LED buttons in that control panel, that's all it needs. Press both to pull up a menu, if I decide to put a menu in it in the future..

I've had to replace the control unit twice on my dishwasher. Both times because the darn thing got wet and rotted. It was under warranty, but would have cost me a lot. Needless to say, if it happens again I'll be copying your project ]:slight_smile:

I'll never be able to match the incredible job you did on the front panel (the nearest hacker space is 1.5 hours away), but I certainly could put in an arduino with XBee remoted to my overall house controller.

One thing though, my experience with hot glue has been less than satisfactory here in the Arizona heat. It's great if the temps stay within reason, but ...... You may need to look at nylon standoffs, nylon screws and some of that epoxy putty to hold things on. The epoxy putty for plumbing that you can get at the hardware store is really great stuff for hot and wet situations. Sure, you will be sealing it as well as you can, but this stuff is cheap and easy.

Darn nice job, show it off to everyone that come in your house.

Hot glue can be iffy in something as warm as a dishwasher :smiley:

Yeah, that's true.. It can sit around 150f for an hour straight, that does seem like it'd make the glue start to soften up and come free. I think I have some "Plumbers Goop" glue, that stuff is pretty impressive.
On a different matter.. After adding the second button, the two LED's in the buttons, and the tilt sensor, I've only got one IO pin free. If I were to move the two LED's and the 6 relays off to a shift register, that'd free up 5 pins. But do I need to have more pins free? I seem to be ok with this many free. And it'll definitely have an impact in code legibility. Instead of digitalWrite(ventPin, HIGH); it'd be more like shiftOut(2,3,etc etc..)
I looked at the library that puts the LCD on a shift register, but it didn't seem like it was fully matured

What pins are currently used for what purposes?

Say pin x to pin y 6 relays etc.
Have you used the 4 analog pins 0-3? They can be used as digital pins as well.

In case you go down the shift register for your relays, make sure you connect the master reset pin other wise the relays may fire at random at start up.

Plus, you can do:

ventout();

in place of the digitalWrite()

where
void ventout()
{
bitSet(status_byte,vent_out_bit);
update_595(status_byte);
}

This is more readable than digitalWrite.

The other thing you can do is go to a serial LCD adapter. I ran out of pins on my very first project with a display because it takes so darn many pins to run the display. I went to a serial adapter and haven't had a problem since. Something like the LCD117 from Modern Device will do the job with only one pin (you don't need input from an LCD), power and ground.

http://shop.moderndevice.com/products/lcd117-kit

I love these little things and there's a bunch of them out there to choose from. I do not recommend the 5V ones from SparkFun, they take up too much real estate with the oversized board, they work good though. A serial adapter for the LCD and NewSoftSerial so you don't have to worry about serial ports and away you go.