This example is Eric Dortmans’s submission for the Dezyne Challenge 2016.

The Hardware

(information extracted from the source indicated by Eric Dortmans:

Basically, a dishwasher is a robot that cleans and rinses dirty dishes. Humans have to load the dishes, add detergent, set the proper washing cycles and turn it on, but the dishwasher accomplishes a whole series of functions by itself.

A dishwasher:


  • Adds water

  • Heats the water to the appropriate temperature

  • Automatically opens the detergent dispenser at the right time

  • Shoots the water through jets to get the dishes clean

  • Drains the dirty water

  • Sprays more water on the dishes to rinse them

  • Drains itself again

  • Heats the air to dry the dishes off, if the user has selected that setting

In addition, dishwashers monitor themselves to make sure everything is running properly. A timer (or a small computer) regulates the length of each cycle. A sensor detects the water and air ­temperature to prevent the dishwasher from overheating or damaging your dishes. Another sensor can tell if the water level gets too high and activates the draining function to keep the dishwasher from overflowing. Some dishwashers even have sensors that can detect the dirtiness of the water coming off the dishes. When the water is clear enough, the dishwasher knows the dishes are clean.

The main parts of a dishwasher are:

Control mechanism

The control mechanism is located inside the door behind the control panel. Many units use a simple electro-mechanical system: a timer determines how long each part of the cycle lasts and activates the proper function at the proper time (such as the detergent dispenser, wash spray and draining functions). Units that are more expensive might have a computerised control system. Modern units also have a door latch that must be closed for the unit to run. Some also have child safety locks.

Intake valve

This is where water from the home’s water supply enters the dishwasher. The unit’s pump doesn’t pump the water into the basin – when the intake valve opens, water pressure drives the water into the unit.


An electric motor powers the pump. During the pump cycle, the pump forces water up into the spray arms. During the drain cycle, the pump directs the water into the drain hose. The motor-pump assembly is mounted beneath the basin, in the center of the dishwasher. There are two main types of pump:

  • Reversible These pumps switch between pumping water to the spray arms and pumping water to the drain by reversing the direction of the motor. Reversible pumps are usually vertically mounted.

  • Direct-drive The motor runs in one direction, so the direction of flow is switched from spray arms to drain by a solenoid that opens and closes the appropriate valves or switches one hose connection to another. Non-reversible pumps are usually horizontally mounted.


The modelled system consists of the following components and interfaces:


  • the ISequencer interface and the Sequencer component, responsible for the wash cycle of the dishwasher

  • the IWaterControl interface and the WaterControl component, responsible for the control of the flow of water in the dishwasher

  • the IValve interface, the specification for a water inlet and/or water drain valve

  • the IPump interface, the specification for a water pump

  • the ILevelSensor interface, the specification for a water level sensor (a.k.a. float valve)

  • the IHeater interface, the specification for a water heater

  • the IDispenser interface, the specification for a detergent (or soap) dispenser

  • the IDoorSensor interface, the specification for a door switch

  • the ITimer interface, the specification for a timer

  • the IButton interface, the specification for a wash cycle selector and/or a wash start/stop button

  • the IConfig interface, the specification for a washing program configuration setter and getter

The Sequencer


The WaterControl



The project files can be found here.

Note that all of the diagrams included in this document have been produced in and exported from Dezyne. The System View and State Charts are part of the Dezyne editor.