Tea saver

Sat, Jun 11, 2016 in Project using tags tea , electronics , software , embedded , 3D printed


Have you ever made a cup of tea or other hot beverage, only to come back later and find it cold, still undrunk?

The tea saver is here to help. Allow it to monitor the temperature of your drink and alert you when it reaches the perfect drinking temperature.

Using the tea saver

  • Place the tea saver on a flat surface near the tea.

  • Connect a 5 volt power supply. (Centre pin is positive.)

  • Angle the sensor to point at the surface of the liquid, avoiding placing the sensor directly over the cup where steam will condense on it.

  • Use the buttons to adjust the target temperature.

  • When the tea reaches the target temperature, the alarm will sound.

  • Drink the tea.


The tea saver is based on an ATtiny85 microcontroller, conveniently packaged in an 8 pin DIP format for easy soldering and sporting a whole 8KB of flash and 512 bytes of RAM. There is a screen and two buttons, as well as a buzzer and a temperature sensor. The screen is a small monochrome OLED module with 128x64 pixel resolution, programmed with I2C. The temperature sensor is a MLX90614 digital non-contact infrared sensor, also connected via I2C.

A custom PCB connects everything together in a convenient layout along with mounting holes, as well as providing a programming connector and a header for the sensor, which is off-board. The design includes a voltage regulator so that the device can be comfortably powered from an external 5 volt supply.

The PCB was designed in KiCad and manufactured by Elecrow.

Spacers for mounting the display module on the main board were 3D printed.


The case is still being designed.


The software has a few responsibilities:

  • Driving the display
    • The display must be initialised at startup
    • The reading, state and target temperature must be displayed
    • Text must be rendered using fonts
  • Taking readings from the thermometer
  • Running the tea saver state machine
  • Monitoring the buttons
  • Beeping to a pattern (constant beeping is very annoying)
  • (Not yet implemented) Saving the set temperature
  • (Not yet implemented) Correctly setting the emmisivity value for the sensor

The software is implemented in C and compiled using avr-gcc.

Open Source

All the design files for the PCB, for the case and also the firmware source code will be available from here once the project approaches completion.