Skip to content

Work2025

A microwave interface, taken apart and rebuilt

An existing combi microwave has nine controls and a display that changes meaning as you turn the dial. I analysed why it is hard to use, designed a replacement panel, and built the redesign as working hardware across two microcontrollers.

Stack
ArduinoC++I²C

The appliance was a real one, an Etna CM444RVS, with nine input elements and three output elements. Using it meant landing in the wrong mode repeatedly — not because the functions are complicated, but because nothing on the panel tells you which mode you are in until the display has already changed.

What the redesign changed

Nine controls became five buttons and two knobs: on/off, microwave, oven, preheat, start/pause, one dial for time and one for power or temperature. The second dial means something different depending on the mode — watts in microwave, degrees in oven — so the display states which, in the same line, rather than leaving you to remember.

Time does not scale linearly on the dial either. The first half turn moves in thirty-second steps because that is the range most things are actually heated in; past eleven minutes it jumps in five-minute steps. Power is not continuous but five real settings — 100, 300, 450, 700 and 900 watts — and oven temperature snaps to five-degree increments, because a microwave that offers 437 watts is offering a precision it does not have.

Running out of pins

Counting the inputs and outputs first gave seven in and six out, which is more than one board comfortably has once an I²C display is attached. The options were a larger microcontroller, multiplexing, shift registers, or an I/O expander. I split the work across two boards instead: a second Arduino reads one potentiometer and reports it over I²C when the first asks, sixteen bits as two bytes. That turned a pin shortage into a bus, which is the version that taught me something.

Components

  • 2 × Arduino Uno — one master running the interface, one slave reading a remote potentiometer over I²C
  • 2 × 10 kΩ potentiometers — one for time, one for power or temperature
  • 5 × push buttons — on/off, microwave, oven, preheat, start/pause, all on internal pull-ups and debounced in software
  • 6 × LEDs — mode, preheat, counting down, finished
  • 1 × 16×2 LCD over I²C — mode and setting on the top line, time on the bottom
  • 1 × piezo speaker — a short click on every press, a triple beep at the end
  • 10 × resistors — for the buttons and the LEDs

This is a control panel, not an appliance: it counts down, shows state and makes noise, but nothing in it heats anything. It was solo coursework and it is here for the same reason as the cocktail bar — the interesting part was not the code or the wiring on their own, but deciding what the thing should do before building it.