Simple and robust design for dimming incandescent or high voltage halogen lamps. The user interface is very simple: the existing on/off wall switch. By toggling the swith on-off-on the dimmer will enter the programming state. It now cycles from low to high and back in small steps. If the light is at the desired level simply toggle the swith off-on. The level is saved in eeprom and used from now on as default on level until a new level is "programmed" I designed it some 10 years ago and made two circuits, both are working without any problems and are used (almost) every day. Of course there is a small microcontroller used. A bit ancient PIC16C84 or 16F84. However many more recent types can be used.