Arduino Controlled Dishwasher

Hey All You Dishwasher Dudes!
I just wanted you to know that you inspired me! I built an Arduino dishwasher myself. My motivation was this: my water has a lot of alkalinity in it. Basically it's like hardness but neutralizes acid, and it prevents the detergent from dissolving. I figured out that if I added vinegar to the dishwasher the soap would dissolve better and the dishes would actually come out clean. Further, I figured out that if I wait until the soap dispenser opens to add the vinegar it works a whole lot better and takes a lot less vinegar. But who wants to wait around for the soap dispenser to open?

So why didn't I just treat the water? I live in the mountains on a well. It produces 6 gallons per hour. I built a special controller for that out of a micro PLC, but that's a whole different story... Water treatment systems use water to backwash and regenerate, so to me that's a waste of water. Besides, to get a treatment system to get rid of alkalinity basically requires two complete ion exchange systems (read expensive). So, I figured I would spend a hundred bucks or so and build myself a dishwasher controller that adds the vinegar when the dispenser opens. That's what lead me here!

It took me a few months to get the whole thing put together. I didn't change the user interface at all. I just used the front panel that came with the dishwasher. I used UnaClocker's suggestion of scanning the PCB to get the position of the buttons and LED's in the right spots, and just made a board to replace the one that was there. It's just made out of FR-4, LED's, buttons, pin headers and wires. I painted it with epoxy to kind of hold it all together and protect the wiring from the humid environment. I used a peristaltic dosing pump (probably from a fish tank dosing system - bought it at Adafruit) to add the vinegar. The only other things I added were a temperature sensor, which is a Maxim DS18B20 device, and a Bluetooth serial adapter for debug and monitoring. I did a lot of messing around with the cycles, which basically resulted in having the cycles take more time to get more use out of the water and additives: Oxy-Clean, Cascade powder, Jet-Dry, and vinegar. I also modified the rinse-only cycle for times when water is really at a premium, ie a really good dish rinser that actually meets my needs.

Anyway I put the final touches on it today (controlled temperature) and don't think I'll mess with it for a while. It works great! It used to be that the only thing I could really use the dishwasher for was rinsing dishes, since it would not actually remove any food from the dishes. (Hence the name DishRinser!) Now I can actually put dirty dishes in the machine, press start, and come back later and take clean dishes out. Hooray! Anyway I thought I'd say thanks to you guys for the inspiration. If anybody wants help/advice with similar problems I'll try to help. Happy washing!
-Adam