Arduino Wifi Washing Machine




Introduction: Arduino Wifi Washing Machine

I Wanted to remove all the existing Electronic control system's from my faulty washing machine and replace it with my own programmed Arduino Brain.This would include Variable Motor speed control,NTC temperature sensing,pulse width Water level control,Inlet valve control,Door safety Control,,LCD Screen,Capacitor sense control buttons,User programmable programmes ,Wifi control, , App control with push Notifications, and Fault Dianostics.

Step 1: Remove Existing PCB's and Wiring Loom

  • Removed front PCB which included LCD screen and push button selectors (Scrap)
  • Removed main power PCB from base of Machine(Scrap)
  • Removed complete Wiring loom just kept plugs for connecting too Pressure/Level Switch,NTC,inlet valves and motor.
  • Machine was now totally bereft of any of its electrical or display systems.

Step 2: Motor Speed Control

I needed to find away to Control the speed of the washing machine universal motor as at least 4 Speeds are needed.

  • Wash Speed
  • Distribution Speed
  • Slow Spin
  • Fast Spin

the other problem with washing machine Speed control is the motor speed needs to be constant regardless of the load applied to the motor

after trying to build a speed control PCB my self i soon realised that with only limited electronic knowledge it would be beyond me in the time frame i had.

I purchased from Russia a Universal speed Controller PCB based on the TDA1085C chip . It worked great but the speed was controlled from a manual potentiometer. (a problem to be solved later)

avialable on ebay from this Seller "motor.uses"

How to Control The Motor

the voltage passed into the speed Control board from the manual potentiometer ranged from 0v to 12v so using pwm from the arduino i could get from 0 to 5V enough for Wash Speed ,Distribution speed and a slow spin of about 800 rpm

The 12volt was passed to the board using a solid state relay which sent the motor up to about 1200rpm Perfect.

In the Video above you can see the motor changing speed through quite a large range just by sending 0 to 5 volts PWM from the Arduino.

Step 3: Changing Motor Direction

To reverse the direction of the universal motor i needed to build a double pole double throw relay board.The relay was activated via a optocoupler transistor.When the transistor was activated a 5 volt supply was taken straight from the power transformer which energised the relay and reversed the motor.

This mechanical relay was the only mechanical relay used all the other relays in the project are solid state

Step 4: Turning Motor Action on or Off

To activate the speed control board i build a solid state relay using a triac and optocoupler. When 5 volts from the Arduino was applied to the Optocoupler mains voltage was sent to the speed control board and the motor would turn.

Step 5: Using SSR Relay to Increase Motor Speed to Maximum

As explained earlier, using PWM applied to the speed Controller board we could not achieve full spin Speed .To overcome this problem i used a SSR relay switching 12volts .On the last spin PWM was used to control the motor speed through distribution and slow spin. When the final fast spin was required this relay supplied 12 volts to the speed control board and full spin was achieved.


The power Supply used a dual output transformer of 18volts and 2 bridge rectifiers.Two adjustable buck coverters adjusted the voltage down to 12volts and 5volts dc.The 12volts was used to supply power to the arduino and the fast spin relay.The 5 volt supply supplied the motor reversing relay.

Step 7: Main Processor (ARDUINO MEGA)+WIFI ESP8266

A screw shield was used to attach all the wires to the MEGA

Step 8: Remove Physical Front Buttons and Replace With Capacitive Ouch

Step 9: Detect Door Closed So Machine Can Start..

A Optocoupler Isolation Module Voltage Detect Board was used to detect when the washing machine door was closed.

When the door was closed 240 volts was sent from the door to this board which in turn sent 0 volts to the arduino.The Arduino now knows the door is shut and the programme can start.

see this great video on how to use this board..

Step 10: Detect Water Level...

The hotpoint washing machine uses a pressure sensor which sends out a square wave.The frequency of this pulse changes when the pressure applied to the sensor changes.

Using "pulse width in " on the arduino we can sense when the required amount of water has entered the machine.

We can also tell when water has emptied from the machine so the machine can spin

Step 11: Heater Relay,Valve Relays and Pump Relays

All the relays in this project except the motor direction relay are solid state relays.

The 2 inlet valves and the pump are supplied by 2 amp Omron solid state relays

The Heater is supplied by a much bigger 30amp SSR relay (15amp would be plenty)

Step 12: LCD Display

Be the First to Share


    • The 1000th Contest

      The 1000th Contest
    • Battery Powered Contest

      Battery Powered Contest
    • Hand Tools Only Challenge

      Hand Tools Only Challenge

    8 Discussions


    Question 9 months ago on Step 10

    How did you hook up the level sensor? Power 5 v? to which pin? Did you build an oscillation circuit?


    Question 9 months ago

    Sir i done all steps but i need code I cannot make arduino multiple programs run only one case run one input signal


    Answer 9 months ago

    What do you have so far and what do you need it to do next?


    Question 1 year ago on Step 10

    Impressive project! I am trying to repurpose some of these washer pressure sensors. Can you tell me or direct me to some information about the pinouts and operating voltage for these?


    Answer 9 months ago

    Sir i give sensor information and working information can you help to program code

    Sensor information normally 4 type sensor used to washing machine is pressure sensor send pic to pinouts is basically 2 types 1)manual switching sensor
    2)frequency sensor >2 typs in frequency sensor 1) analog frequency 2) square wave 3) square wave frequency with 6th sen or fuzzy logic support

    1 and 2 frequency 19>25KHz
    3 frequency 11> 26KHz


    Reply 9 months ago

    yes, would like to work with you to figure out how to use these sensors with an arduino! Do you have any more info on the frequency sensors? I have two: 6601ER1006A and DNS14T-H Would you know the inductance for them?



    Question 9 months ago

    Sir i need code please give code please


    1 year ago

    Amazing! Could you please share the code?