Reverse-engineering a De’Longhi Coffee Maker to precisely bill Coffee Consumption

Autor Fabian Off
Date 28. February 2018
Degree Bachelor
Topic IoT-Kaffeemaschine
Title Reverse-engineering a De’Longhi Coffee Maker to precisely bill Coffee Consumption
Abstract For billing coffee, the faculty of Communication and Networked Systems (ComSys) is looking for a way to monitor the usage of the faculties’ coffee maker. This thesis describes the reverse-engineering of a De’Longhi Coffee Maker to allow for precise billing of coffee consumption. Currently, consumption is measured by manually keeping track of who’s ordered a coffee on a sheet of paper next to the coffee maker. This method has inherent problems: as each coffee is billed the same amount, it is not based on the actual amount of coffee but rather the count of beverages. A small cup of very light coffee costs the same as a large cup of a very strong brew - even though it consumes less actual beans. Also, this method is prone to error: people may forget to make a mark when ordering and thus overall amounts may be skewed. Finally, a list kept up-to-date manually can’t be analyzed over time and does not allow for reporting of coffee consumption or even prediction of when to order new coffee beans. This thesis solves the problems associated with manually keeping track of consumption by developing an automated method of monitoring the coffee maker. This is implemented in the form of a device that monitors and controls the coffee maker. Further, a billing system is developed to order beverages as well as keep track of the actual consumption per user. Precise measurements are conducted to confirm the assumptions about the machine’s operation and to calibrate the billing to the real consumption. As a result of the thesis, an understanding of the machine’s internal communications bus and the protocol used on that bus was developed. This understanding is published in the form of a protocol definition as well as a verification algorithm to validate the received data.
Software on Github

Last Modification: 23.04.2018 - Contact Person: Frank Engelhardt