Coffee machine

From Projects -
Jump to: navigation, search

What is it

Philips once made the Senseo, which is supposed to be a coffee maker. And indeed, the stuff that comes from it tastes somewhat like coffee. However, real coffee tastes a lot better. In this project, I took apart an old Senseo, and a coffee grinder, added some additional components (centered around an Atmega8 microcontroller and a Raspberry Pi) and ba dum tss: a web controlled coffee maker that makes fantastic coffee. The result of this is:

Coffee machine finished.jpg


...and this is it in action. :-)

What is it made of?

It is made of the following components:

  • A Philips Senseo (original model) (source: koninginnedagmarkt)
  • An old '80s Siemens coffee grinder (source:
  • Two nice drawers (source: found somewhere on the street)
  • A piece of plexiglass (source: an old vinyl record player)
  • Raspberry Pi + case (source: farnell/element14)
  • Atmega8 microcontroller (source:
  • HD44780 compatible LCD (source: ebay)
  • Pieces of a coffee machine (source: once won in some sort of lottery...)
  • 5V adapter (source: from an old faulty HP digital camera, as a gift from someone)
  • Aluminium drink bottle (source: thrift store)
  • Neat power plug (source: probably an old PC power supply)
  • Two buttons and a variable resistor for the UI
  • nuts and bolts, resistors and transistors, wire...

How does it work?

The Atmega runs a severely hacked version of LCD2USB. All amount measurement (coffee and water) is done using trial-and-error timing. The temperature is measured using an ADC and a power divider of one resistor and the original NTC. The ADC value is also being interpreted using trial-and-error. The Atmega part is capable of running standalone. However, the LCD2USB code has been modified to support useful (for this project) communication with the Raspberry Pi.

The Raspberry Pi is running Apache and PHP. The PHP script provides the user interface, and runs a small c program. This c program is a severely hacked version of the LCD2USB-client program, which sends and received data from and to the Atmega8, over USB.

Next steps

  • Web interface on the internet instead of only on the local wifi
  • Dust-less coffee grinding :-) (see below)
  • Control engineering improvements
  • I2C-interface instead of USB


  • Sources can be found here.

Raspberry Pi configuration used

For my reference, since writing udev rules, and knowing when they are applied, is always hard for me...

  • /etc/udev.d/rules.d/20-lcdusb.rules: ATTRS{idVendor}=="0403", ATTRS{idProduct}=="c630", SUBSYSTEMS=="usb", ACTION=="add", MODE="0666", GROUP="plugdev"
  • sudo /etc/init.d/udev restart
  • sudo /etc/init.d/apache2 restart
  • sudo usermod -a -G plugdev www-data

Thanks to

  • Raspberry Pi for creating the... Raspberry Pi
  • Till Harbaum for creating LCD2USB (the software that I hacked to create a bidirectional USB interface)
  • Thomas Fischl for creating USBasp
  • God, for creating us as creative beings

Help needed...

Since the coffee grinder generates some real small dust particles, cofee is getting everywhere after using the machine. I could use a brilliant idea of how to fix it. If anyone has an idea, please contact my (my e-mail address is at gmail, my full name in all small characters without any dots or dashes)